一张图对比Rosbag和cyber record
Bag格式对比下图分别对Rosbag和cyber record的格式进行了详细的介绍。
Rosbag和cyber record格式解析
主要的区别在于chunk的设计,由于cyber采用了protobuf,需要一次读取一整个chunk,目前默认一个chunk的大小在200M字节,文件会按照2G大小进行切片,也就是说一个文件最多有10个chunk,读取一个chunk的时延分为2部分:
[*]读取200M文件到内存的时间,操作系统读取文件的延迟
[*]protobuf解析200M字节码的时间,这部分有待测试
也就是说当缓冲区的消息播放时间小于上述延迟的时候,就会出现卡顿,可以通过增加缓冲大小解决。
数据管理
关于数据的管理和可视化方式。
时序数据库InfluxDB
通过文件块的方式对数据进行整理对查询不是非常友好,因此计划通过时序数据库InfluxDB来对传感器数据进行管理,首先可以提高随机读写性能,其次根据tag和时间戳对数据进行查询也非常方便,例如查询1-3s之内激光雷达的数据,通过时序数据库很快的完成。还有待确认的点在于单条数据的读写性能,因为自动驾驶单条数据的size可能差距很大,例如一帧激光雷达可能有2M,而一个定位信息可能只有几百个字节,不同字节混合的读写性能不知道是否足够好。
数据可视化
数据可视化比较简单的方式是通过浏览器来查看,也可以安装独立的程序例如通过Qt来完成,对于保存文件来说后台采用数据库的优势更加大。
<hr/>ROS Bag分析
[*]rosbag record代码分析
[*]rosbag play代码分析
[*]rosbag_storage总体介绍(一)
[*]rosbag_storage bag实现(二)
[*]rosbag_storage 查询bag包(三)
[*]rosbag_storage 文件读写(四)
[*]Rosbag格式分析
[*]Rosbag转Apollo数据包
[*]一张图对比Rosbag和cyber record
ROS 发布订阅模式
[*]ROS发布订阅实现(二)
ROS导航模块
[*]ROS navigation导航模块(一)
页:
[1]