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