一、总述
ROS2 一共包含四大核心通信机制,分别为:话题(Topic)通信、服务(Service)通信、参数(Parameter)通信、动作(Action)通信,四种机制各司其职,适配机器人开发里完全不同的业务场景。

1. 话题(Topic)通信
话题通信采用发布 - 订阅(Publish-Subscribe)单向通信模式:

运行逻辑:发布者(Publisher)持续将消息发布到指定话题;订阅者(Subscriber)主动订阅同名话题,即可实时获取话题内的数据,数据仅单向流转,支持一对多、多对多通信。

典型场景:适合持续流式数据传输,例如激光雷达点云、摄像头图像、机器人实时位姿、电机转速等高频刷新的传感器数据。

2. 服务(Service)通信
服务通信属于一问一答的双向同步通信,分为客户端(Client)与服务端(Server)两端:

运行逻辑:客户端主动向服务端发起单次请求,服务端接收请求、完成业务处理后,一次性返回最终结果,单次请求对应单次应答,为一对一调用模式。

典型场景:适合一次性指令调用,例如开关机器人传感器、查询设备状态、单次坐标转换等即时请求场景。

3. 动作(Action)通信

动作通信分为动作客户端(Action Client)、动作服务端(Action Server),是服务通信的升级版:

核心优势:不仅可以返回最终执行结果,还能持续向客户端反馈任务执行进度,同时支持客户端随时中断、取消正在运行的任务。

典型场景:适合长时间运行的复杂机器人任务,例如机器人自主导航、机械臂轨迹运动、定点巡航等耗时任务。

4. 参数(Parameter)通信

参数通信是 ROS2 内置的节点配置管理机制:

运行逻辑:以键值对的形式管理节点级配置参数,支持运行中动态读取、修改参数,无需重启节点与程序。

典型场景:机器人硬件参数调校、算法阈值配置、运行模式切换,例如调整导航速度、传感器采样频率、避障阈值等。

四大通信机制快速区分

话题 Topic:单向发布订阅,持续数据流、多对多通信,用在传感器实时数据、状态广播场景;

服务 Service:双向请求应答,单次请求、即时返回结果、一对一调用,用在一次性指令、状态查询场景;

动作 Action:长时双向交互,进度反馈、支持中途取消,用在长耗时任务、导航 / 机械臂运动场景;

参数 Parameter:键值读写访问,动态修改、无频繁数据流,用在节点配置、参数调优场景。
                                本文部分内容由 AI 辅助优化

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐