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