警告
您正在阅读的 ROS 2 文档版本已达到 EOL(生命周期结束),不再受官方支持。如果您想了解最新信息,请访问 Jazzy.
设计指南:ROS 2 中的常见模式
快速 RTPS 大数据传输
背景
您想通过快速 RTPS 传输大量数据。
问题
DDS/RTPS 使用 UDP,信息最大大小为 64k
解决方案
配置中间件,以便将大型数据分割成信息
实施情况
使用异步发布模式:
<publishMode>;
<kind>ASYNCHRONOUS</kind> </publishMode>;
快速 RTPS 尽力而为视频流
背景
您希望传输视频流并提供最新数据。丢失一些图像也没关系。
问题
确认数据传输机制(也称为 "可靠 "传输)可确保每个数据包都能送达,但这可能会导致视频流落后。
解决方案
使用 "尽最大努力 "通信(而不是通常的基于确认的机制),并优先处理最后一帧。
实施情况
配置 "尽力而为 "的可靠性机制
配置服务质量历史记录以保留最后一帧
可靠性
<kind>BEST_EFFORT</kind> </reliability> <historyQos>;
<kind>KEEP_LAST</kind>;
<深度>1</深度> </historyQos>;
快速 RTPS 可靠的视频流
背景
您想在不可靠的网络设置下传输视频流。
解决方案
使用可靠的通信机制。编写者和阅读者都要快速反应。
实施情况
配置 "可靠 "的可靠性机制
将写入器的 NACK 响应延迟和抑制持续时间配置为 0
将阅读器的心跳响应延迟配置为 0
可靠性
<kind>RELIABLE</kind> </reliability>;
# 作家
次数>;
nackResponseDelay>;
<持续时间名称>零</持续时间名称>;
</nackResponseDelay>;
nackSupressionDuration>;
<持续时间名称>零</持续时间名称>;
</nackSupressionDuration> </times>;
# 阅读器
次数>;
<heartbeatResponseDelay>;
<持续时间名称>零</持续时间名称>;
</heartbeatResponseDelay> </times>;