ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

这篇具有很好参考价值的文章主要介绍了ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ORB-SLAM3代码下载地址:ORB-SLAM3源码下载

所有的操作都是在完成以下网址中的所有操作内容下进行的:Ubuntu系统安装之后首需要做的事情
本文是总结的比较完善和直接的过程。
其实在整个运行中也遇到了一些问题,也做了一些总结,记录在了文章
ORB-SLAM3复现过程中遇到的问题及解决办法中
建议是先以本文为主,有问题之后再去参考问题解决办法。

1. 安装所需要的依赖和包

在一键安装ROS后,只需要再安装Pangolin即可,其他所有的需要都已经存在。
依次执行以下命令即可:

#依赖项
sudo apt-get install libglew-dev
sudo apt-get install cmake
sudo apt-get install libpython2.7-dev
sudo apt-get install ffmpeg libavcodec-dev libavutil-dev libavformat-dev libswscale-dev libavdevice-dev
sudo apt-get install libdc1394-22-dev libraw1394-dev
sudo apt-get install libjpeg-dev libpng-dev libtiff5-dev libopenexr-dev
#下载编译
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
sudo make install

这样下载下来的是Pangolin0.8。在ORB-SLAM3中是可以正常使用的。

2. 修改代码及文件内容

由于许多库的版本不一样,所以有部分代码需要更改
这里先声明我的环境:

Ubuntu20.04
Opencv4.2.0
C++11
Eigen3.3.7
Python3.8.10
Pangolin0.8

2.1 CMakeLists.txt文件的修改

  1. /home/xiaoduan/project/source2/orb_slam3/CMakeLists.txt文件的修改
gedit /home/xiaoduan/project/source2/orb_slam3/CMakeLists.txt
#第33行Opencv的版本改为4
#第41行Eigen的版本改为3
  1. /home/xiaoduan/project/source2/orb_slam3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt文件的修改
gedit /home/xiaoduan/project/source2/orb_slam3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt

更改内容如下:

  1. 第33行Opencv的版本改为4
  2. 第41行Eigen的版本改为3
  3. 第49行,加入${PROJECT_SOURCE_DIR}/…/…/…/Thirdparty/Sophus

2.2 单目可视化代码修改

gedit /Examples/Monocular/mono_euroc.cc

更改内容:

83行中的false改为true

2.3 环境配置文件的修改

gedit ~/.bashrc
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples_old/ROS
source ~/.bashrc

注意: 第二条命令中的${ROS_PACKAGE_PATH}是自己文件的路径。

2.4 源码的修改

在ORB_SLAM3中的src下有个AR文件夹,里面的一些内容会导致ros可执行文件的编译,做出以下修改:

  1. 在加入以下两个头文件:
#include <Eigen/Dense>
#include <opencv2/core/eigen.hpp>
  1. 删除ROS/ORB_SLAM3/src/AR/ros_mono_ar.cc第151行,由下面内容替换
cv::Mat Tcw;
Sophus::SE3f Tcw_SE3f = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec());
Eigen::Matrix4f Tcw_Matrix = Tcw_SE3f.matrix();
cv::eigen2cv(Tcw_Matrix, Tcw);
  1. 删除ROS/ORB_SLAM3/src/AR/ViewerAR.cc第409行,由以下内容替换
cv::Mat WorldPos;
cv::eigen2cv(pMP->GetWorldPos(), WorldPos);
vPoints.push_back(WorldPos);

  1. 删除ROS/ORB_SLAM3/src/AR/ViewerAR.cc第409行,由以下内容替换
cv::Mat Xw;
cv::eigen2cv(pMP->GetWorldPos(), Xw);

3.ORB-SLAM3的编译

3.1 构建 ORB-SLAM3 库

按顺序执行以下命令即可:

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

3.2 生成ROS节点

执行以下命令:

cd Examples_old/ROS/ORB_SLAM3 
chmod +x build_ros.sh
./build_ros.sh

4.ORB-SLAM3的运行

4.1 非ROS环境下运行

4.1.1 EuROC数据集

用微型飞行器采集的视觉惯性数据集,包含双目相机和IMU同步测量数据及位姿的真值。
数据集需下载MH_01_easy.zip,下载地址:MH_01_easy.zip下载地址
将数据集解压,命名为MH01。
运行命令:
注意: 命令中的${dir}是个人数据的存放路径

  • 纯单目:
cd Examples
./Monocular/mono_euroc ../Vocabulary/ORBvoc.txt ./Monocular/EuRoC.yaml ${dir}/MH01 ./Monocular/EuRoC_TimeStamps/MH01.txt dataset-MH01_mono
  • 纯双目:
./Examples/Stereo/stereo_euroc ./Vocabulary/ORBvoc.txt ./Examples/Stereo/EuRoC.yaml ${dir}/MH01 ./Examples/Stereo/EuRoC_TimeStamps/MH01.txt dataset-MH01_stereo
  • 单目惯导:
./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
  • 双目惯导:
./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

4.1.2 TUM VI 数据集

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

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

需要下载数据集dataset-room1_512_16和rgbd_dataset_freiburg1_desk。下载地址:TUM数据集下载

  • 纯单目:
cd Examples
./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
  • 纯双目:
./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
  • 单目惯导:
./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
  • 双目惯导:
./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
  • RGB-D:
./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

4.2 ROS环境下运行

首先,打开三个终端
在第一个终端上面运行roscore
接着在其余两个终端上,分别运行以下命令:

  • 纯单目:
rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Monocular/EuRoC.yaml
rosbag play MH_01_easy.bag /cam0/image_raw:=/camera/image_raw
  • 纯双目:
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
  • 单目惯导:
rosrun ORB_SLAM3 Mono_Inertial Vocabulary/ORBvoc.txt Examples/Monocular-Inertial/EuRoC.yaml
rosbag play MH_01_easy.bag
  • 双目惯导:
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
  • RGB-D:
    首先要下载数据集::rgbd_dataset_freiburg1_xyz.bag,fr1/xyz选择more info找到bag文件后,然后下载。
    下载地址就是稳重已经给出的TUM数据集的下载网址。
rosrun ORB_SLAM3 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml
rosbag play rgbd_dataset_freiburg1_xyz.bag

每条命令的运行都会有可视化界面,如下图所示:
ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04,SLAM,# 实践操作,ROS,ubuntu,linux,计算机视觉,python文章来源地址https://www.toymoban.com/news/detail-704940.html

到了这里,关于ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • ORB-SLAM2算法6之D435i双目IR相机运行ROS版ORB-SLAM2并发布位姿pose的rostopic

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

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

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

    2024年02月14日
    浏览(47)
  • ORB-SLAM2环境配置及运行

    本文是基于Ubuntu 20.04及OpenCV 4.6.0成功运行ORB-SLAM2,并在开源数据集上进行了测试。由于OpenCV和其他依赖库的版本较新,编译过程会出现一些问题,需要修改部分代码和CMakeLists.txt文件,这里做一个记录,也希望能帮到有需要的小伙伴。 开始尝试安装Eigen3.4.0和Pangolin-0.8版本,后

    2024年02月03日
    浏览(52)
  • ORB-SLAM3 数据集配置与评价

    在ORB-SLAM3运行EuRoC和TUM-VI数据集并作以评价。EuRoC利用微型飞行器(MAV ) 收集的视觉惯性数据集,TUM-VI 是由实验人员手持视觉-惯性传感器收集的数据集。这两个是在视觉SLAM中比较常用的公开数据集,所以测试并加以记录。 1、EuRoC官网下载 从官网下载Euroc数据集,ASL格式 2、新

    2024年02月15日
    浏览(72)
  • 工程(十)——github代码ubuntu20.04在ROS环境运行单目和RGBD相机ORB-SLAM3稠密

    博主创建了一个科研互助群Q:772356582,欢迎大家加入讨论交流一起学习。 加稠密建图:git@github.com:huashu996/ORB_SLAM3_Dense_YOLO.git 纯净版:git@github.com:huashu996/ORB_SLAM3.git orb-slam3的整个环境配置还是比较麻烦的,先将一些坑写在前面,供大家参考和避开这些坑。 orb-slam3的配置要求

    2024年01月25日
    浏览(53)
  • ORB-SLAM2的布置(一)Pangolin的安装

    ORB SLAM 2在github的官方流程 https://github.com/raulmur/ORB_SLAM2 然后就是安装Pangolin 在 ORB SLAM 2 中那些很炫酷的实时建图画面是通过 Pangolin 实现的。 Pangolin 是一个轻量级的开发库,控制 OpenGL 的显示、交互等。 Pangolin 的核心依赖是 OpenGL 和 GLEW。     OpenCV3.2 版本 DBoW2 和 g2o,这两个

    2023年04月18日
    浏览(39)
  • ubuntu18.04配置ORB-SLAM3并跑EuRoC数据集(单目)

    1.1  C++11 or C++0x Compiler 安装 新建一个终端(新建终端的快捷键是Ctrl+Alt+T) 输入以下代码 sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install build-essential sudo apt-get install cmake 1.2  Pangolin 安装 Pangolin的官方教程地址:https://github.com/stevenlovegrove/Pangolin 安装Pangolin 1.2.1下载

    2023年04月20日
    浏览(56)
  • Ubuntu18.04版本下配置ORB-SLAM3和数据集测试方法

    使用:VMware Workstation Pro 虚拟机系统版本是:Ubuntu 18.04.06 虚拟机内存:8g(若为4g大小,很容易出现后文中ORB-SLAM3编译时会出现的内存问题) 虚拟机存储:50g 若是配置完发现存储空间不足,可以参考这篇博客进行清理: 下载配置技巧:Ubuntu18.04安装vmware-tools解决无法复制粘贴

    2024年02月09日
    浏览(56)
  • ORB-SLAM2的布置(四)ORB-SLAM2构建点云

    高博的工作是对基本 ORB SLAM2 的扩展,基本思想是为每个关键帧构造相应的点云,然后依据从 ORB SLAM2 中获取的关键帧位置信息将所有的点云拼接起来,形成一个全局点云地图。 https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 具体的依赖包括: OpenCV (推荐 3.2 版本) DBoW2 和 g2o(源

    2024年02月05日
    浏览(60)
  • 【视觉SLAM】ORB-SLAM2S: A Fast ORB-SLAM2 System with Sparse Optical Flow Tracking

    Citations: Y. Diao, R. Cen, F. Xue.ORB-SLAM2S: A Fast ORB-SLAM2 System with Sparse Optical Flow Tracking[C].2021 13th International Conference on Advanced Computational Intelligence (ICACI). Wanzhou,China.2021:160-165. Keywords: Visualization,Simultaneous localization and mapping,Cameras,Real-time systems,Aircraft navigation,Central Processing Unit,Traje

    2023年04月08日
    浏览(67)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包