ubuntu 16.04 x64 ROS kinetic 安装ORB—SLAM

本文详细介绍了如何安装和配置ORB-SLAM系统,并解决了安装过程中遇到的问题,包括依赖库的选择与安装、源码修改等。此外还提供了测试数据集的下载与使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、g2o (included)
     We use g2o to perform several optimizations. We include a modified copy of the library including only the components we need and also some changes that are listed inThirdparty/g2o/Changes.txt. In order to compile g2o you will need to have installed CHOLMOD, BLAS, LAPACK and Eigen3.

    sudo apt-get install libsuitesparse-dev
    sudo apt-get install libblas-dev
    sudo apt-get install liblapack-dev

    注意:在安装eigen3这个库的时候请用下面这个版本:
    https://launchpad.net/ubuntu/trusty/amd64/libeigen3-dev/3.2.0-8  
    找到libeigen3-dev_3.2.0-8_all.deb这个deb下载下来,然后在下载的目录下:
        sudo dpkg -i libeigen3-dev_3.2.0-8_all.deb
    在编译ORB-slam这个包的时候会报错,这里是第一个坑

2、确定你安装了一下库和依赖 (boost, eigen3, cholmod, blas, lapack).
  2.0下载ORB的包 git clone https://github.com/raulmur/ORB_SLAM.git ORB_SLAM
  2.1添加系统路径:
    cd ~
    gedit .bashrc
    在.bashrc文件的最后一行加入:
    export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/robot3/ORB_SLAM-master(2.0中你的ORB的包文件路径)添加完毕,关闭.bashrc

    source .bashrc

注意:如果你直接将ORB—slam这个包放到ros打工作空间下,就不用2.1这一步了!!!

  2.2 Build g2o. Go into Thirdparty/g2o/ and execute:

    cd ORB_SLAM-master/Thirdparty/g2o/
    mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make

   2.3 Build DBoW2. Go into Thirdparty/DBoW2/ and execute:
    cd ORB_SLAM-master/Thirdparty/DBoW2/
    mkdir build
    cd build
    cmake .. -DCMAKE_BUILD_TYPE=Release
    make (如果未安装OpenCV,首先编译OpenCV)


    2.4 Build ORB_SLAM. In the ORB_SLAM root execute:
    
这里需要打开manifest.xml,然后注释掉对opencv2的依赖,注释完如下:
<package>
  <description brief="ORB_SLAM">

     ORB_SLAM

  </description>
  <author>Raul Mur-Artal</author>
  <license>GPLv3</license>
  <depend package="roscpp"/>
  <depend package="tf"/>
  <depend package="sensor_msgs"/>
  <!--depend package="OpenCV"-->
  <depend package="image_transport"/>
  <depend package="cv_bridge"/>


</package>
(这是第二个坑)

然后打开src/ORBextractor.cc这个文件,在开头添加#include <opencv2/opencv.hpp>,因为我的系统找不到下面两个opencv的头文件(这是第三个坑),下面正常编译就可以了:
                 
    cd ORB_SLAM-master/
    mkdir build
    cd build
    cmake .. -DROS_BUILD_TYPE=Release
    make

结果:
[  0%] Built target rospack_genmsg_libexe
[  0%] Built target rosbuild_precompile
Scanning dependencies of target ORB_SLAM-master
[  5%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/main.cc.o
[ 10%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Tracking.cc.o
[ 15%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/LocalMapping.cc.o
[ 21%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/LoopClosing.cc.o
[ 26%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/FramePublisher.cc.o
[ 31%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Converter.cc.o
[ 36%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/KeyFrame.cc.o
[ 42%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Optimizer.cc.o
[ 47%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/PnPsolver.cc.o
[ 52%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Frame.cc.o
[ 57%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/KeyFrameDatabase.cc.o
[ 63%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Sim3Solver.cc.o
[ 68%] Building CXX object CMakeFiles/ORB_SLAM-master.dir/src/Initializer.cc.o
[ 73%] Linking CXX executable ../bin/ORB_SLAM-master
[100%] Built target ORB_SLAM-master
说明OK了~~~

3.2 测试数据集准备

        http://webdiis.unizar.es/~raulmur/orbslam/downloads/Example.bag.tar.gz  

       上面的链接为测试数据集的下载链接,可以下下着,比较大了,会很慢。。

       下载完解压 得到Example.bag文件


<think>好的,我现在需要回答用户关于ORB-SLAM3兼容的Ubuntu版本的问题。首先,我应该回忆一下ORB-SLAM3的官方文档或者相关资料中提到的系统要求。记得ORB-SLAM3是一个比较新的SLAM框架,可能对Ubuntu的版本有特定要求。 首先,ORB-SLAM3通常依赖于ROS,而ROS本身有特定的Ubuntu版本对应关系。比如ROS Noetic对应Ubuntu 20.04ROS Melodic对应Ubuntu 18.04。所以用户可能需要安装ROS版本匹配的Ubuntu。不过ORB-SLAM3是否支持没有ROS的情况呢?可能需要查阅资料确认。 另外,ORB-SLAM3的依赖库如OpenCV、Eigen、Pangolin等,这些库的版本也可能影响Ubuntu版本的选择。比如OpenCV 4.x可能在较新的Ubuntu版本中更容易安装。根据官方文档,ORB-SLAM3推荐使用OpenCV 3.2以上,所以Ubuntu 18.04或更高版本可能更合适。 然后,我需要检查是否有社区用户报告在特定Ubuntu版本上的成功安装案例。比如,在GitHub issues或论坛中,可能有人提到在Ubuntu 20.04或22.04上成功编译运行ORB-SLAM3。但要注意,较新的Ubuntu版本可能会有依赖库的兼容性问题,需要调整。 可能还需要考虑CUDA的支持,如果用户使用GPU加速,那么Ubuntu版本需要与CUDA版本兼容。例如,CUDA 11.x支持Ubuntu 20.04和22.04,但可能需要特定的内核版本。 总结一下,官方推荐的可能最低是Ubuntu 16.04,但更建议18.04或20.04,因为这些版本有更好的社区支持和依赖库的可用性。同时,用户需要注意安装正确的ROS版本和相关依赖库的兼容性。</think>ORB-SLAM3官方推荐使用**Ubuntu 16.04、18.04或20.04**,具体兼容性取决于依赖库的版本匹配[^1]。以下是详细分析: 1. **Ubuntu 16.04**: - 支持ROS Kinetic(需手动安装) - 需安装OpenCV 3.2+、Eigen 3.3+和Pangolin 0.6+ - 可能需手动编译较新版本的依赖库 2. **Ubuntu 18.04(主流选择)**: - 原生支持ROS Melodic - 通过APT直接安装OpenCV 3.2、Eigen 3.3.4等 - 对CUDA 10/11兼容性较好 3. **Ubuntu 20.04+**: - 支持ROS Noetic(需调整部分依赖) - OpenCV默认升级到4.x,需注意ORB-SLAM3的兼容性补丁 - 安装命令示例: ```bash sudo apt install libopencv-dev libeigen3-dev libpangolin-dev ``` ```bash # 编译ORB-SLAM3的典型步骤 git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git cd ORB_SLAM3 && chmod +x build.sh ./build.sh ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值