Ubuntu20.04在ROS下运行ORB-SLAM3

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

目录

1.前言:

2.总体配置:

3.数据集

4.配置ORB-SLAM3

(1)添加环境变量

(2)修改文件

5.编译&运行

(1)检查环境

(2)编译

6.运行

7.部分报错

(1)功能包未找到

(2)AR路径下文件的错误

(3)Pangolin库错误

(4)缺少库


1.前言:

        小白配置ORB-SLAM3的过程真的辛酸。。各种各样的弄,跑出来一堆bug,很多还搜不出来到处找原因。之前也没有配置过其他视觉SLAM算法,从头开始的,以此记录一下。也希望对你配置ORB-SLAM3算法有所帮助,也作交流学习。

2.总体配置:

        源码链接:https://github.com/UZ-SLAMLab/ORB_SLAM3

       这个配置可是把我折腾了一番,很多配置都有限定的,这个一定要注意!(下面的配置可能和官网不一样,但是经过测试,肯定是可以使用的。)

        Pangolin-v0.6        链接为:https://github.com/stevenlovegrove/Pangolin/releases

        opencv-4.2.0        链接为:https://github.com/opencv/opencv/releases?page=3

        (Ubuntu20.04自带的opencv的版本就是4.2.0,如果使用的是Ubuntu20.04则不用更改)

        eigen-3.3.4        链接为:Eigen

        DBoW2、g2o和Sophus        这三个库在官方文件中就有给出,在Thirdparty文件夹中。

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

配置完毕后,可以分别使用下面命令进行编译,安装。

mkdir build
cd build
cmake ..
make -j8
sudo make install

        python安装

sudo apt install libpython2.7-dev

3.数据集

        博主测试的数据集为EuRoC数据集,链接为:kmavvisualinertialdatasets – ASL Datasets

        也可以使用百度网盘进行下载:

        链接: https://pan.baidu.com/s/1yJWnhsWvBbAZJXHRyrVLnw         提取码: e9rz

4.配置ORB-SLAM3

(1)添加环境变量

        下方命令记得修改为自己的地址

gedit ~/.bashrc
# 下方(PATH)为你自己的路径
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:(PATH)/ORB_SLAM3/Examples/ROS
# Ctrl+c保存,退出。
# 在当前终端输入
source ~/.bashrc

(2)修改文件

        配置路径基本上都在为(PATH)/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3或者在(PATH)/Thirdparty中(PATH为自己的路径,需要修改)。这个配置比较麻烦,我参考的链接为:Ubuntu20.04的ROS环境安装ORB-SLAM3详解_下载orbslam3是要在ros的工作空间下载吗-CSDN博客        按照上面的配置方法配置完毕后, 编译依旧会报错。。这个时候简直头皮发麻,不是一个很成熟的东西吗,怎么配置起来这么麻烦。。这个时候建议大家,深吸一口气告诉自己:今天天气真不错,等会一定一定要好好吃一顿

        相信大家缓过来一点了。那么继续吧。。。

        除了上面那些配置,在(PATH)/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/CMakeLists.txt中的第2行添加

project(ORB_SLAM3)

        接下来是在(PATH)/ORB_SLAM3/Examples_old/ROS/ORB_SLAM3/src/AR下的ros_mono_ar.cc中的

第405行    vPoints.push_back(pMP->GetWorldPos());

替换为:        vPoints.push_back(ORB_SLAM3::Converter::toCvMat(pMP->GetWorldPos()));

第530行    cv::Mat Xw = pMP->GetWorldPos();

替换为:        cv::Mat Xw = ORB_SLAM3::Converter::toCvMat(pMP->GetWorldPos());

        换一个文件,文件为:ViewerAR.cc

第151行        cv::Mat Tcw = mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec());

替换为:        cv::Mat Tcw=ORB_SLAM3::Converter::toCvMat(mpSLAM->TrackMonocular(cv_ptr->image,cv_ptr->header.stamp.toSec()).matrix());

5.编译&运行

        终于终于终于到编译啦,但是不要松懈哦,编译的问题可能会非常非常多。

(1)检查环境

        在编译之前,将Examples_old文件夹下的ROS文件夹整个复制到Examples路径下。然后可以输入以下命令,检查当前是否处于该环境下:

echo ${ROS_PACKAGE_PATH}

        经常使用Ubuntu的小伙伴,这个命令可能会报一长串结果。我们只需要看最后是不是PATH/ORB_SLAM3/Examples/ROS即可,如下:

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

         如果不正确的话,可以参照(1)添加环境变量中进行配置。

(2)解压部分文件

        啥?还要解压?没错,确实有个地方放的是压缩包,需要解压一下。目录路径为:(PATH)/ORB_SLAM3/Vocabulary中的ORBvoc.txt.tar.gz

(3)编译

        在编译前,还需要运行下面命令:(注意:博主在编译前更改了ORB-SLAM3节点收到的话题名称,如果不想修改则在播放ROS包的时候将话题重映射一下。

cd (PATH)/ORB_SLAM3 # 修改成自己的路径
chmod +x build_ros.sh
./build_ros.sh

        编译完成后,在(PATH)/ORB_SLAM3/Examples/ROS/ORB_SLAM3会产生一系列文件,如下:

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

6.运行

         博主使用EuRoC数据集分别跑了Monocular(单目)视觉算法和Monocular-Inertial(单目+IMU)视觉算法。使用的命令分别如下:

单目:

rosrun ORB_SLAM3 Mono Vocabulary/ORBvoc.txt Examples/Stereo-Inertial/EuRoC.yaml true

运行结果:

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

单目+IMU:

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

运行结果:

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

7.部分报错

(1)功能包未找到

        如:  'ORB_SLAM3' not found

        原因:多方面原因造成的。建议仔细按照上述来进行配置,编译完成后,在.../ROS/ORB-SLAM3路径下会生成一系列文件,如下:

ubuntu20.04运行orbslam3 ros,计算机视觉,opencv,自动驾驶,人工智能

(2)AR路径下文件的错误

        如:error: no matching function for call to ‘std::vectorcv::Mat::push_back(Eigen::Vector3f)’

error: conversion from ‘Eigen::Vector3f’ {aka ‘Eigen::Matrix<float, 3, 1>’} to non-scalar type ‘cv::Mat’ requested

error: conversion from ‘Sophus::SE3f’ {aka ‘Sophus::SE3’} to non-scalar type ‘cv::Mat’ requested

        原因:未配置正确,建议参照(2)修改文件中来进行修改。

(3)Pangolin库错误

        如:在运行后报错:terminate called after throwing an instance of 'pangolin::FactoryRegistry::NoMatchingSchemeException'

        原因:Pangolin版本不正确,可能是安装最新版的Pangolin造成的。

(4)缺少库

        如:Failed to load module "canberra-gtk-module"

        原因:未安装库。运行下面命令:

sudo apt-get install libcanberra-gtk-module

(5)ldconfig错误

        如:error while loading shared libraries: libpango_windowing.so: cannot open shared object file: No such file or directory

        原因:在安装完Pangolin之后,需要运行一下以下命令文章来源地址https://www.toymoban.com/news/detail-840047.html

sudo ldconfig

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

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

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

相关文章

  • Ubuntu20.04 + Docker + ORB-SLAM2

            原生的Docker并不直接支持可视化,需使用x11进行可视化。         OpenCV编译会报ippicv错误,前往链接下载ippicv_2020_lnx_intel64_20191018_general.tgz文件,将其放入3rdparty文件夹,参考文章进行修改,重新压缩文件。         编译完成 --gpus all :使用 NVIDIA GPU 支持。这

    2024年02月20日
    浏览(66)
  • Ubuntu20.04配置YOLOV5算法相关环境,并运行融合YOLOV5的ORB-SLAM2开源代码(亲测有效)

              这篇博客介绍的是如何在Ubuntu系统下配置YOLOV5算法环境。并且运行一个融合YOLOV5的ORB-SLAM2开源代码。         安装的软件主要是anaconda,然后anaconda可以帮我们安装python、pytorch这些东西。我的ubuntu版本:ubuntu20.04.5LTS。 安装的anaconda类型: Anaconda3-2022.05 安装的p

    2024年02月02日
    浏览(49)
  • ORB_SLAM2配置——基于Ubuntu20.04+ROS+gazebo仿真

    一、引言 ORB-SLAM2,它是基于单目、双目或RGB-D相机的一个完整的SLAM系统,其中包括地图重用、回环检测和重定位功能。这个系统可以适用于多种环境,无论是室内小型手持设备,还是工厂环境中飞行的无人机和城市中行驶的车辆,其都可以在标准CPU上实时运行。该系统的后端

    2023年04月13日
    浏览(48)
  • 记录:ubuntu20.04+ORB_SLAM2_with_pointcloud_map+ROS noetic

    由于相机实时在线运行需要ROS,但Ubuntu22.04只支持ROS2,于是重装Ubuntu20.04。 上一篇文章跑通的是官方版本的ORB_SLAM2,不支持点云显示。高翔修改版本支持RGB-D相机的点云显示功能。 高翔修改版本ORB_SLAM2:https://github.com/gaoxiang12/ORBSLAM2_with_pointcloud_map 环境:ubunntu20.04、opencv3.4.

    2024年02月11日
    浏览(56)
  • 【ORB_SLAM】Ubuntu20.04 配置ORB_SLAM3

    本文主要记录基于Ubuntu20.04环境下,对普通的ORB_SLAM3和稠密版本的ORB_SLAM3进行环境的配置。 这里采用鱼香ros的一键安装,感谢小鱼的一键安装。 Pangolin:链接: https://pan.baidu.com/s/1FXYLsEK1W3xmX0m_Vqylag 提取码: jgz2 (基于小六的注释后的ORB_SLAM3代码) https://github.com/electech6/ORB_SLAM3_d

    2024年02月15日
    浏览(56)
  • 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日
    浏览(51)
  • 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详细安装教程(ubuntu18.04)

    paper: https://arxiv.org/pdf/1610.06475.pdf githup: :https://github.com/raulmur/ORB_SLAM2 提示:ORB-SLAM2源码作者推荐在Ubuntu 12.04, 14.04 和16.04上安装运行。 最近在ubuntu18.04上配置ORB-SLAM2运行环境时踩了很多坑,在这期间查阅了很多资料和博客,于是想对安装过程进行总结,方便自己反复查阅以及分享经

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

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

    2024年02月14日
    浏览(47)
  • 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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包