EVO Evaluation of SLAM 5 --- ORB-SLAM3 精度和性能效果评估

一、前言

上一篇文章已经把怎么编译和运行ORB-SLAM3讲的差不多了:
EVO Evaluation of SLAM 4 — ORB-SLAM3 编译和利用数据集运行

接下来就是基于ORB-SLAM3运行的结果,利用EVO来评估其性能。

二、说明

运行的ORB-SLAM3的代码是:
https://github.com/shanpenghui/ORB_SLAM3_Fixed.git

评估的主要依据ORB-SLAM3各个版本运行的结果来进行评估,下面分版本和数据集进行评估。

三、ros版本的编译和运行

1.EuRoc

(1)Groundtruth

cd MH_01_easy/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --save_as_tum

(2)APE

A.Stereo

evo_ape tum FrameTrajectory_TUM_Format.txt data.tum -p --plot -s --correct_scale -a --align -v --save_results orbslam3_stereo_ros_euroc.zip

结果:

EVO Evaluation of SLAM 5 --- ORB-SLAM3 精度和性能效果评估_第1张图片

EVO Evaluation of SLAM 5 --- ORB-SLAM3 精度和性能效果评估_第2张图片

B.Mono

evo_ape tum KeyFrameTrajectory.txt data.tum -p --plot -s --correct_scale -a --align -v --save_results orbslam3_mono_ros_euroc.zip

结果:

EVO Evaluation of SLAM 5 --- ORB-SLAM3 精度和性能效果评估_第3张图片

EVO Evaluation of SLAM 5 --- ORB-SLAM3 精度和性能效果评估_第4张图片

四、非ros版本的运行(Monocular)

因为比较复杂,已经更新到代码中了,具体参见链接:ORB_SLAM3_Fixed
在本例中,使用的是非ros单目版本,Euroc MH_01_easy的数据集。

1.Run ORB-SLAM3

cd shells
./tum_vi.sh

Get the result file as :

f_dataset-mh_01_easy.txt
kf_dataset-mh_01_easy.txt

2.Process the ORB-SLAM3 result file

一、Copy file

Process the ORB-SLAM3 result fileMove the result files above to the results folder

cd ORB_SLAM3_Fixed
cp f_dataset-mh_01_easy.txt results
cp kf_dataset-mh_01_easy.txt results
cd results

二、Process slam data (output is raw.csv)

A.Change the file name in process_orbslam_result.py Line 6 and Line 25

Line 6-7
dataset_path = './'
file_name = 'f_dataset-mh_01_easy.txt'

B.Process calibration files

python3 process_orbslam_result.py

C.Check trjactory if it is correct

evo_traj tum raw.csv -p

D.Save trjactory into standard format

evo_traj tum raw.csv --save_as_tum

E.Compare itself(or other)

evo_traj tum raw.tum --ref=raw.tum -va -p -s

3.Process the TUM groundtruth (output is gt.csv)

这里不用python脚本转换,可能evo升级了,最新的版本是不用转换的,运行脚本反而会出错。这里直接把gt的原文件转成tum就可以了。

rm -rf gt.csv
cp data.csv gt.csv
evo_traj euroc gt.csv -p
evo_traj euroc gt.csv --save_as_tum

4.Compare the groundtruth and the ORB-SLAM3 result

evo_traj tum raw.tum --ref=gt.tum -v -a -p -s

5.Calculate ATE of ORB-SLAM3 Monocular

evo_ape tum raw.tum gt.tum -v -a -p -s --save_results orbslam3_mono_unros_euroc_mh_01_easy.zip

五、整合不同结果

evo_ape/evo_rpe中将结果保存为.zip文件后,可以利用evo_res对不同的结果进行比较。
例如:MH3.zip、MH3_2.zip均由evo_ape得到的,运行命令evo_res MH3.zip MH3_2.zip -v

六、非ros版本的运行(RGB-D)

1.Run

./tum_rgbd.sh

2.Copy result files to folder

3.Copy groundtruth files to folder

4.Check CameraTrajectory

evo_traj tum CameraTrajectory.txt -p

5.Change CameraTrajectory format

evo_traj tum CameraTrajectory.txt --save_as_tum

6.Check Groundtruth Trajectory

evo_traj tum groundtruth.txt -p

7.Change Groundtruth Trajectory format

evo_traj tum groundtruth.txt --save_as_tum

8.Compare the groundtruth and the ORB-SLAM3 result

evo_traj tum CameraTrajectory.tum --ref=groundtruth.tum -v -a -p -s

9.Calculate ATE

evo_ape tum CameraTrajectory.tum groundtruth.tum -v -a -p -s

你可能感兴趣的:(SLAM,slam)