ROS机器人编程学习(五)——ROS命令2

第5章 ROS命令
本章主要讲解了ROS下的常用操作命令,包括shell命令、执行命令、信息命令、catkin命令、功能包命令。
由于这一章内容实在太多了,因此博客分三节进行学习记录。本文主要记录ROS信息命令。

第5章 ROS命令

  • 4 ROS信息命令
    • 4.1 运行节点
    • 4.2. rosnode:ROS节点
    • 4.3 rostopic: ROS话题
    • 4.4 rosservice:ROS服务
    • 4.5 rosparam:ROS参数
    • 4.6 rosmsg: ROS消息信息
    • 4.7 rossrv:ROS服务信息
    • 4.8 rosbag:ROS日志信息

4 ROS信息命令

ROS信息命令用于识别话题、服务、节点和参数等信息。

主要命令:
ROS机器人编程学习(五)——ROS命令2_第1张图片

4.1 运行节点

$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun turtlesim turtle_teleop_key

4.2. rosnode:ROS节点

ROS机器人编程学习(五)——ROS命令2_第2张图片

rosnode list:列出正在运行中的所有节点
在这里插入图片描述

rosnode ping [节点名称]:与指定的节点进行连接测试
ROS机器人编程学习(五)——ROS命令2_第3张图片

rosnode info [节点名称]:检查指定节点的信息
ROS机器人编程学习(五)——ROS命令2_第4张图片

rosnode机器[PC名称或IP]:查看此PC上运行的所有节点
在这里插入图片描述

rosnode kill [节点名称]:终止指定节点的运行
ROS机器人编程学习(五)——ROS命令2_第5张图片
终止turtlesim后,小海龟相关节点关闭,并且会在运行该节点的终端窗口上显示警告消息。


rosnode cleanup
删除无法验证连接信息的虚拟节点的注册信息

当节点由于意外事件而异常终止时,该命令将从节点目录中删除连接中断的节点。这个命令很少使用,但是它非常有用,因为用户不需要重新运行roscore。


4.3 rostopic: ROS话题

ROS机器人编程学习(五)——ROS命令2_第6张图片ROS机器人编程学习(五)——ROS命令2_第7张图片

rostopic list

  • 显示当前正在发送和接收的所有话题的列表
  • 通过添加“-v”选项,可以分开发布话题和订阅话题,并将每个话题的消息类型一起显示
    ROS机器人编程学习(五)——ROS命令2_第8张图片

rostopic echo [话题名称]:实时显示指定话题的消息内容
ROS机器人编程学习(五)——ROS命令2_第9张图片

rostopic find [类型名称]:显示使用指定类型的消息的话题
rostopic type [话题名称]:显示指定话题的消息类型
在这里插入图片描述

rostopic bw [话题名称]:显示指定话题的消息数据带宽(bandwidth)
ROS机器人编程学习(五)——ROS命令2_第10张图片

rostopic hz [话题名称]:显示指定话题的消息数据发布周期
ROS机器人编程学习(五)——ROS命令2_第11张图片

rostopic info [话题名称]:显示指定话题的信息
ROS机器人编程学习(五)——ROS命令2_第12张图片

rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息

注意:这个指令中的参数格式跟pdf中给出的略有差别
ROS机器人编程学习(五)——ROS命令2_第13张图片
ROS机器人编程学习(五)——ROS命令2_第14张图片


4.4 rosservice:ROS服务

ROS机器人编程学习(五)——ROS命令2_第15张图片
rosservice list:显示活动的服务信息
ROS机器人编程学习(五)——ROS命令2_第16张图片

rosservice info [服务名称]:显示指定服务的信息
rosservice type [服务名称]:显示服务类型
rosservice find [服务类型]:查找指定服务类型的服务
rosservice uri [服务名称]:显示ROSRPC uri服务
rosservice args [服务名称]:服务参数输出
ROS机器人编程学习(五)——ROS命令2_第17张图片


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)的值
ROS机器人编程学习(五)——ROS命令2_第18张图片

4.5 rosparam:ROS参数

ROS机器人编程学习(五)——ROS命令2_第19张图片

rosparam list:查看同一网络中的参数列表
rosparam get [参数名称]:获取参数值
使用 “/” 作为选项来显示所有参数的值
ROS机器人编程学习(五)——ROS命令2_第20张图片

rosparam dump [文件名]:将参数保存到指定的文件
将当前参数值保存到 parameters.yaml 文件中。因为它保存了每次使用的参数值,并且可以在下次执行时使用(“~/”表示用户的home目录)。
ROS机器人编程学习(五)——ROS命令2_第21张图片

rosparam set [参数名称]:设置参数值

$ rosparam set background_b 0
$ rosservice call clear

将turtlesim节点的background_b参数(与背景色相关的参数)设置为0,用“rosservice call clear”命令刷新屏幕。
ROS机器人编程学习(五)——ROS命令2_第22张图片

rosparam load [文件名称]:将参数保存到指定的文件
取parameters.yaml文件并将其用作当前参数值

$ rosparam load ~/parameters.yaml
$ rosservice call clear

运行“rosservice call clear”命令,参数值将会变为所加载的文件的参数值,由绿色的背景变回蓝色背景。

rosparam delete [参数名称]:删除指定参数

$ rosparam delete /background_b

4.6 rosmsg: ROS消息信息

ROS机器人编程学习(五)——ROS命令2_第23张图片

rosmsg list:显示所有消息
显示当前ROS中安装的功能包的所有消息(这个结果实在太长了,就不放图了~)

rosmsg show [消息名称]:显示指定的消息信息

rosmsg md5 [消息名称]:显示md5sum
如果在消息通信期间遇到MD5问题,则需要检查md5sum,一般不常用。

rosmsg package [功能包名称]:显示用于指定功能包的所有消息
ROS机器人编程学习(五)——ROS命令2_第24张图片
rosmsg packages:显示使用消息的所有功能包
(同样这个功能包结果太长了,不放图了,注意命令有“s”)


4.7 rossrv:ROS服务信息

ROS机器人编程学习(五)——ROS命令2_第25张图片
rossrv list:显示所有服务
显示了ROS上当前安装的功能包的所有服务。

rossrv show [服务名称]:显示指定服务的信息
注意,“—”在服务文件中用作请求和响应的分隔符。

rossrv md5 [服务名称]:显示md5sum

rossrv package [功能包名称]:显示用于指定功能包的所有服务

rossrv packages:显示使用服务的所有功能包
ROS机器人编程学习(五)——ROS命令2_第26张图片
(这一部分的命令内容基本与4.6节内容一致,不再赘述)

4.8 rosbag:ROS日志信息

rosbag是一个实现生成播放压缩等功能的程序,它具有以下几种功能:
ROS机器人编程学习(五)——ROS命令2_第27张图片
rosbag record [选项][话题名称]:记录指定话题的消息
把要进行记录的特定话题作为record命令的选项来输入,则会开始记录于bag文件中。

使用-a可记录所有话题。

$ rosbag record /turtle1/cmd_vel
$ rosbag record -a

rosbag info [bag文件名]:查看bag文件的信息
ROS机器人编程学习(五)——ROS命令2_第28张图片
rosbag play [bag文件名]:回放指定的bag文件
复现bag中的操作结果。
ROS机器人编程学习(五)——ROS命令2_第29张图片
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

你可能感兴趣的:(ROS机器人编程学习,计算机视觉)