第5章 ROS命令
本章主要讲解了ROS下的常用操作命令,包括shell命令、执行命令、信息命令、catkin命令、功能包命令。
由于这一章内容实在太多了,因此博客分三节进行学习记录。本文主要记录ROS信息命令。
ROS信息命令用于识别话题、服务、节点和参数等信息。
$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key
■ rosnode ping [节点名称]:与指定的节点进行连接测试
■ rosnode info [节点名称]:检查指定节点的信息
■ rosnode机器[PC名称或IP]:查看此PC上运行的所有节点
■ rosnode kill [节点名称]:终止指定节点的运行
终止turtlesim后,小海龟相关节点关闭,并且会在运行该节点的终端窗口上显示警告消息。
■ rosnode cleanup:
删除无法验证连接信息的虚拟节点的注册信息
当节点由于意外事件而异常终止时,该命令将从节点目录中删除连接中断的节点。这个命令很少使用,但是它非常有用,因为用户不需要重新运行roscore。
■ rostopic list:
■ rostopic echo [话题名称]:实时显示指定话题的消息内容
■ rostopic find [类型名称]:显示使用指定类型的消息的话题
■ rostopic type [话题名称]:显示指定话题的消息类型
■ rostopic bw [话题名称]:显示指定话题的消息数据带宽(bandwidth)
■ rostopic hz [话题名称]:显示指定话题的消息数据发布周期
■ rostopic info [话题名称]:显示指定话题的信息
■ rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息
■ rosservice info [服务名称]:显示指定服务的信息
■ rosservice type [服务名称]:显示服务类型
■ rosservice find [服务类型]:查找指定服务类型的服务
■ rosservice uri [服务名称]:显示ROSRPC uri服务
■ rosservice args [服务名称]:服务参数输出
■ rosservice call [服务名称] [参数]:用输入的参数服务请求
$ rosservice call /turtle1/set_pen 255 0 0 5 0
“255 0 0 5 0” 对应于用于/turtle1/set_pen服务的参数(r,g,b,width,off)的值
■ rosparam list:查看同一网络中的参数列表
■ rosparam get [参数名称]:获取参数值
使用 “/” 作为选项来显示所有参数的值
■ rosparam dump [文件名]:将参数保存到指定的文件
将当前参数值保存到 parameters.yaml 文件中。因为它保存了每次使用的参数值,并且可以在下次执行时使用(“~/”表示用户的home目录)。
■ rosparam set [参数名称]:设置参数值
$ rosparam set background_b 0
$ rosservice call clear
将turtlesim节点的background_b参数(与背景色相关的参数)设置为0,用“rosservice call clear”命令刷新屏幕。
■ rosparam load [文件名称]:将参数保存到指定的文件
取parameters.yaml文件并将其用作当前参数值
$ rosparam load ~/parameters.yaml
$ rosservice call clear
运行“rosservice call clear”命令,参数值将会变为所加载的文件的参数值,由绿色的背景变回蓝色背景。
■ rosparam delete [参数名称]:删除指定参数
$ rosparam delete /background_b
■ rosmsg list:显示所有消息
显示当前ROS中安装的功能包的所有消息(这个结果实在太长了,就不放图了~)
■ rosmsg show [消息名称]:显示指定的消息信息
■ rosmsg md5 [消息名称]:显示md5sum
如果在消息通信期间遇到MD5问题,则需要检查md5sum,一般不常用。
■ rosmsg package [功能包名称]:显示用于指定功能包的所有消息
■ rosmsg packages:显示使用消息的所有功能包
(同样这个功能包结果太长了,不放图了,注意命令有“s”)
■ rossrv list:显示所有服务
显示了ROS上当前安装的功能包的所有服务。
■ rossrv show [服务名称]:显示指定服务的信息
注意,“—”在服务文件中用作请求和响应的分隔符。
■ rossrv md5 [服务名称]:显示md5sum
■ rossrv package [功能包名称]:显示用于指定功能包的所有服务
■ rossrv packages:显示使用服务的所有功能包
(这一部分的命令内容基本与4.6节内容一致,不再赘述)
rosbag是一个实现生成、播放和压缩等功能的程序,它具有以下几种功能:
■ rosbag record [选项][话题名称]:记录指定话题的消息
把要进行记录的特定话题作为record命令的选项来输入,则会开始记录于bag文件中。
使用-a可记录所有话题。
$ rosbag record /turtle1/cmd_vel
$ rosbag record -a
■ rosbag info [bag文件名]:查看bag文件的信息
■ rosbag play [bag文件名]:回放指定的bag文件
复现bag中的操作结果。
■ rosbag compress [bag文件名]:压缩指定的bag文件
压缩文件同样以.bag进行存储,原始文件则会以文件名添加“orig”另行存储。
$ rosbag compress 2017-07-10-14-16-28.bag
■ rosbag decompress [bag文件名]:对指定的bag文件解压
$ rosbag decompress 2017-07-10-14-16-28.bag