ROS 的常用命令行工具


ROS 的常用命令行工具

文章插图
 
接:ROS的几个重要概念:节点、消息、主题、服务
上文主要介绍了ROS的几个重要概念:节点(node)、消息(message)、主题(topic)、服务(service) 。
  • 节点(node):独立的计算执行进程;
  • 消息(message):信息数据,节点通过消息完成沟通;
  • 主题(topic):每个消息都必须发布到相应的主题,通过主题实现ROS计算图网络中的路由转发;
  • 服务(service):一种同时使用请求和响应的同步消息交换机制;
这篇主要介绍一些ROS的常用命令行工具 。
1、节点功能包中创建的每个可执行程序在启动加载到系统进程中后,该进程就是一个ROS节点 。
ROS提供的处理节点的工具,用于节点信息、状态、可用性等的查询操作:
  • rosnode list:列出当前活动节点
  • rosnode info <node_name>:输出指定节点的信息
  • rosnode kill <node_name>:结束指定节点
  • rosnode ping <node_name>:测试节点的网络连通性
  • rosnode cleanup:将无法访问的节点的信息清除
  • rosnode machine <host_name>:列出指定计算机上运行的节点
另外,节点管理器(master)用于节点的名称注册和查找等,也负责设置节点间的通信 。
如果整个ROS系统中没有节点管理器,就不会有节点、消息、服务之间的通信 。
节点管理器相关的命令行工具,就是roscre 。
  • roscore:启动节点管理器,加载ROS节点管理器和其他ROS核心组件 。

ROS 的常用命令行工具

文章插图
 
2、消息节点通过消息完成彼此的沟通,消息是一个节点发动给其他节点的信息数据 。
ROS提供的获取消息的命令工具:
  • rosmsg list:列出所有消息
  • rosmsg show <message_type>:显示指定的消息
  • rosmsg users <message_type>:搜索使用该消息的代码文件
  • rosmsg md5 <message_type>:显示消息的MD5求和结果
  • rosmsg package <package_name>:列出功能包的所有消息
3、主题【ROS 的常用命令行工具】同一个主题可以有多个订阅者也可以有多个发布者,且发布者和订阅者定义的消息类型必须与主题的消息类型相匹配 。
通过主题进行消息路由,不需要节点之间直接连接,意味着发布节点和订阅节点之间不需要知道彼此是否存在,保证了发布节点与订阅节点之间的解耦 。
ROS提供的操作主题的命令工具:
  • rostopic list:列出当前活动主题
  • rostopic info <topic_name>:输出主题的信息
  • rostopic echo <topic_name>:显示主题中的消息数据
  • rostopic hz <topic_name>:显示主题的发布频率
  • rostopic bw <topic_name>:显示主题所使用的带宽
  • rostopic type <topic_name>:输出主题发布的消息类型
  • rostopic find <message_type>:按照消息类型查找主题

ROS 的常用命令行工具

文章插图
 
4、参数服务器参数服务器(parameter server)能够使数据通过关键词存储在一个系统的核心位置 。通过使用参数,就能够在节点运行时动态配置节点或改变节点的工作任务 。
参数服务器是可通过网络访问的共享的多变量字典,节点使用此服务器来存储和检索运行时的参数 。
ROS中关于参数服务器的命令行工具:
  • rosparam list:列出参数服务器中的所有参数;
  • rosparam get <param_name>:获取参数值
  • rosparam set <param_name> <value>:设定参数值
  • rosparam delete <param_name>:从参数服务器删除参数
  • rosparam load <file>:将文件中的参数加载到参数服务器
  • rosparam dump <file>:将参数服务器中的参数保存到文件
5、消息记录包消息记录包(bag)是一种用于保存和回放ROS消息数据的文件格式 。
消息记录包是一种用于存储数据的重要机制,它可以帮助记录一些难以收集的传感器数据,然后通过反复回放数据进行算法的性能开发和测试 。
ROS创建的消息记录包文件以*.bag为扩展名,可以播放、停止、后退操作该文件,便于算法调试 。
ROS提供的消息记录包相关的命令行工具: