记录最新时间段内的bag
-
各位大佬:
使用C++创建节点,订阅某topic,将topic存入队列,保持队列队首和队尾话题时间戳间隔不超过某固定周期,超过的则pop队首,等调用保存bag服务时,将队列中的topic写入bag文件。
但是这样带来的问题是:使用ros2 bag play ${bag}时,无论多长时间的bag,都会瞬间播放完毕,而没有按照话题间的时间间隔。
有没有办法在写bag时解决该问题,难道只能使用ros2bag reader的API在程序中根据话题时间间隔休眠后再发布吗? -
在ros1中可以直接通过命令行实现
rosbag record --split --duration=10m --max-splits 6 /scan
这样就可以记录最新10*6=60分钟以内的scan话题到bag文件了,在60分钟之前的bag会被回滚删除
但是ros2 bag中没有这样的实现命令