实操指南:ORB-SLAM3的编译运行

这篇具有很好参考价值的文章主要介绍了实操指南:ORB-SLAM3的编译运行。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面我们提到,ORB-SLAM3作为常用的机器人建图与定位技术,是当前最优秀的基于特征点的视觉SLAM系统之一。

它支持单目、双目、单目惯导、双目惯导、RGB-D等多种相机模式,兼具精度和鲁棒性,是机器人SLAM算法工程师的一项「必备技能」。

orbslam3运行,机器人科普,数码相机

为了更好地帮助大家学习和理解ORB-SLAM3,小智计划进行一系列理论与实践相结合的深度技术分享。而这些,都是我们在实践过程中总结出来的宝贵经验。

具体内容包括:

1. ORB-SLAM3论文导读与整体算法流程梳理

2. ORB-SLAM3中的跟踪线程

2.1特征点提取、匹配,以及地图初始化

2.2 IMU预积分原理及代码梳理

2.3跟踪模式详解:参考关键帧跟踪、恒速模型跟踪、重定位跟踪、局部地图跟踪

3. ORB-SLAM3中的局部建图线程

3.1 IMU的初始化

3.2 局部建图线程代码梳理

4. ORB-SLAM3中的闭环检测及多地图融合线程

4.1闭环检测代码梳理

4.2多地图概念及地图融合代码梳理

orbslam3运行,机器人科普,数码相机

 本期则是这系列课程的「开胃前菜」——ORB-SLAM3的编译运行。

我们结合实践经验,对ORB-SLAM3安装和编译的常见问题进行总结分享,同时细化不同传感器的运行方式。可以说,这是一份非常适合「新手小白」的ORB-SLAM3编译运行指南。

ORB-SLAM3编译及常见问题解决

第一步,下载代码:

git clone https://github.com/UZ-SLAMLab/ORB_SLAM3

或者

git clone https://github.com/electech6/ORB_SLAM3_detailed_comments

第二步,按照代码中的README.md,进行环境安装和编译即可,具体就不赘述了。

不过我掐指一算,大家在编译过程中,可能会遇到几个小问题:

orbslam3运行,机器人科普,数码相机

1)提示找不到GLEW;

解决方法:sudo apt install libglew-dev;

2)当执行./euroc_examples.sh时,出现找不到libpango_image.so这个库的情况;

解决方法:首先,在系统中查找文件sudo find / -name libpango_image.so;结果为:/usr/local/lib/libpango_image.so

然后,将.so文件路径的目录添加到/etc/ld.so.conf:

sudo gedit/etc/ld.so.conf,同时在文件的末尾添加一行:/usr/local/lib/libpango_image.so,执行sudo /sbin/ldconfig生效。

orbslam3运行,机器人科普,数码相机

最后,在编译build_ros.sh之前,需要执行gedit ~/.bashrc,在文件末尾添加如下:

export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS

ORB-SLAM3各类传感器运行

不同传感器下,ORB-SLAM3的运行方式存在着差异。在这里,我们分为非ROS和ROS两种环境来进行讨论。

非ROS环境下运行

1)EuROC数据集

用微型飞行器采集的视觉惯性数据集,包含双目相机和IMU同步测量数据及位姿的真值。

这里需下载MH_01_easy.zip;下载地址:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

将其解压后并命名为MH01;之后根据自己的地址${dir}来运行。

  • 纯单目

./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml ${dir}/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono

orbslam3运行,机器人科普,数码相机

  • 纯双目

./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ${dir}/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereo

orbslam3运行,机器人科普,数码相机

  • 单目惯导

./Examples/Monocular-Inertial/mono_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Monocular-Inertial/EuRoC.yaml ${dir}/MH01 ./Examples/Monocular-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_monoi

orbslam3运行,机器人科普,数码相机

  •  双目惯导

./Examples/Stereo-Inertial/stereo_inertial_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo-Inertial/EuRoC.yaml ${dir}/MH01 ./Examples/Stereo-Inertial/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereoi

orbslam3运行,机器人科普,数码相机

2)TUM VI 数据集

其采用的相机和IMU传感器,在硬件上进行了时间同步。

所提供的图像具有高动态范围,事先进行了光度标定,用20Hz的帧率采集,分辨率为1024像素*1024像素;三轴IMU采样频率为200Hz,可测量加速度和角速度。

需要下载数据集dataset-room1_512_16,下载地址:https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download

  • 纯单目

./Monocular/mono_tum_vi ../Vocabulary/ORBvoc.txt Monocular/TUM_512.yaml ${dir}/dataset-room1_512_16/mav0/cam0/data Monocular/TUM_TimeStamps/dataset-room1_512.txt dataset-room1_512_mono

orbslam3运行,机器人科普,数码相机

  • 纯双目

./Stereo/stereo_tum_vi ../Vocabulary/ORBvoc.txt Stereo/TUM_512.yaml ${dir}/dataset-room1_512_16/mav0/cam0/data /home/sangfor/2023/bro_ws/dataset-room1_512_16/mav0/cam1/data Stereo/TUM_TimeStamps/dataset-room1_512.txt dataset-room1_512_stereo

orbslam3运行,机器人科普,数码相机

  • 单目惯导

./Monocular-Inertial/mono_inertial_tum_vi ../Vocabulary/ORBvoc.txt Monocular-Inertial/TUM_512.yaml ${dir}/dataset-room1_512_16/mav0/cam0/data Monocular-Inertial/TUM_TimeStamps/dataset-room1_512.txt Monocular-Inertial/TUM_IMU/dataset-room1_512.txt dataset-room1_512_monoi

orbslam3运行,机器人科普,数码相机

  • 双目惯导

./Stereo-Inertial/stereo_inertial_tum_vi ../Vocabulary/ORBvoc.txt Stereo-Inertial/TUM_512.yaml ${dir}/dataset-room1_512_16/mav0/cam0/data ${dir}/dataset-room1_512_16/mav0/cam1/data Stereo-Inertial/TUM_TimeStamps/dataset-room1_512.txt Stereo-Inertial/TUM_IMU/dataset-room1_512.txt dataset-room1_512_stereoi

orbslam3运行,机器人科普,数码相机

  •  RGB-D

这里下载数据集:rgbd_dataset_freiburg1_desk,下载地址:https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download

然后下载associate.py,下载地址:https://cvg.cit.tum.de/data/datasets/rgbd-dataset/tools

目的是从rgb.txt 文件和 depth.txt 文件中读取时间戳,并通过查找最佳匹配来连接它们。

之后开始运行:

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml ${dir}/rgbd_dataset_freiburg1_desk  /home/sangfor/2023/bro_ws/rgbd_dataset_freiburg1_desk/associations.txt

orbslam3运行,机器人科普,数码相机

ROS环境下运行

  • 纯单目

rosrun ORB_SLAM3 Mono  Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml

rosbag play MH_01_easy.bag /cam0/image_raw:=/camera/image_raw

orbslam3运行,机器人科普,数码相机

  • 纯双目

rosrun ORB_SLAM3 Stereo Vocabulary/ORBvoc.txt Examples/Stereo/EuRoC.yaml false

rosbag play MH_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw

orbslam3运行,机器人科普,数码相机

  • 单目惯导

rosrun ORB_SLAM3 Mono_Inertial Vocabulary/ORBvoc.txt Examples/Monocular-Inertial/EuRoC.yaml

rosbag play MH_01_easy.bag

orbslam3运行,机器人科普,数码相机

  • 双目惯导

rosrun ORB_SLAM3 Stereo_Inertial Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml false

rosbag play MH_01_easy.bag /cam0/image_raw:=/camera/left/image_raw /cam1/image_raw:=/camera/right/image_raw /imu0:=/imu

orbslam3运行,机器人科普,数码相机

  • RGB-D

下载数据集:rgbd_dataset_freiburg1_xyz.bag,fr1/xyz选择more info找到bag文件后,然后下载。下载地址:

https://cvg.cit.tum.de/data/datasets/rgbd-dataset/download#freiburg1_xyz

之后运行:

rosrun ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml

rosbag play rgbd_dataset_freiburg1_xyz.bag

orbslam3运行,机器人科普,数码相机

至于KITTI数据集,我们留给感兴趣的同学自行下载探索。下载地址:https://www.cvlibs.net/datasets/kitti/eval_object.php文章来源地址https://www.toymoban.com/news/detail-643754.html

到了这里,关于实操指南:ORB-SLAM3的编译运行的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于安卓手机的ORB-SLAM3的调试运行

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 基于安卓手机的ORB-SLAM3的调试运行 安卓手机集成了惯性与视觉信息,作为一个轻量化的平台能够作为ORB-SLAM3的载体进行运行,作为一个slam的初学者,本文仅作为一个学习过程中遇到的各种问题以及相应

    2024年02月05日
    浏览(35)
  • ORB-SLAM3算法2之EuRoc、TUM和KITTI开源数据集运行ORB-SLAM3生成轨迹并用evo工具评估轨迹

    ORB-SLAM3算法1 已成功编译安装ORB-SLAM3到本地,本篇目的是用 EuRoc 开源数据来运

    2024年02月08日
    浏览(35)
  • Ubuntu20.04在ROS下运行ORB-SLAM3

    目录 1.前言: 2.总体配置: 3.数据集 4.配置ORB-SLAM3 (1)添加环境变量 (2)修改文件 5.编译运行 (1)检查环境 (2)编译 6.运行 7.部分报错 (1)功能包未找到 (2)AR路径下文件的错误 (3)Pangolin库错误 (4)缺少库         小白配置ORB-SLAM3的过程真的辛酸。。各种各样

    2024年03月15日
    浏览(45)
  • 自学SLAM(2)---保姆教程教你如何使用自己的视频运行ORB-SLAM2

    如果你是新手入门,仅仅只会Linux的基本操作,并看了高翔老师视觉SLAM视屏的第一讲,那么你需要准备一整天的时间,可能还不一定能运行出来!运行ORB-SLAM2将会安装很多很多东西。那么,我们准备开始!! 我是默认你已经装了虚拟机和Ubuntu系统的!! 首先先展示一下成果

    2024年02月08日
    浏览(40)
  • ORB-SLAM2算法6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

    ORB-SLAM2算法1已成功编译安装 ROS 版本 ORB-SLAM2 到本地,以及ORB-SLAM2算法5

    2024年02月09日
    浏览(30)
  • ORB-SLAM2学习笔记6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

    ORB-SLAM2算法1已成功编译安装 ROS 版本 ORB-SLAM2 到本地,以及ORB-SLAM2算法5

    2024年02月14日
    浏览(33)
  • 用evo工具分析ORB-SLAM2运行TUM,KITTI,EuRoC数据集轨迹

    在ORB-SLAM2的学习过程中,不可避免的会用到这些数据集来运行程序,并且还会将运行轨迹与相机真实轨迹作对比,下面就介绍使用evo工具分析SLAM常用TUM,KITTI,EuRoC数据集。SLAM数据集TUM,KITTI,EuRoC数据集的下载地址与真实轨迹文件的查找总结的博客链接。 可以使用evo工具将

    2024年03月21日
    浏览(36)
  • 【SLAM】ORBSLAM34macOS: ORBSLAM3 Project 4(for) macOS Platform

    硬件:MacBook Pro Intel CPU 系统:macOS Ventura 13.4.1 https://github.com/phdsky/ORB_SLAM3/tree/macOS 克隆仓库与三方子仓(Pangolin) 安装各子仓及主仓所需依赖库 (核对主仓CMakeList:124/125 boost/openssl 版本与库位置) 运行 ./build.sh 完成编译 (本版只改动了 stereo_euroc 样例供测试,其余样例自行修改线程

    2024年02月12日
    浏览(44)
  • Ubuntu18.04下使用安卓手机Camera和IMU信息运行ORB-SLAM2

    1、下载Android_Camera-IMU,将其中的Camera-Imu.apk文件发送至手机端进行安装。 下载命令: git clone https://github.com/hitcm/Android_Camera-IMU.git  发送至手机的文件在手机端安装以后的软件  在手机端安装好以后的软件如下:  2、安装功能依赖包:sudo apt-get install ros-melodic-imu-tools  # 修改

    2024年02月09日
    浏览(35)
  • Ubuntu18.04安装灭霸SLAM:ORBSLAM3

    终于有时间好好整理一下最近跑通ORB-SLAM3的一些笔记了,在xavier上安装了一下谷歌拼音输入法,具体可以参考:AGX Xavier安装中文输入法 先说结论: 1)不建议安装最新版,安装时有许多坑需要填,即使填好了,运行时依然会有很多坑,比如依赖于最新版的opencv4.4等等,最新版

    2023年04月09日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包