apollo_logo
4
0

一张图对比Rosbag和cyber record

下图分别对Rosbag和cyber record的格式进行了详细的介绍。

Rosbag和cyber record格式解析

主要的区别在于chunk的设计,由于cyber采用了protobuf,需要一次读取一整个chunk,目前默认一个chunk的大小在200M字节,文件会按照2G大小进行切片,也就是说一个文件最多有29个chunk,读取一个chunk的时延分为2部分:

  1. 读取200M文件到内存的时间,操作系统读取文件的延迟
  2. protobuf解析200M字节码的时间,这部分有待测试

也就是说当缓冲区的消息播放时间小于上述延迟的时候,就会出现卡顿,可以通过增加缓冲大小解决。

数据管理

关于数据的管理和可视化方式。

时序数据库InfluxDB

通过文件块的方式对数据进行整理对查询不是非常友好,因此计划通过时序数据库InfluxDB来对传感器数据进行管理,首先可以提高随机读写性能,其次根据tag和时间戳对数据进行查询也非常方便,例如查询1-3s之内激光雷达的数据,通过时序数据库很快的完成。还有待确认的点在于单条数据的读写性能,因为自动驾驶单条数据的size可能差距很大,例如一帧激光雷达可能有2M,而一个定位信息可能只有几百个字节,不同字节混合的读写性能不知道是否足够好。

数据可视化

数据可视化比较简单的方式是通过浏览器来查看,也可以安装独立的程序例如通过Qt来完成,对于保存文件来说后台采用数据库的优势更加大。


原创声明,本文由作者授权发布于Apollo开发者社区,未经许可,不得转载。
发表评论已发表 0 条评论
登录后可评论,请前往 登录
暂无评论~快去发表自己的独特见解吧!
目录
数据管理
时序数据库InfluxDB
数据可视化