evo简介
evo是一个很好的测评工具,它可以根据时间戳将轨迹进行对齐,同时可以将不同尺度的轨迹按照你指定的标准轨迹进行拉伸对齐,并可以算出均方差等评定参数,用于测评slam算法性能
目前支持 TUM KITTI Euroc 等格式。evo工具提供了:
3种误差评估方式:
evo_ape -absoulte pose error
evo_rpe -relative pose error
evo_rpe -for-each -sub-sequence-wise averaged pose error
4种工具:
evo_traj - tool for analyzing, plotting or exporting one or more trajectories
evo_res - tool for comparing one or multiple result files from evo_ape or evo_rpe
evo_fig - (experimental) tool for re-opening serialized plots (saved with –serialize_plot)
evo_config - tool for global settings and config file manipulation
evo安装
1.切换python版本
新版evo的安装只支持python 3.6+
Ubuntu18.04默认python2.7(catkin_make支持python2.7版本,即默认版本),需要切换
sudo update-alternatives --config python
2.安装pip3
sudo apt install python3-pip
查看版本:
pip3 -V
注:如果报下面错误,很可能是没有安装pip3,尤其是刚切换了python3,大概率是没有安装,安装后就不报错了,可以正常进行第三步evo的安装
Traceback (most recent call last):
File "/usr/local/bin/pip", line 7, in <module>
from pip._internal.cli.main import main
ModuleNotFoundError: No module named 'pip'
3.安装evo
sudo pip install evo --upgrade --no-binary evo
4.自带test测试
cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xyz
报错:
ModuleNotFoundError: No module named 'tkinter'
[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)
解决:
sudo apt-get install tcl-dev tk-dev python3-tk
完成。
evo使用
绝对误差
//二维
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz
//三维
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xyz
相对误差(地图用颜色深浅表示)
evo_ape kitti KITTI_00_gt.txt KITTI_00_ORB.txt -va -p
在前面的是gt
使用ape的时候无需给出–ref 的文件,tum 后第一个文件即为标准文件,
这里标准文件为data.txt
其他参数
将文件保存为其他类型的文件,可以使用如下句柄
--save_as_tum save trajectories in TUM format (as *.tum)
--save_as_kitti save poses in KITTI format (as *.kitti)
--save_as_bag save trajectories in ROS bag as <date>.bag
保存图片
--save_plot “保存的路径”
合并轨迹
--merge
给出数据的最大时间戳差异
--t_max_diff “具体差异”
具体其他参数请参考不同工具后的-h(–help)