ROS学习笔记五:理解ROS topics_rostopic hz 中min max

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

angular:
x: 0.0
y: 0.0
z: 0.0

linear:
x: 0.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: -2.0


回过头来再看一下rqt\_graph中的关系图,发现又多了一个订阅节点,就是用来显示topic数据的节点。   
 ![](https://img-blog.csdn.net/20160825105828307)   
 通过命令列出节点:



rosnode list
/rosout
/rostopic_3763_1472092089570
/rqt_gui_py_node_3827
/teleop_turtle
/turtlesim


#### 使用rostopic list


rostopic list命令显示了当前被订阅和被发布的主题列表。



rostopic list
/rosout
/rosout_agg
/statistics
/turtle1/cmd_vel
/turtle1/color_sensor
/turtle1/pose


### ROS Messages


通过在节点之间发送ROS Messages实现节点之间的通信,发布和订阅节点之间发送和接收的数据类型必须一致,这意味着一个主题的数据类型由发布在其上的信息类型所决定。发布在主题上的信息类型可以由`rostopic type topic1`来显示。


#### 使用rostopic type


rostopic type返回正在使用的主题上的信息的类型。



rostopic type /turtle1/cmd_vel
geometry_msgs/Twist


利用命令`rosmsg`可以查看信息的详细信息



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


现在我们知道了turtlesim需要什么样的数据类型,所以我们可以发布命令给我们的小海龟。


### rostopic continued


学习完ROS Messages之后,下面来学习一下rostopic和messages。


#### 使用rostopic pub


rostopic pub直接发布数据到一个主题之上



rostopic pub [topic] [msg_type] [args]


对于小海龟的例子



rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0,0.0,0.0]’ ‘[0.0,0.0,1.8]’


**给定速度参数竟然只能用逗号隔开,呵呵**   
 上面的命令告诉小海龟按照线速度2角速度1.8进行移动,默认的持续时间是3秒钟,如下图   
 ![](https://img-blog.csdn.net/20160825150402184)   
 通过加入选项-r则可以一直向topic发布数据



rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0,0.0,0.0]’ ‘[0.0,0.0,1]’


再次看一下rqt\_graph中发生了什么,其中rostopic pub节点在一直与rostopic echo节点和turtlesim节点进行通信。   
 ![](https://img-blog.csdn.net/20160825153017639)


#### 使用rostopic hz


rostopic hz返回数据发布的速率。



rostopic hz [topic]


利用该命令查看turtlesim发布/turtle1/pose的速度



rostopic hz /turtle1/pose
subscribed to [/turtle1/pose]
average rate: 62.502
min: 0.016s max: 0.016s std dev: 0.00006s window: 60
average rate: 62.501
min: 0.016s max: 0.016s std dev: 0.00005s window: 123
average rate: 62.498
min: 0.016s max: 0.016s std dev: 0.00005s window: 185


#### 使用rqt\_plot


rqt\_plot是rqt软件包的一部分,可以动态绘制发布到某一个主题上的数据的图形



rosrun rqt_plot rqt_plot


在输入框中输入要绘制的主题名称,选择即可。   
 ![](https://img-blog.csdn.net/20160825155612550)


### 总结


这一节的内容较多,首先要理解ROS topics、ROS nodes、ROS Messages之间的关系。目前个人的理解是:ROS topics是ROS nodes之间进行通信的枢纽,ROS messages是ROS nodes订阅和发布数据的载体。两个ROS nodes欲实现通信,则其中一个节点向ROS topic发布ROS messages,另一节点则通过订阅此topic来接收messages,两者的message类型一定要相同,而message的类型由主题确定,通过rostopic type命令可以查看topic的数据类型。


然后就是辅助查看ROS中节点关系和数据的工具:rqt\_graph和rqt\_plot,两者都是针对ROS类型的,其中rqt\_graph工具会自动搜寻系统中正在运行的节点和主题,并动态绘制出关系图,rqt\_plot则是绘制发布到topic上的数据的图形,因此两者使用的前提是有ROS的进程在运行。


运行节点:roscore   
 rosrun turtlesim turtlesim\_node   
 rosrun turtlesim turtle\_teleop\_key   
 查看节点关系图:rosrun rqt\_graph rqt\_graph


显示topic1上所发布的数据:rostopic echo topic1   
 列出当前处于激活状态的topic列表:rostopic list -v   
 显示topic1的数据类型:rostopic type topic1   
 显示类型更加详细的信息:rosmsg show type1   
 直接向主题topic1发布数据:rostopic pub [topic1] [msg\_type] [args]   
 显示主题topic1上数据的发布速率:rostopic hz [topic1]


祝枫   
 2016年8月25日于哈尔滨


![img](https://img-blog.csdnimg.cn/img_convert/d2fa438996f6a60c661353ec263d37d0.png)
![img](https://img-blog.csdnimg.cn/img_convert/1bbf15e105638d9a5045596d4fb8109c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

了95%以上物联网嵌入式知识点,真正体系化!**

**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

**需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)**

**[如果你需要这些资料,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值