安装
EVO是一款用于评估SLAM轨迹的工具,新版本的EVO仅支持python 3.6+。因此需要先切换python版本:
sudo update-alternatives --config python
之后利用pip安装:
sudo pip3 install evo --upgrade --no-binary evo
如果有报错:“ModuleNotFoundError: No module named ‘tkinter’”,需要运行以下命令:
sudo apt-get install python3-tk
NOTE:ROS库使用python2.7,如果切换到了python3版本,运行roscore会报错:“ModuleNotFoundError: No module named ‘defusedxml’”,因此需要记得切换回去。
卸载使用命令:
pip3 uninstall evo
使用
evo_traj
evo_traj bag支持将录制的bag轨迹消息转化为tum格式:
evo_traj bag xxx.bag topicName --save_as_tum
evo_traj bag 可能会报错:“No module named ‘Cryptodome’”或者“ImportError: cannot import name NavigationToolbar2Tk”,一般都是python版本问题,解决方案参见Cryptodome,NavigationToolbar2Tk。
evo_traj euroc 将EuRoc格式文件转为tum格式:
evo_traj euroc data.csv --save_as_tum
evo_ape
evo_ape常用命令:
evo_ape tum refFile estFile -vap
一些常用的输出选项:
- -v(–verbose) 输出一些额外信息(时间戳数量,匹配点数,对齐的位姿变换等等)
- -a(–align) 表示对齐,使用Umeyama方法
- -p(–plot) 绘制结果
- -t_max_diff 指定数据关联最大的时间差,有时候轨迹时间戳太少需要提高t_max_diff
- -r full/trans_part/rot_part/angle_deg/angle_rad 指定评估的位姿参数(默认是trans_part)
- -s 表示校正尺度,一般用于单目SLAM
- –n_to_align 指定用来做对齐的位姿数目(默认是全部)
- –save_results xxx.zip 保存结果,之后可以用evo_res对比
- –save_plot 保存生成图片,指定保存路径(似乎保存为jpg/png都无法打开?pdf可以)