evo的安装:
打开终端,运行下面的指令:
sudo apt install python-pip
pip install evo --upgrade --no-binary evo
pip install evo --upgrade --no-binary evo --user
下载EoRoC数据集,并用orb-slam2跑通:
(1)下载数据集:下载地址:http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets
我下载的是MH05的包。将下载好的数据集解压并放在home文件夹下,打开终端,运行如下命令:
cd /home/frank/下载/ORB_SLAM2-master
./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml /home/用户名/EuRoC/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH05.txt
第一条指令是指进入你的orb -slam2 安装包所在的位置打开终端,第二条指令中的用户名是你的客户机的用户名,而且你如果下载的是其他的数据集,对应更改指令末尾的MH05即可。我的数据集是解压在home文件夹下,你可以进入你的数据集所在的文件夹,通过快捷键ctrl+l来复制路径,接着对上述指令中的路径作出更改即可。
(2)利用evo对其进行评估:
运行单轨迹,即数据集的真实值:打开终端,运行如下的指令:
cd /home/frank/EuRoC/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --plot
如果出现如下错误:
[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)
解决办法:
pip install numpy --upgrade --user
运行多轨迹:数据集自带真实值文件,文件名后缀是.csv ,需要将.csv 的文件groundturth转换为TUM形式的文件,打开终端,运行如下指令:
cd /home/frank/EuRoC/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --save_as_tum
在home文件夹下新建一个文件夹output,将之前通过测试程序得到的TUM形式的轨迹文件:KeyFrameTrajectory.txt(这个文件保存在orb-slam2)和上述指令得到的文件:data.tum 两个文件一块保存到新建的文件夹output中。
打开终端,运行如下指令:(注意:用户名是你的客户机的用户名,你新建的文件夹要是不在home目录下,就改成你自己的存放路径。)
cd /home/用户名/output
evo_traj tum KeyFrameTrajectory.txt --ref=data.tum -p --plot_mode xyz -a --correct_scale
计算绝对位姿误差:
打开终端,运行如下指令:
cd /home/用户名/output
mkdir results
evo_ape tum data.tum KeyFrameTrajectory.txt -va --plot --plot_mode xyz -s --save_results results/ape.zip
计算相对位姿误差:
打开终端,运行如下指令:
cd /home/用户名/output
evo_rpe tum data.tum KeyFrameTrajectory.txt -va --plot --plot_mode xyz -s --save_results results/rpe.zip
结果比较: 首先将计算绝对误差和相对误差得到的两个压缩包移动到rusults中,并运行如下指令:
cd /home/用户名/output/results
evo_res ape.zip -p --save_table table.csv