ros 再启程(二):节点 node 话题 topic

 roscore 是运行所有ros命令之前要运行的命令。

roscore = master + rosout(stdout + stderr) + parameter service 

 

节点 node

一个节点就是ros 包中的可执行文件

 rosrun + 包名 + node name  来执行某个程序。

我们开启两个节点:一个是上面的turtlesim_node, 另一个是键盘 turtle_teleop_key.  它们都在包turtlesim 中。

并且用 rqt_graph  可视化它们的关系。

话题 topic

nodes 之间用话题联系,一个node publish topic 另一个 subscribe

我们来看下rostopic的 用法

下面我们使用一些rostopic 命令来熟悉一下

使用rostopic echo 将具体的消息内容打印出来。同时update rqt_graph 

接下来 我们看rostopic list 的具体用法并将当前topic 全部打印出来

还是以键盘 和turtle 之间的topic /turtle1/cmd_vel 为例,格式为

topic name  【topic type】

可以理解为 node 就是 可执行的火车站, topic 是火车(载体), 它的类型也就是实际传递的消息就是火车拉的是人 还是 货物 还是其他什么。

那我们来看一下这个火车上(/turtle1/cmd_vel )到底是 什么

接着, 我们手动发一些参数指令给 turtle (而不是用键盘)

参数 -1 代表发送一次即退出, topic name + topic type + -- (表示接下来的参数都不是命令)

整句的含义是让turtle 以 2.0 的liner 和1.8 的angular ,结果是turtle会画一个弧。

我们再发一个命令流给 turtle ,让它一直运动

-r 表示命令流, 1 表示1hz 

这样, turtle 就会在原地 爱的魔力转圈圈了。。。

话题topic 的绘制 rqt_plot

动态查看数据的变化。

rosrun rqt_plot rqt_plot  

发布了128 篇原创文章 · 获赞 21 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/Bluenapa/article/details/102955264