节点:可认为是执行运算任务的进程或是正在执行的C++文件(需要编译catkin_make)、python文件(不需要编译)
消息:节点之间传输的消息,建立联系。
每一个消息都是一种严格的数据结构,支持标准数据类型(整型、浮点型、布尔型等),也支持嵌套结构和数组(类似于C语言的结构体struct),还可以根据需求由开发者自主定义。
话题:ROS中节点之间传输消息最常见的方式,以发布/订阅(Publish/Subscribe)的方式传递。
特点:多对多,异步通信。
比喻:QQ群,每个用户都可以在这个群里发布和订阅消息,而不会发给其他群。不在群里的用户接收不到消息。
服务:ROS中节点之间传输消息的方式,以客户端/服务器(Client/Server)的方式传递。
特点:一对一,同步通信。
比喻:QQ里A与B个人聊天,这种个人聊天框似与服务模型,是一对一,或者是服务器和客户端之间也类似于服务模型
节点管理器:管理节点与节点之间的连接,ROS1中才有。
ROSMaster通过远程过程调用(RPC)提供登记列表和对其他计算图表的查找功能,帮助ROS节点之间相互查找、建立连接,同时还为系统提供参数服务器,管理全局参数。
总结为一句话就是:ROS中最小的进程单元就是节点(node),节点之间通过主题(topic)传递消息数据(message)。
参考文献:【1】ROS机器人开发实践_胡春旭
【2】https://zhuanlan.zhihu.com/p/173430043?utm_source=wechat_session
原文:https://www.cnblogs.com/OPBrother/p/14526110.html