ROS节点之间进行通信所利用的最重要的机制就是消息传递。
在ROS中,消息有组织地存放在话题里。
消息传递的理念是:
当一个节点想要分享信息时,它就会发布(publish)消息到对应的一个或者多个话题;
当一个节点想要接收信息时,它就会订阅(subscribe)它所需要的一个或者多个话题。
ROS节点管理器负责确保发布节点和订阅节点能找到对方;而且消息是直接地从发布节点传递到订阅节点,中间并不经过节点管理器转交。
/teleop_turtle 节点向话题/turtle1/cmd_vel 发布消息, 而/turtlesim 节点订阅了这些消息
在默认情况下,rqt_graph 隐藏了其认为只在调试过程中使用的节点。你可以通过取消“Hide debug”选项来禁止这个特性.
rqt_graph 本身就是一个节点
所有的节点发布都向话题/rosout 发布消息,该话题由同名的/rosout 节点订阅。这个话题的作用是用来生成各个节点的文本日志消息。