orb-slam2跑通EuRoC数据集,并用evo对其进行评估(详细)

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

 

 

 

 

 


版权声明:本文为weixin_62464833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。