ROS话题通信机制msg
话题通信的目的
1, 话题通信,可以用最简单的一张图来表示:
2, 用最简单的话来说,就是,一个人在一直blablabla的说,另外一个人静静的听.
3, 应用场景, 比如温度数据采集, 只需要温度传感器一直把数据告诉我就可以, 我不需要对这个传感器下任何指令.
ROS中话题通信的实现
1, 那么,当一个复杂的系统,需要进行话题通信时,需要进行管理.就像宿舍管理员. 每个人(Talker)都把自己的名字和门牌号注册到管理员(ROS Master)这里. 当某人(Listener)需要找B时, (Listener)先找管理员问有没有B这个人, 然后管理员找到B, 告诉(Listener)在9999号房间, 然后(Listener)就去9999号房间找B,B同意(Listener)进门后, 就开始不停的给(Listener)blablabla…
ROS中的实现
1, 注册Talker(RPC);
2, 注册Listener(RPC);
3, ROS Master查找Talker地址(RPC);
4, Listener请求连接Talker(RPC);
5, Talker接受Listener的请求(RPC);
6, Listener得到Talker确认后,与其进行连接(TCP);
7, Talker开始给Listener发数据(TCP).
注: 如果不明白什么是RPC通信和TCP通信,请自行百度.
代码实现
这部分的代码与vscode开发ROS(3)-创建第一个ROS项目中的代码完全一致, 参考代码中的注释进行理解.
获取源码
公-众-号搜索 ”机器人小站"。后台回复 190918R即可.
参考:http://wiki.ros.org/