从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(四):ORBSLAM评估工具EVO的使用

从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录四:ORBSLAM评估工具EVO的使用

前文:
从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(一):安装与配置
从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(二):相机测试与标定
从零开始Ubuntu16.04+ORBSLAM2+ROS实验实录(三):使用USB相机运行ORBSLAM

1 工具安装

git clone https://github.com/MichaelGrupp/evo.git
cd evo
pip3 install --editable . --upgrade --no-binary evo

执行下面指令验证安装是否成功:

$ evo_ape -h

usage: evo_ape [-h] {
    
    kitti,tum,euroc,bag} ...

Absolute pose error (APE) metric app (c) evo authors

positional arguments:
  {
    
    kitti,tum,euroc,bag}

optional arguments:
  -h, --help            show this help message and exit

2 数据测试

2.1 KITTI数据集

cd test/data
evo_traj kitti KITTI_00_ORB.txt KITTI_00_SPTAM.txt --ref=KITTI_00_gt.txt -p --plot_mode=xz

若测试通过说明EVO配置无误,本文在配置过程中遇到下面问题,特作记录。

错误1
ImportError cannot import name _imaging from PIL
[ERROR] evo module evo.main_ape crashed - no logfile written (disabled)

解决方法:更新Pillow库,根据matplotlib3.4.2要求,Pillow库版本应大于等于6.2.0,pyparsing版本应大于2.2.1这里对它们进行升级。由于matplotlib同时依赖两个库,因此升级过程遇到

错误1.1:ERROR: pip’s dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts
依赖冲突

解决方法:直接卸载当前的pillow和pyparsing,重新安装

pip3 install pillow==6.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install pyparsing==2.2.1 -i https://pypi.tuna.tsinghua.edu.cn/simple

更新完毕后问题解决。

错误2
File “/home/winter/.local/lib/python3.8/site-packages/matplotlib/backends/backend_tkagg.py”, line 1, in
from . import _backend_tk
File “/home/winter/.local/lib/python3.8/site-packages/matplotlib/backends/_backend_tk.py”, line 7, in
import tkinter as tk
ModuleNotFoundError: No module named ‘tkinter’

[ERROR] evo module evo.main_ape crashed - no logfile written (disabled)

解决方法:安装tkinter库

sudo apt install tk-dev 
# 本文使用3.8版本python,因为evo要求Python版本大于3.7
sudo apt-get install python3.8-tk	

在这里插入图片描述至此,测试完毕。

2.2 EuRoC数据集

EuRoC数据集的真值文件是.csv格式,为使用evo进行多轨迹绘图需要转换为tum格式

cd ~/Project/SLAM/ORBSLAM2/dataSet/MH05-D/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --save_as_tum

将ORSLAM2运行EuRoC数据集保存的KeyFrameTrajectory.txt视为实际值,与真值data.tum进行比较,

evo_traj tum KeyFrameTrajectory.txt --ref=groundtruth.tum -p -a

在这里插入图片描述可以看出真值与实际值差了一个尺度系数,这是因为单目视觉具有尺度不确定性,通过evo工具的–correct_scale可以进行修正

evo_ape tum KeyFrameTrajectory.txt groundtruth.tum -p -a --correct_scale

在这里插入图片描述

2.3 TUM数据集

类似地,执行命令

cd test/data
evo_ape tum fr2_desk_groundtruth.txt fr2_desk_ORB.txt -p -a

在这里插入图片描述

3 参数使用说明

--save_as_tum:保存为TUM格式
-a --align:轨迹对齐
-p --plot:绘制轨迹
-s --correct_scale:尺度对齐
--ref:参数指定参考轨迹
-va:两条轨迹进行对齐
-v:命令行输出细节信息

猜你喜欢

转载自blog.csdn.net/FRIGIDWINTER/article/details/119974323