ROS学习第二天(我用的是Ubunt20,ros是noetic版本,现在常用的是22版,humble版本)
介绍
节点与节点之间肯定要通讯,发布者发布消息,接收者接收消息,在进行行为的发生,从而实现某种功能。
比较常见的是,两个不在同一个包中的节点要通讯,此时就要有个Topic话题(举个例子:国服马超和国服马克都打王者,怎么组合?首先建个群,王者开黑群(群即为话题,将两个不相干的包放在一起),国服马超,马克的账号分别代表两个包,俩角色分别代表俩节点,这俩节点要在一起,就必须在这个群中,也就是话题中),大家相互聊天,边出现了通讯,其中每个人说过的每句话都是一个Message消息。
注意一点,Message都是刷屏的存在,也就是说循环输出,确保话题订阅者Subsciber能够接收最新信息,发布者也叫Publisher。
小结一下:
1.话题Topic是节点间进行持续通讯的一种形式。
2.话题通讯的两个节点通过话题的名称建立起话题通讯连接。
3.话题中通讯的数据,叫做消息Message。
4.消息Message通常会按照一定的频率持续不断的发送,以保证消息数据的实时性。
5.消息的发送方叫做话题的发布者Publisher。
6.消息的接收方叫做话题的订阅者Subsciber。
补充:多个节点之间通过设置多个话题,但也不有在一个话题中出现多个发布者的情况(要确定同时只能有一个发布者在发消息,否则会出现信息杂乱,机器人无法实现想要的预期结果)
了解了上述节点通讯的大体模式,接下来让我们详细的了解一下消息的类型
还记得我们前边讲的std_msgs吗?这就是一种。
可以在index.ros.org网站查询,比如下边的,选择对应的版本
以我现在用的noetic版本为例:
有着各种各样的。而且,我才发现,我正在学的居然是ros1,啊啊啊,因为22版本的光盘一直安装出问题,不过触类旁通嘛,以后再整ros2.