ROS的重要概念:节点、消息、主题、服务
节点(Node)
节点:可认为是执行运算任务的进程或是正在执行的C++文件(需要编译catkin_make)、python文件(不需要编译)
消息(Message)
消息:节点之间传输的消息,建立联系。
每一个消息都是一种严格的数据结构,支持标准数据类型(整型、浮点型、布尔型等),也支持嵌套结构和数组(类似于C语言的结构体struct),还可以根据需求由开发者自主定义。
话题(Topic)
话题:ROS中节点之间传输消息最常见的方式,以发布/订阅(Publish/Subscribe)的方式传递。
特点:多对多,异步通信。
比喻:QQ群,每个用户都可以在这个群里发布和订阅消息,而不会发给其他群。不在群里的用户接收不到消息。
服务(Service)
服务:ROS中节点之间传输消息的方式,以客户端/服务器(Client/Server)的方式传递。
特点:一对一,同步通信。
比喻:QQ里A与B个人聊天,这种个人聊天框似与服务模型,是一对一,或者是服务器和客户端之间也类似于服务模型
节点管理器(ROS Master)
节点管理器:管理节点与节点之间的连接,ROS1中才有。
ROSMaster通过远程过程调用(RPC)提供登记列表和对其他计算图表的查找功能,帮助ROS节点之间相互查找、建立连接,同时还为系统提供参数服务器,管理全局参数。
总结为一句话就是:ROS中最小的进程单元就是节点(node),节点之间通过主题(topic)传递消息数据(message)。
参考文献:【1】ROS机器人开发实践_胡春旭
【2】https://zhuanlan.zhihu.com/p/173430043?utm_source=wechat_session
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构