前言KITTI格式是没有timestamp的通过固定序列数来进行精度评估比较而TUM格式中有时间戳通过对齐时间戳来比较会比较准所以本次存储的evo数据格式采用 TUM 格式KITTI格式: 为matrix4f格式的pose的前12位TUM格式: 为time x y z qx qy qz qw注意kitti 轨迹真值是按照相机坐标系 Cam 0右x-下y-前z来的和其他坐标系存在转换关系。kitti 中的世界坐标系 是第一帧的 base_link 坐标系。1.kitti数据集 Raw Data与00-10 Ground Truth的对应关系2下载KITTI官方提供的真值和标定参数以及时间戳网址Visual Odometry / SLAM Evaluation 2012calib.txt文件说明见 kitti数据集中calib.txt文件各参数含义下载好的数据如下3.下载evo中的kitti_poses_and_timestamps_to_trajectory.py文件链接evo/contrib/kitti_poses_and_timestamps_to_trajectory.py将 对应的00.txt 和 times.txt 复制到该文件的同目录下打开终端执行下列命令将12列的 kitti 轨迹格式转换成8列的 tum 轨迹格式得到tum格式的轨迹真值文件TUM_00_gt.txtpython3 kitti_poses_and_timestamps_to_trajectory.py 00.txt times.txt TUM_00_gt.txt4.使用 evo 的 evo_traj 命令绘制轨迹evo_traj tum TUM_00_gt.txt -p其中 -p 表示显示绘图窗口5.SALM评价指标5.1 绝对轨迹里程计估计轨迹和真实轨迹evo_traj kitti ground_truth.txt laser_odom.txt -p5.2绝对位姿误差absolute pose errorAPEevo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyzATE 用于衡量估计的轨迹与真实轨迹之间的误 差可以非常直观地反映算法精度和轨迹全局一致性。其中-r {full,trans_part,rot_part,angle_deg,angle_rad,point_distance}指定APE/RPE的计算基础即基于完整位姿、平移部分、旋转部分、角度度/弧度或点之间的距离。--plot_mode {xy,xz,yx,yz,zx,zy,xyz}指定绘图时的投影轴。除此之外常用的命令还有evo_ape kitti ground_truth.txt laser_odom.txt -r full --align --correct_scale --plot --plot_mode xyz--align对齐轨迹原点与方向--correct_scale修正估计轨迹的尺度针对单目 VO 等无尺度场景max: Maximum(最大值)mean: Mean(均值)median: Median(中位数)min: Minimum(最小值)rmse: Root Mean Square Error(均方根误差)计算误差平方的均值后开根号得到的值常用于衡量误差的总体水平。sse: Sum of Squared Errors(误差平方和)所有误差值的平方和表示误差的总体大小。std: Standard Deviation(标准差)注意unit-less 表示无单位也为使用的是“完整位姿”计算的APE。5.3相对位姿 误差relative pose errorRPEevo_rpe kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyzRPE 用于衡量估计的相对位姿变换与真实相对位姿变换之间的误差适合估计系统的漂移。参考视觉SLAM基础算法精度评价指标ATE、RPE轨迹误差评估指标[APE/RPE]和EVO[TUM/KITTI]