对应任佬代码tag7.0
我们现在已经可以建立一个简单的地图,我们可以使用evo精度评估工具来进行我们slam系统的精度评估:一共分为两步,(1)是在代码部分,我们需要保存我们想要评估的数据。(2)是用evo来进行评估。
数据存储
思路:在发布里程计之前进行数据存储,在此使用SaveTrajectory函数完成数据的存储
步骤:创建文件夹,创建文件,写入数据
调用存储函数
存储数据流程
具体函数实现
精度评估
EVO评价数据有两种模式,对应的指令分别是 evo_rpe 和 evo_ape ,前者评价的是每段距离内的误差,后者评价的是绝对误差随路程的累计。
评价每段距离内的误差可以使用如下指令
evo_rpe kitti ground_truth.txt laser_odom.txt -r trans_part --delta 100 --plot --plot_mode xyz
其中--delta 100表示的是每隔100米统计一次误差,这样统计的其实就是误差的百分比,和kitti的odometry榜单中的距离误差指标就可以直接对应了。
执行指令之后会得到如下图形
由于每隔100米计算一次,所以是离散的点连成的折线。具体的统计指标如下
最大误差: 1.843837 %
平均误差: 0.805469 %
最小误差: 0.240367 %
RMSE: 0.903959 %
评价总累计误差可以用如下指令
evo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyz
会得到这样的图形
其中灰色部分就是累计误差,具体的指标如下
最大值:60.786025 m
平均值:19.478159 m
RMSE: 26.941895 m