ORB-SLAM、ORB-SLAM2跑通,运行EuRoC数据集,用EVO评估

教程目的

小白入门ORB两周,历经千辛万苦跑完了ORB和ORB2,并运行了EuRoC数据集,感谢各路CSDN大神,特此总结!
环境Ubuntu16.04,虚拟机VMware14,建议运行内存8G以上。

ORB-SLAM

首先一定要看github上面的readme.txt,地址:https://github.com/raulmur/ORB_SLAM
按照github上的步骤安装好所需的东西,另附一位大神的中文教程,十分详细,地址:
https://blog.csdn.net/Fishmemory/article/details/53288140
https://blog.csdn.net/u011392872/article/details/78816746
安装过程困难重重,附上大神指导博客,目前解决了我遇到的所有问题,地址:
https://blog.csdn.net/Jinxiaoyu886/article/details/88851884
https://blog.csdn.net/u010811078/article/details/59481126
https://blog.csdn.net/weixin_42056625/article/details/88050474
https://blog.csdn.net/sinat_38343378/article/details/78883919
在cmake和make过程中都会遇到问题,冷静,好好在上面几篇大神总结中找找,肯定有解决办法,大神总结的很完善,我就不多BB了,最后完美运行了example.bag就成功了,祝大家一切顺利。
如果最后实在解决不了,建议重装系统,尤其是安装一些工具的时候,经常运行

sudo apt-get update

如果出现依赖项问题,就会很麻烦,尽快百度解决,解决不了果断点重装系统吧。

ORB-SLAM2

ORB2是对ORB的扩展,如果你完美的运行了ORB,那么会很容易make出ORB2,如果你直接从ORB2开始,中途遇到问题可以从上面的博客中找到解决方法,都是共通的。
同样按照github指示操作,地址:https://github.com/raulmur/ORB_SLAM2
默认大家已经运行了ORB,忽略之前的环境安装环节。
1、克隆文件

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

你也可以从github上下载zip解压,但是记得最后文件夹名称改为ORB_SLAM2。
2、打开终端运行

cd ORB_SLAM2
chmod +x build.sh
./build.sh

显示进度完成100%就可以了。

跑通EuRoC数据集

这部分在github上也有详细描述,包括单目相机(Monocular)、双目相机(Stereo)、RGB-D(RGB-D)相机,包括TUM数据集、KITTI数据集和EuRoC数据集,本人运行的是单目的EuRoC数据集,具体操作如下:
1、下载数据集,地址:http://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets,下不下来的可以用迅雷试试,很大,这里我用的是MH05的包。
2、将下载好的数据集放在home文件夹下,打开终端,运行下面命令

cd ORB_SLAM2
./Examples/Monocular/mono_euroc Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml /home/用户名/EuRoC/mav0/cam0/data Examples/Monocular/EuRoC_TimeStamps/MH05.txt 

用户名写你的客户机名称,如果EuRoC文件夹在别的路径下,更改即可,如果下载的是其他数据包,对应更改末尾的MH05.txt,出现任何问题基本都是路径问题,仔细检查路径。
运行中的状态运行中的状态,结束后窗口自动关闭,并在终端显示这一行
命令
这是将运行后的数据存在这个文件中,后续用EVO评测时,会用他与真实值作对比。

EVO评测

这部分借鉴博客
https://blog.csdn.net/gyhjlauy/article/details/100598260
https://blog.csdn.net/A_L_A_N/article/details/88708979
https://blog.csdn.net/gaoyuzhong123/article/details/103211830

安装EVO

打开终端,运行

sudo apt install python-pip
pip install evo --upgrade --no-binary evo

出现下面问题

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: '/usr/lib/python2.7/dist-packages/dateutil/relativedelta.pyc'
Consider using the `--user` option or check the permissions.

运行

pip install evo --upgrade --no-binary evo --user

测试(运行单轨迹,数据集真实值)

打开终端,运行

cd ~/home/用户名/EuRoC/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --plot

出现问题

name:	data
infos:	19753 poses, 91.747m path length, 98.760s duration
/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.
  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')
[ERROR] Unhandled error in evo.main_traj
Traceback (most recent call last):
  File "/home/jinshan.lan/.local/lib/python2.7/site-packages/evo/entry_points.py", line 90, in launch
    main_module.run(args)
  File "/home/jinshan.lan/.local/lib/python2.7/site-packages/evo/main_traj.py", line 342, in run
    from evo.tools.plot import PlotMode
  File "/home/jinshan.lan/.local/lib/python2.7/site-packages/evo/tools/plot.py", line 36, in <module>
    import mpl_toolkits.mplot3d.art3d as art3d
  File "/usr/lib/python2.7/dist-packages/mpl_toolkits/__init__.py", line 2, in <module>
    __import__('pkg_resources').declare_namespace(__name__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2927, in <module>
    @_call_aside
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2913, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 2940, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 637, in _build_master
    return cls._build_from_requirements(__requires__)
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 650, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
  File "/usr/lib/python2.7/dist-packages/pkg_resources/__init__.py", line 834, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
ContextualVersionConflict: (numpy 1.11.0 (/usr/lib/python2.7/dist-packages), Requirement.parse('numpy>=1.12.0'), set(['pandas']))
 
[ERROR] evo module evo.main_traj crashed - no logfile written (disabled)

运行

pip install numpy --upgrade --user

结果如下
在这里插入图片描述

运行多轨迹

数据集自带真实值文件,文件名后缀是.csv,需将.csv文件形式的groundtruth转换为TUM形式的轨迹文件,打开终端,运行

cd /home/用户名/EuRoC/mav0/state_groundtruth_estimate0
evo_traj euroc data.csv --save_as_tum

格式转换参考: https://github.com/MichaelGrupp/evo/wiki/Formats
前文通过测试程序得到TUM形式的轨迹文件:KeyFrameTrajectory.txt(保存在ORB_SLAM2文件夹下)。将轨迹文件复制放入同一个文件夹中,建议新建一个文件夹output,将两个文件放进去
放在同一个文件夹下打开终端,运行

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
mkdir results
evo_rpe tum data.tum KeyFrameTrajectory.txt  -va --plot --plot_mode xyz -s --save_results results/rpe.zip

在这里插入图片描述在这里插入图片描述在这里插入图片描述

结果比较

打开终端,运行

cd /home/用户名/output/results
mkdir results
evo_rpe tum data.tum KeyFrameTrajectory.txt  -va --plot --plot_mode xyz -s --save_results results/rpe.zip
evo_res ape.zip -p --save_table table.csv

在这里插入图片描述
只有一个运行结果,所以看不出来对比结果。有多个结果比较时,可以参见官网实例。

大功告成!!!

  • 21
    点赞
  • 202
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ORB-SLAM2是一种基于视觉的单目、双目和RGB-D SLAM系统,可以用于实现实时定位和地图构建。EuRoC数据集是一个常用的SLAM数据集,包含了基于激光雷达和相机的传感器采集的图像序列和位姿数据。在这里,我们将介绍如何使用ORB-SLAM2跑通EuRoC数据集,并对其结果进行结论分析。 具体步骤如下: 1. 下载EuRoC数据集,并解压缩到本地计算机中。 2. 下载ORB-SLAM2的代码,并按照说明进行编译和安装。 3. 修改ORB-SLAM2的参数配置文件,以便正确读取EuRoC数据集。配置文件位于Examples/Monocular目录下,其中有一个名为EuRoC.yaml的文件。主要修改以下参数: - Vocabulary文件路径:修改为ORB-SLAM2的词袋文件路径。 - Camera calibration文件路径:修改为EuRoC数据集中的相机标定文件路径。 - 数据集文件路径:修改为EuRoC数据集的文件路径。 4. 运行ORB-SLAM2,对数据集进行处理。运行以下命令: ``` cd Examples/Monocular ./mono_euroc PATH_TO_VOCABULARY PATH_TO_SETTINGS.yaml PATH_TO_SEQUENCE_FOLDER ``` 其中,PATH_TO_VOCABULARY是ORB-SLAM2的词袋文件路径,PATH_TO_SETTINGS.yaml是ORB-SLAM2的配置文件路径,PATH_TO_SEQUENCE_FOLDER是EuRoC数据集的文件夹路径。 5. 等待ORB-SLAM2完成数据集处理。处理完成后,ORB-SLAM2会输出定位结果、重建的3D地图等信息。我们可以对这些结果进行分析和评估。 结论分析: 在运行ORB-SLAM2的过程中,我们可以得到一些性能评估指标,例如定位精度、重建的地图质量等。通过这些指标,我们可以对ORB-SLAM2在EuRoC数据集上的表现进行评价和分析。 此外,我们还可以使用其他数据集来对ORB-SLAM2进行测试和评估,以验证其鲁棒性和泛化能力。同时,我们还可以对ORB-SLAM2的参数进行调整,以优化其性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值