ROS2的概念

发布时间 2023-12-06 20:23:35作者: ponder776

ROS2中每一个节点也是只负责一个单独的模块化的功能(比如一个节点负责控制车轮转动,一个节点负责从激光雷达获取数据、一个节点负责处理激光雷达的数据、一个节点负责定位等等)

节点间的通信方式:

  1.话题topics  是一种轻量级的通信方式,用于实现发布-订阅模式,即一个节点发布数据,另一个节点订阅数据。话题是一种单向的通信方式,发布者发布数据后,无法获知数据是否被订阅者成功接收。话题的数据类型可以是ROS中定义的任意消息类型。常见的使用话题实现的场景包括传感器数据的传递、节点间的状态信息交换等。

  2.服务service 服务是双向的,提供了一种客户端-服务器模式,即客户端向服务器发送请求,服务器响应请求并返回结果。服务可以实现双向通信,并且支持传递任意的ROS消息类型。服务的实现需要定义两个消息类型,一个用于请求,一个用于响应。常见的使用服务实现的场景包括节点之间的命令调用、请求数据等。

  3.参数parameters 参数(Parameter)是ROS 2中节点的一种配置机制,它可以用于对节点进行设置。参数可以存储整数、浮点数、布尔值、字符串等基本类型数据,也可以存储ROS消息类型。参数的读写操作可以通过服务实现。在节点启动时,可以通过ROS参数服务器将参数传递给节点,也可以在运行时动态修改参数。常见的使用参数的场景包括节点的配置、调试等。原理基于服务。

  4.动作action 是ROS 2中的高级通信机制,它可以实现异步的双向通信,并且支持取消、暂停、恢复等操作。动作通常用于需要执行较长时间的任务,如机器人的导航、物体识别等。与服务不同,动作可以通过话题实时发布执行状态、进度等信息,以便客户端监控执行情况。动作的实现需要定义三个消息类型,一个用于请求,一个用于响应,一个用于反馈。常见的使用动作的场景包括机器人的自主导航、物体抓取等。