既有适合小白学习的零基础资料,也有适合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)**