ROS2 是重新设计的 Robot Operating System,无论从用户API接口到底层实现都进行了改进。这里主要关注ROS2 的中间件。
1. 通信模式
ROS2 使用DDS协议进行数据传输,并通过抽象的rmw,支持多个厂家的DDS实现(FastDDS,Cyclone DDS 等)。
DDS 允许通过Qos 策略进行自定义通信行为。
ROS 支持的基本的Qos策略:
- 历史记录(History)
- 保留近期记录:仅仅保存最大N个样本数据,通过配置队列深度选项来指定最大数据限制。
- 保留所有记录:存储所有的样本数据,但受限于底层中间件的配置资源限制。
- 深度(Depth)
- 队列深度:仅仅当历史记录选择为"保留最近记录"时,配合指定最大数据限制。
- 可靠性(Reliability)
- 尽力的(Best effort):尝试传输样本,但如果网络不稳定可能会丢失数