在很多的slam算法中都 有将kitti的数据转成为bag的,这次就探索一下这里面的细节,以便于将其他的数据生成bag文件进行测试slam算法.
kitti2bag的代码结构大致如下
IMU data
先读取时间戳。然后把里面的数据,读出来,然后 放置到bag文件里,然后
这里会发现,在最后的地方,不仅仅保存的 imu_raw
,还有 imu_correct
, 代码里面的注释说是为了lio-sam的gps使用。
查了一下,在这里有使用
然后 还要注意,对于kitti,的imudata,作者用的是 extract下的数据,而不是sync下的数据,这是为啥?
对于激光的数据而言,方式和上面的很相似,只需要注意,kitti里面没有存ring这个field,所以是自己算的,
这里面有velodyne的机器参数,主要就是仰角和俯角.
而且还可以看到,这里面其实也存了 图像的bag文件,顺便也学习了一下图像是如何转成bag文件的.
而且还可以看到代码里面还存了gps的信息
做了一个实验,是把上面的三行中的gps的给注释掉,也就是bag文件中只保存有imu和lidar,
那这样的话,lio-sam是否还能跑呢,
在作者readme的参数设置下,是不能够跑的,但是发现如果把params.yaml中的
gps的设置为false,发现是可以跑的,
这也会以后用其他的数据提供了思路.
不过速度不要太快,我这里 rosbag play -r 1 来跑的. -r 3的时候会飞.