evo的使用

安装evo: pip install evo --upgrade --no-binary evo。最新版本的evo只支持Python3.6+,因此如果你在用Python 2.7,最高能安装的evo版本是1.12.0,可以输入pip install evo==1.12.0安装。安装完之后,终端输入evo看看有没有结果。

evo支持TUM、KITTI、EuRoC MAV、Bag格式的轨迹/姿态文件。可用的命令:

1
2
3
4
5
6
7
8
9
10
Metrics:
evo_ape - absolute pose error
evo_rpe - relative pose error

Tools:
evo_traj - tool for analyzing, plotting or exporting multiple trajectories
evo_res - tool for processing multiple result files from the metrics
evo_ipython - IPython shell with pre-loaded evo modules
evo_fig - (experimental) tool for re-opening serialized plots
evo_config - tool for global settings and config file manipulation

每个命令的第1参数只能是所支持的文件类型,比如kitti,否则报错: evo_rpe: error: argument subcommand: invalid choice: ‘abc’ (choose from ‘kitti’, ‘tum’, ‘euroc’, ‘bag’)

绘制多个轨迹

1
2
evo_traj kitti ground_truth.txt laser_odom.txt -p --plot_mode=xyz
evo_traj kitti --ref=ground_truth.txt laser_odom.txt -p --plot_mode=xy

--ref似乎就是把对应轨迹设置为虚线,其他没什么特别。--plot_mode如果设置为xyz,那么绘制的轨迹就是3D的。如果加入--save_results results.zip,那么把数据存入了zip文件。

evo_traj相当于定性评价了精度,定量评价用到evo_ape命令和evo_rpe,前者评价的是每段距离内的误差,后者评价的是绝对误差随路程的累计。

评价每段距离内的误差可以使用指令: evo_rpe kitti ground_truth.txt laser_odom.txt -r trans_part --delta 100 --plot --plot_mode xyz。 其中--delta 100表示的是每隔100米统计一次误差,这样统计的其实就是误差的百分比,和kitti的odometry榜单中的距离误差指标就可以直接对应了。

评价总累计误差可以用指令: evo_ape kitti ground_truth.txt laser_odom.txt -r full --plot --plot_mode xyz

还有个evo_res,以后用到再说。