问题背景
现在有三种不同的传感器:
(1)双目相机,输出其左右目的RGB图,已知相机内部做过硬同步,频率已被我调至10帧
(2)深度相机,输出其RGB图和深度图,没有硬同步,频率为30帧
(3)激光雷达,输出其点云,频率为10帧
问题:用软同步的方法数据存储为离线文件
ROS基础
(1)使用while循环,并设置循环频率为30Hz
(2)ROS中subscriber在后台起线程接收数据至队列中,但回调函数位于主线程中
(3)磁盘的读写速度不够快,需要起多线程进行读写,注意:对读/写所用的容器在读/写时需要上mutex锁
(4)实验中务必保证传感器接触良好,且电路正常工作
最基础要求
只要所有的消息在一个100ms内接收到,就算做同步
实现方案一:ROS的时间同步机制
实现方案二:回调函数分开写,但取每个100ms内的最新消息作为同步
两种方案下回调函数都直接将数据写入读/写容器
缺点:无视了硬同步
更高的要求
考虑硬同步,并希望将深度相机中相距较近的两个RGB和深度图视作一体
实现方案:
维护另一个中间容器,回调函数将数据写入中间容器。
先用两个时间间隔较短的ROS时间同