ROS1/2原生录包缺陷
1. 占用带宽大 原生的会跨域 导致丢帧
2. 不可配置
3. 没有缓存
4. 跨域分布的节点需要分开录制
二次开发业务点梳理
1. 前/后溯时长
2. 缓存
3. 单开了一个线程
4. 录制指定节点topic 节省带宽
5. 场景可配置,增加灵活性
6. 磁盘io优化
7. 根据业务量确定订阅队列大小
工程上常见丢帧问题
1. 中间件队列打满导致丢帧
2. 业务缓存打满导致丢帧(一般是磁盘io性能不足导致消费不过来)
为了避免录包丢帧,可以采取以下措施:
-
提高计算资源:可以增加计算资源(例如 CPU 和内存)来提高录包的处理能力。
-
优化、提升磁盘持续写入性能
-
调整录包工具设置:可以根据实际需求调整录包工具的设置,例如调整过滤器、调整录制时间等。
-
优化节点消息发布频率:可以优化节点的消息发布频率,避免消息发布过于频繁,从而减少录包丢帧的风险。
文章讨论了ROS1/2原生录包的缺陷,如带宽占用大、不可配置和丢帧问题。提出了二次开发的业务点,包括前后溯时长控制、缓存策略、独立线程、指定节点录制以及磁盘IO优化等措施,以增强灵活性和效率。同时,提到了工程上常见的丢帧原因,如中间件队列和业务缓存打满,并建议通过增加计算资源、优化磁盘性能和调整节点消息发布频率来避免录包丢帧。
472

被折叠的 条评论
为什么被折叠?



