一、KITTI odometry和raw data的对应关系
Odometry页面的数据集目的是测试包括LiDAR和相机的纯SLAM(指无GPS)的结果,和raw数据集的对应关系如下。下表列出了每个序列的名称、开始和结束帧。用来提取视觉l视觉里程计/SLAM训练集的每个序列的名称、开始和结束帧。
为了允许使用激光点云、GPS数据、右边的摄像机图像和灰度图像来训练数据。我们提供了训练集与KITTI数据集原始数据的映射。提供训练集与KITTI数据集raw data的映射。下表列出了每个序列的名称、开始和结束帧。用来提取视觉里程计/SLAM训练集。
2011_09_26_drive_0067数据集不存在,应该是后期官方删除的。另外,odometry的00-10是有真值的,剩下的11-21是测试集。
Nr. Sequence name Start End
---------------------------------------
00: 2011_10_03_drive_0027 000000 004540
01: 2011_10_03_drive_0042 000000 001100
02: 2011_10_03_drive_0034 000000 004660
03: 2011_09_26_drive_0067 000000 000800
04: 2011_09_30_drive_0016 000000 000270
05: 2011_09_30_drive_0018 000000 002760
06: 2011_09_30_drive_0020 000000 001100
07: 2011_09_30_drive_0027 000000 001100
08: 2011_09_30_drive_0028 001100 005170
09: 2011_09_30_drive_0033 000000 001590
10: 2011_09_30_drive_0034 000000 001200
前面说了,odometry是纯SLAM但是如果你想验证GPS融合效果怎么办,这时候就不能只用odometry页面的数据了,根据上面的对应关系去把raw数据下载下来。这里有两个选unsynced+unrectified、synced+rectified,前者指图像、LiDAR、GPS/IMU等数据没有对齐,图像也没有矫正,真正的原始数据,这块IMU的频率是100HZ;后者各源数据都是一一对齐的,图像也矫正了,但是GPS/IMU的频率只有10HZ,基本够用。
需要注意的是KITTI 08的start和end。
二、LIO_SAM在KITTI 08上运行
从LIO_SAM的github地址下载已经制作好的2011_09_30_drive_0028-01.bag,需要注意的是此bag是由raw data处下载的2011_09_30_drive_0028制作而成。
LIO_SAM最终保存的是关键帧的轨迹大概2000多行(帧)(仅保存了的关键帧轨迹)。这里为了使用evo工具进行评估,已从代码中将其转为tum格式。
而KITTI 08的ground truth只能从odometry部分获得,大概是4000多行(帧),并且是kitti格式。
为了得到带时间戳的tum格式的ground truth,就需要和LIO_SAM估计的轨迹时间戳保持一致。
解决方法
- 得到LIO_SAM所有帧的时间,times.txt大概有5174帧(行)。
- 依据08: 2011_09_30_drive_0028 001100 005170,保存times.txt的1101-5171帧(行)的时间
- 将对应的08.txt 与times.txt放入evo文件夹内:
使用指令将12列的kitti轨迹格式真值转换成8列格式的tum轨迹格式
python2 kitti_poses_and_timestamps_to_trajectory.py 08.txt times.txt kitti_08_gt.txt
- 进行后续的evo评估