【ros学习】6.ros CommandLineTools-info(命令行工具之信息命令)及例子演示

300 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。


常用ros信息命令

• rostopic • rosservice • rosnode • rosparam • rosmsg • rossrv



1. rostopic

在这里插入图片描述

rostopic是用于打印有关ROS主题的信息的命令行工具。 命令: rostopic bw,显示话题使用的带宽 rostopic delay,从标题中的时间戳显示话题的延迟 rostopic回声,将消息打印到屏幕 rostopic查找,按类型查找主题 rostopic hz,显示主题发布率 rostopic信息,打印有关活动主题的信息 rostopic列表,列出活动主题 rostopic pub,将数据发布到主题 rostopic类型,打印主题或字段类型

<br>

2.rosservice

在这里插入图片描述

命令: rosservice args,打印服务参数 rosservice call,使用提供的参数调用服务 rosservice 查找,按服务类型查找服务 rosservice info,打印有关服务的信息 rosservice 列表,列出了活动服务 rosservice 类型,打印服务类型 rosservice uri,打印服务ROSRPC uri


3.rosnode

在这里插入图片描述

rosnode是一个命令行工具,用于打印有关ROS节点的信息。 命令: rosnode ping,测试到节点的连接 rosnode列表,列出活动节点 rosnode info,打印有关节点的信息 rosnode machine,列出在一台或多台计算机上运行的节点 rosnode kill,杀死正在运行的节点 rosnode cleanup,清除无法访问节点的注册信息


4.rosparam

在这里插入图片描述

rosparam是一个命令行工具,用于从ROS参数服务器获取、设置和删除参数。 命令: rosparam set,设置参数 rosparam get,获取参数 rosparam load,从文件加载参数 rosparam dump,将参数转储到文件 rosparam delete,删除参数 rosparam list,列表参数名称


5.rosmsg

在这里插入图片描述 rosmsg是一个命令行工具,用于显示有关ROS消息类型的信息。 命令: rosmsg show,显示消息说明 rosmsg info,rosmsg的别名显示 rosmsg list,列出所有消息 rosmsg md5,显示消息md5sum rosmsg package,在软件包中列出消息 rosmsg package,列出包含消息的软件包

6.rossrv

在这里插入图片描述

rossrv是一个命令行工具,用于显示有关ROS服务类型的信息。 命令: rossrv show,显示服务说明 rossrv info,rossrv显示的别名 rossrv list,列出所有服务 rossrv md5,显示服务md5sum rossrv package,在软件包中列出服务 rossrv package,列出包含服务的软件包

7.以小海龟为例

(1).启动主节点ros master
$ roscore

在这里插入图片描述

(2).新开一个终端,启动小海龟仿真模拟器
$ rosrun turtlesim turtlesim_node

在这里插入图片描述

(3).新开一个终端,启动小海龟控制结点
$ rosrun turtlesim turtle_teleop_key

在这里插入图片描述

(4).使用rqt_graph可视化工具查看系统中运行的计算图

在这里插入图片描述

可以看到turtle节点作为发布者利用话题turtle传输键盘数据给订阅者turtlesim节点

(5).使用rosnode list查看当前活动的节点列表

在这里插入图片描述 可以看到目前有三个节点在活动(active)中, 第一个节点rosout是ros的的日志记录节点 第二个节点teleop_turtle是小海龟的键盘控制节点,负责录入键盘信息 第三个节点turtlesim就是小海龟的仿真模拟节点

(6).发布话题消息

向turtle1订阅的cmd_vel话题发布话题消息,消息类型为geometry_msgs/Twist,话题内容为‘’xxx” rostopic pub [话题名称] [消息类型] [参数]:使用指定的话题名称发布消息

rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
  x: 2.0
  y: 0.0
  z: 0.0
angular:
  x: 0.0
  y: 0.0
  z: 1.0" 

每个选项的描述如下。 ■ -r 10 rate频率,每10Hz发布一次消息。 ■ /turtle1/cmd_vel 指定的话题名称 ■ geometry_msgs/Twist 要发布的消息类型名称 ■ -- ‘[2.0, 0.0, 0.0]’ ‘[1.0, 0.0, 0.0]’ 在x轴坐标上以每秒2.0 m的速度移动,以x轴为中心,每秒旋转1.0rad

在这里插入图片描述

(7).查看数据格式

在这里插入图片描述

rosmsg show geometry_msgs/Twist

geometry_msgs/Vector3 linear float64 x float64 y float64 z geometry_msgs/Vector3 angular float64 x float64 y float64 z

(8).发布服务请求

在这里插入图片描述

rosservice call /spawn "x: 0.0
y: 0.0
theta: 0.0
name: 'turtle2'" 

请求spawn(产卵)服务生成一个,初始位置为0-0,角度朝向为0的名叫turtle2的小乌龟

(9).话题记录
$ rosbag record -a -O cmd_record

-a 同时记录所有话题,而不是特定话题 -O 保存为压缩包 cmd_record 压缩包名

启动后利用键盘操控小海龟移动,然后关闭话题记录,打开用户目录,会看到保存的压缩包,压缩包内保存了乌龟移动的话题数据 在这里插入图片描述

(10).话题复现
$ rosbag play cmd_record.bag

启动后小海龟就会按照之前的路径自动移动,而不需要键盘操控 在这里插入图片描述




8.相关文档及资料

官方文档:wiki.ros.org/ROS/Command…. 中文资料:blog.csdn.net/qq_27806947….