ORB-SLAM3论文地址:https://arxiv.org/abs/2007.11898
代码地址:https://github.com/UZ-SLAMLab/ORB_SLAM3

一、安装库

根据ORB-SLAM3源代码安装以下库:
1、Pangolin
附上github网址:https://github.com/stevenlovegrove/Pangolin
根据github里面安装即可:

#安装依赖
sudo apt install libglew-dev
sudo apt install cmake
sudo apt install libpython2.7-dev
#可选依赖见github,我没装所以就不贴出来啦
#下载并编译
git clone https://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake ..
cmake --build .
#最后不要忘了安装
sudo make install

2、opencv3.2.0
下载官网opencv3.2.0安装包

#安装依赖
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
#再加上以下依赖,后面出错了,所以先加上
sudo apt-get install libgtk-3-dev
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
#进入文件夹编译安装
mkdir build
cd build
cmake -D ENABLE_PRECOMPILED_HEADERS=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
sudo make -j8
sudo make install

环境配置

sudo gedit /etc/ld.so.conf.d/opencv.conf        #添加库路径
#里面应该是
/usr/local/lib             #没有则加上
sudo gedit ~/.profile      #添加环境变量
#末尾加上
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH

2.1 出现错误及解决办法
(1)无法定位软件包 libjasper-dev

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

(2)出现错误

– Checking for module ‘gtk±3.0’
– No package ‘gtk±3.0’ found

#安装依赖
sudo apt-get install libgtk-3-dev

(3)出现错误

– No package ‘gstreamer-base-1.0’ found

#安装依赖
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

(4)出现错误

/usr/include/c++/7/cstdlib:75:15: fatal error: stdlib.h: 没有那个文件或目录
#include_next <stdlib.h>

#在cmake语句里加上
-D ENABLE_PRECOMPILED_HEADERS=OFF

3、ROS
根据ROS官网安装对应版本的ROS,本机安装的是ROS Melodic

#加链接和钥匙
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
sudo apt update
#安装完整版,其他的见官网
sudo apt install ros-melodic-desktop-full
#环境配置
echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc
安装依赖
sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
sudo apt install python-rosdep
sudo rosdep init
rosdep update

安装成功后,创建并初始化工作目录

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws/         #直接$ cd .. 也一样
catkin_make
#catkin的构建系统的相关文件保存在build目录中,构建后的可执行文件保存在devel目录中
#加载与catkin构建系统相关的环境文件
$ source ~/catkin_ws/devel/setup.bash

4、Eigen3
5、python2.7
6、DBoW2 and g2o(ORB-SLAM3文件中自带)

二、运行ORB-SLAM3

1、运行demo
依旧是根据github来
下载并编译ORB-SLAM3,将文件放入ROS工作空间的src文件夹中

#注意在ROS工作空间的src文件夹中下载,或者是下载完成后移入工作空间
git clone https://github.com/UZ-SLAMLab/ORB_SLAM3.git ORB_SLAM3
#编译
cd ORB_SLAM3
chmod +x build.sh
./build.sh

下载数据集,官网下载慢可用迅雷下载
ps.不使用ROS运行的下载ASL格式的,使用ROS运行的下载ROS bag

修改ORB-SLAM3/euroc_examples.sh文件中的数据集地址

#!/bin/bash
#pathDatasetEuroc='/Datasets/EuRoC' #Example, it is necesary to change it by the dataset path
pathDatasetEuroc='/home/yu/Datasets' #Example, it is necesary to change it by the dataset path

另外,数据集文件名需要修改为euroc_examples.sh文件中对应的名称

例如MH_01_easy修改为MH01

接下来,运行demo

./euroc_examples.sh

结果图

2、用Realsense D415相机运行
Ubuntu18.04安装RealsenseD415方法见另一篇博客。
编译ROS版

#添加环境变量
gedit ~/.bashrc
#加入以下内容,PATH改为自己的地址
#export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:PATH/ORB_SLAM3/Examples/ROS
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/yu/catkin_ws/src/ORB_SLAM3/Examples/ROS
#再加个这个吧
source ~/catkin_ws/devel/setup.bash
#编译
chmod +x build_ros.sh
./build_ros.sh

修改相应节点

> 打开 ORB_SLAM3/Examples/ROS/ORB_SLAM3/src/ros_rgbd.cc  文件
> 修改节点(绿色字体)
message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/camera/color/image_raw", 100);
message_filters::Subscriber<sensor_msgs::Image> depth_sub(nh, "camera/depth/image_rect_raw", 100);

相机标定后,修改ORB_SLAM3/Examples/ROS/ORB_SLAM3/Asus.yaml文件

#打开ROS
roscore
#打开相机
roslaunch realsense2_camera rs_rgbd.launch
#运行节点,注意修改命令中的地址
#使用还需要修改yaml文件,即修改相机的参数
rosrun ORB_SLAM3 RGBD /home/yu/catkin_ws/src/ORB_SLAM3/Vocabulary/ORBvoc.txt /home/yu/catkin_ws/src/ORB_SLAM3/Examples/ROS/ORB_SLAM3/Asus.yaml

结果图

定位丢失时,建立新地图并与原地图匹配,为绑架恢复问题提供了一个可行的开源解决方案。

Ubuntu18.04运行ORB-SLAM3(Demo+本地Realsense D415运行)相关推荐

  1. Ubuntu18.04+python3.6+pcl-1.8+opencv3+realsense D415环境搭建

    Ubuntu18.04+python3.6+pcl-1.8+opencv3+realsense D415环境搭建 说明:此篇文章是参考了几位博主,因为自己要用realsenseD415深度相机,并且使 ...

  2. Ubuntu18.04如何让桌面软件默认root权限运行?

    什么是gksu? 什么是gksu: Linxu中的gksu是系统中的su/sudo工具,如果安装了gksu,在终端中键入gksu会弹出一个对话框. 安装gksu: 在Ubuntu之前的版本中是继承gk ...

  3. 华硕ROG玩家国度安装Ubuntu20.04,安装过程一直卡着不动,以及快捷键不能用,不能调节键盘亮度等问题的解决办法,另附上安装Ubuntu18.04的方法

    华硕ROG玩家国度是一个游戏本,用的硬件都比较新,所以安装Ubuntu18.04.Ubuntu20.04.Ubuntu20.1基本上都会面临一些问题,包括驱动或者安装过程不能进行等问题. 我一共测试了 ...

  4. ubuntu18.04安装xmind思维导图 + 创建软件的快捷方式

    ubuntu18.04安装xmind思维导图 + .sh文件运行小知识 + 创建快捷方式 1. 下载linux版本的.zip压缩包 2. 运行sudo ./setup.sh 2.1 `.sh`文件相关 ...

  5. 安装RTAB-MAP,并用RealSense R200运行

    前言 RTAB-MAP(Real-Time Appearance-Based Mapping)是RGB-D SLAM中比较经典的一个方案.它实现了RGB-D SLAM中所有应该有的东西:基于特征的视觉 ...

  6. Ubuntu18.04 和 windows 10双系统 错误: `/EFI/Microsoft/Boot/bootmgfw.efi‘ not found

    问题描述: Ubuntu18.04 和 Windows 10 双系统,原本运行的都很正常,然后吧,突然有一天,选择Windows boot manager 时报错 ,错误: `/EFI/Microso ...

  7. 【CV实战】Ubuntu18.04源码编译安装opencv-3.4.X+测试demo

    之前在Windows上借助VS编译opencv,很轻松就能搞定,到Linux下踩了坑,Ubuntu下编译.卸掉重编.搞了几次,还把系统库给卸载掉了(sudo apt-get remove python ...

  8. 【点云语义分割】Ubuntu18.04+GTX1060 配置运行RangeNet++

    课题涉及到点云语义分割,最近配置运行了RangeNet++,复现过程中,GPU加速工具配置较为头疼,所以做一个全面的记录,包括一些编译报错和踩坑的总结,与大家分享(纯小白) 本文代码Github地址: ...

  9. Ubuntu18.04局域网共享文件夹,实现win7和Ubuntu本地访问

    Ubuntu18.04局域网共享文件夹,实现win7和Ubuntu本地访问 一个局域网下往往连接了十几台电脑,有时候电脑之间用U盘来回拷贝东西实在是太麻烦,尤其是Ubuntu系统没有较好的即时通讯工具 ...

最新文章

  1. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(配置点的形状、大小)实战
  2. 【数据科学系统学习】机器学习算法 # 西瓜书学习记录 [6] 朴素贝叶斯实践
  3. 【HTML5】标记文字
  4. 关于“让我们基于Node.js创建一个Web应用:记事本(三)”
  5. 项望烽:iOS App开发的那些事儿
  6. 如何实现少样本学习?先让神经网络get√视觉比较能力
  7. DataGirdView 常用操作
  8. 阿里云轻应用服务器 宝塔面板 mongodb 配置外网连接 其一 基础配置
  9. 使用spring的@autowired注解,无法实例化dao
  10. c语言中static 用法
  11. 科研小技巧——论文投稿视频制作指南
  12. canvas实现旋转缩放的方块
  13. 2022年世界最强与最弱的护照:日本和新加坡并列第一,德国和韩国并列第二,美国和英国排名回升 | 美通社头条...
  14. 【暖手练习】MATLAB习题
  15. @ds实现多数据源切换及解决事务失效问题
  16. 简单搭建一个属于自己的视频网站
  17. 激活函数(Activation Function)及十大常见激活函数
  18. WinCE 6.0 禁用触摸屏的几种方法
  19. dw选项卡怎么设置,dw表单中怎么设置方框里面打对勾
  20. matlab(1):使用matlab处理excel数据进行画图

热门文章

  1. 真值、机器数、原码、补码、反码详解(你想知道的全都有!)
  2. js文本内容显示6行,超出6行出现显示更多按钮,css样式超出行数只能使用...去替代
  3. 隔离日记~记录特别的日子
  4. 壳聚糖-聚乙二醇-N-羟基琥珀酰亚胺|Chitosan-PEG-NHS
  5. 光栅原理及其c语言仿真,取样光栅原理及MATLAB仿真.doc
  6. 记录开发内容demo-java支付宝支付
  7. 松鼠AI智适应教育首席科学家崔炜:个性化教学,我们将颠覆传统教育
  8. 【Markdown知识点总结】
  9. Prolog教程 16
  10. android管理工具,AnyDroid(电脑安卓手机管理工具)V7.3.0.20200910 正式版