ROS2- 4种通信机制总结-16
目录
1.通信机制对比
Topic
一种轻量级的通信方式,用于实现发布-订阅模式,即一个节点发布数据,另一个节点订阅数据。
一种单向的通信方式,发布者发布数据后,无法获知数据是否被订阅者成功接收。
数据类型可以是ROS中定义的任意消息类型。
常见的使用话题实现的场景包括传感器数据的传递、节点间的状态信息交换等。
服务service
双向的,提供了一种客户端-服务器模式,
客户端向服务器发送请求,服务器响应请求并返回结果。
可以实现双向通信,并且支持传递任意的ROS消息类型。
需要定义两个消息类型,一个用于请求,一个用于响应。
常见的场景包括节点之间的命令调用、请求数据等。
参数(Parameter)
ROS 2中节点的一种配置机制,用于对节点进行设置。
参数可以存储整数、浮点数、布尔值、字符串等基本类型数据,也可以存储ROS消息类型。
参数的读写操作可以通过服务实现。
在节点启动时,可以通过ROS参数服务器将参数传递给节点,也可以在运行时动态修改参数。
常见的使用参数的场景包括节点的配置、调试等,原理基于服务。
动作(Action)
ROS 2中的高级通信机制,它可以实现异步的双向通信,并且支持取消、暂停、恢复等操作。
动作通常用于需要执行较长时间的任务,如机器人的导航、物体识别等。
与服务不同,动作可以通过话题实时发布执行状态、进度等信息,以便客户端监控执行情况。
动作的实现需要定义三个消息类型,一个用于请求,一个用于响应,一个用于反馈。
常见的使用动作的场景包括机器人的自主导航、物体抓取等。