evo是一个用来评估SLAM系统测量数据以及输出估计优劣的Python工具
1. 安装EVO
pip install evo --upgrade --no-binary evo
2. 使用
测量指标:
- evo_ape:绝对位姿误差
- evo_rpe:相对位姿误差
常用命令:
- evo_traj:绘制轨迹,一条或多条,支持kitti,eurco,tum三种格式
- evo_res:根据指标比较分析不同SLAM方案轨迹输出结果
不常用命令:
- evo_fig:重新打开序列化图的工具
- evo_config:用于全局设置和配置文件操作的工具
参数:
- -p或–plot: 绘图
- -v或–verbose: 输出相关信息(均值,方差等)
- -f或–full_check: 检查相关信息(时间戳是否对应,四元数是不是单位四元数)
- -a或–align: 对轨迹进行对齐,用ICP的方法,并不是仅仅将起点对齐
- –correct_scale: 尺度校正
2.1 轨迹画图
- 单轨迹
evo_traj euroc data.csv -p --plot_mode=xy
- 多轨迹
代码中输出的位姿文件是最简单TUM格式,所以需要将groundtruth.csv文件转成TUM格式
多轨迹输出需要注意将轨迹对齐,单目相机还可以进行尺度矫正evo_traj euroc data.csv --save_as_tum
evo_traj tum euroc_path.txt --ref=data.tum -p --plot_mode=xyz --align --correct_scale
2.2 测量指标输出
- APE:
比较估计轨迹和参考轨迹并计算整个轨迹的统计数据,适用于测试轨迹的全局一致性
evo_ape tum euroc_path.txt data.tum -va -p --plot_mode=xy --save_results euroc.zip
- RPE
相对位姿误差可以给出局部精度,例如slam系统每米的平移或者旋转漂移量。
evo_ape tum euroc_path.txt data.tum -va -p --plot_mode=xy --save_results euroc.zip
2.3 结果输出
- 打印消息和统计消息,绘制结果,将统计信息保存在表内
evo_res results/*.zip -p --save_table results/table.csv
(由于没有和其他的算法比较,这里省略,仅贴出git上的示例)