ORB-SLAM3的Euroc数据集测试

  • Post author:
  • Post category:其他


(一)测试运行

不同模式测试过程(以MH_03为例)

1、pure mono


运行SLAM:

cd ORB-SLAM3/Example

#run slam
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml "$pathDatasetEuroc"/MH03 ./Monocular/EuRoC_TimeStamps/MH03.txt dataset-MH03_mono


利用ORB-SLAM3自带模块评估:

cd ORB-SLAM3/Example

#evaluate & plot
python ../evaluation/evaluate_ate_scale.py ../evaluation/Ground_truth/EuRoC_left_cam/MH03_GT.txt f_dataset-MH03_mono.txt --plot MH03_mono.pdf

运行结果(ORB_SLAM3_ate.rmse,scale,GT_ate.rmse):

由于单目的尺度未标定,故出现RMSE数值大的现象。


evo评估 (ate):

#plot trajct
evo_traj tum f_dataset-MH03_mono.txt --ref=MH03_groundtruth.txt -p -a -s


#evaluate ate
evo_ape tum f_dataset-MH03_mono.txt MH03_groundtruth.txt -p -a -s

运行结果:

2、pure stereo


运行SLAM:

cd ORB-SLAM3/Example

#run slam
./Stereo/stereo_euroc ../Vocabulary/ORBvoc.txt ./Stereo/EuRoC.yaml "$pathDatasetEuroc"/MH03 ./Stereo/EuRoC_TimeStamps/MH03.txt dataset-MH03_stereo


利用ORB-SLAM3自带模块评估(ate):

cd ORB-SLAM3/Example

#evaluate & plot
python ../evaluation/evaluate_ate_scale.py ../evaluation/Ground_truth/EuRoC_left_cam/MH03_GT.txt f_dataset-MH03_stereo.txt --plot MH03_stereo.pdf

运行结果:


evo评估 (ate):

#plot trajct
evo_traj tum f_dataset-MH03_stereo.txt --ref=MH03_groundtruth.txt -p -a -s


#evaluate ate
evo_ape tum f_dataset-MH03_stereo.txt MH03_groundtruth.txt -p -a -s

运行结果:

轨迹图与投影图与上边基本一致,具体精度如下:

3、mono+IMU


运行SLAM:

cd ORB-SLAM3/Example

#run slam
./Monocular-Inertial/mono_inertial_euroc ../Vocabulary/ORBvoc.txt ./Monocular-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH03 ./Monocular-Inertial/EuRoC_TimeStamps/MH03.txt dataset-MH03_mono_inertial


利用ORB-SLAM3自带模块评估(ate):

cd ORB-SLAM3/Example

#evaluate & plot
python ../evaluation/evaluate_ate_scale.py ../evaluation/Ground_truth/EuRoC_left_cam/MH03_GT.txt f_dataset-MH03_mono_inertial.txt --plot MH03_mono_inertial.pdf

评估结果:


evo评估 (ate):

#plot trajct
evo_traj tum f_dataset-MH03_mono_inertial.txt --ref=MH03_groundtruth.txt -p -a -s


#evaluate ate
evo_ape tum f_dataset-MH03_mono_inertial.txt MH03_groundtruth.txt -p -a -s

评估结果:

4、stereo+IMU


运行SLAM:

cd ORB-SLAM3/Example

#run slam
./Stereo-Inertial/stereo_inertial_euroc ../Vocabulary/ORBvoc.txt ./Stereo-Inertial/EuRoC.yaml "$pathDatasetEuroc"/MH03 ./Stereo-Inertial/EuRoC_TimeStamps/MH03.txt dataset-MH03_stereo_inertial


利用ORB-SLAM3自带模块评估(ate):

cd ORB-SLAM3/Example

#evaluate & plot
python ../evaluation/evaluate_ate_scale.py ../evaluation/Ground_truth/EuRoC_left_cam/MH03_GT.txt f_dataset-MH03_stereo_inertial.txt --plot MH03_stereo_inertial.pdf

评估结果:


evo评估 (ate):

#plot trajct
evo_traj tum f_dataset-MH03_stereo_inertial.txt --ref=MH03_groundtruth.txt -p -a -s


#evaluate ate
evo_ape tum f_dataset-MH03_stereo_inertial.txt MH03_groundtruth.txt -p -a -s

评估结果:

(二)数据对比

ATE(全局误差)

由于:1.特征点提取后,要在distributeOctTree函数里用到了sort排序,应该是排序加入了不稳定因素,使得每次保留的特征点不一样;2.多线程:并行运行过程中,每次电脑的运行状况不同;3.算EPnP的ransac不是稳定的;导致

每次运行结果都有变化

,故以下结果中RMSE和SCALE取运行多次的均值。

数据 运动特征 模式

Max

(cm)

Min

(cm)

Median

(cm)


RMSE


(cm)


SCALE

MH_01

(easy)

length:80.6m

time:182s

回环多,速度慢

pure mono 10.4 0.3 3.0
3.6


pure stereo 6.3 0.2 2.7
3.1

1
mono+IMU 14.0 0.4 4.5
5.8

1
stereo+IMU 14.7 0.4 5.1
6.2

1

MH_02

(easy)

length:73.4m

time:150s

回环多,速度慢

pure mono 42 0.7 5.8
6.5


pure stereo 4.6 0 1.24
2.1

1
mono+IMU 11 0.4 3.4
4.6

0.999
stereo+IMU 8.8 0.1 2.7
3.8

1

MH_03

(medium)

length:130.9m

time:132s

回环多,距离长,速度快

pure mono 25.3 0.1 3.4
4.3


pure stereo 9.6 0.2 1.9
2.5

1
mono+IMU 13 0.6 5.4
6.3

0.995
stereo+IMU 10.7 0.5 3.9
5.2

0.995

MH_04

(difficult)

length:91.7m

time:99s

回环少,速度快,中间有段环境光度变化大

pure mono 40.5 2.1 8.8
13.2


pure stereo 25.7 1.1 9.5
12.75

1.008
mono+IMU 27.8 1.8 11.5
15.55

0.986
stereo+IMU 17.2 0.7 6.0
6.6

0.998

MH_05

(difficult)

length:97.5m

time:111s

与MH04相似

pure mono 23.6 0.6 5.3
6.4


pure stereo 16 0.4 3.9
5.4

0.994
mono+IMU 27.3 0.3 7.6
9.2

0.992
stereo+IMU 17.4 1.4 7.4
8.5

0.991



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