ORB_SLAM2配置安装及测试

记录ORB_SLAM2配置安装过程
涉及opencv, Pangolin, Eigen3, ROS
对配置过程中遇到的问题,做了个简单总结,其中Pangolin在配置时,需要注意使用v0.5版本, 当前的v0.6版本在后续过程中会出现/usr/bin/ld: 找不到 -lEigen3::Eigen问题

文章目录

      • 1 准备
      • 2 Pangolin
        • 2.1 介绍
        • 2.2 安装(v0.5)
      • 3 安装Eigen3——开源线性库
      • 4 ROS
        • 4.1 ROS的安装
        • 4.2 问题参考
          • 4.2.1 报错无法下载 连接失败 [IP: 91.189.91.38 80] 有几个软件包无法下载
          • 4.2.2 若报错找不到命令rosdep,执行
          • 4.2.3 若执行sudo rosdep init时显示ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/m
          • 4.2.4 出现一个或多个timeout超时(玄学问题,早上成功率高,失败多试几次)
        • 4.3 测试ROS
      • 5 OpenCV
      • 6 ORB_SLAM2
        • 6.1 安装
        • 6.2 问题参考
          • 6.2.1 ORB_SLAM2/src/System.cc: error: ‘usleep’ was not declared in this scope usleep(5000);
          • 6.2.2 CMakeFiles/RGBD.dir/build.make:197: recipe for target ‘…/RGBD’ failed
          • 6.2.3 每次编译失败后记得删除build文件夹
          • 6.2.4 /usr/bin/ld: 找不到 -lEigen3::Eigen
        • 6.3 测试运行
          • 6.3.1成功界面

1 准备

  1. cmake
  2. gcc g++
  3. git
sudo apt-get install  cmake gcc g++ git

2 Pangolin

2.1 介绍

Pangolin是一个轻量、便携的管理OpenGl显示、交互和提取的视频输入的快速开发库。其核心是一个简单的OpenGl视口管理器,它能帮助模块化3D可视化,不增加复杂性,提供一个先进且直接的3D导航处理器。Pangolin也提供一个操作程序的机制,这个机制通过配置文件和UI集成,有一个灵活的实时绘图仪,用于可视图形图像数据。
穿山甲的宗旨是在不影响性能的前提下,减少通常用于可视化和与(典型的图像和3D的)系统交互的样板代码。它还允许在许多平台上编写一次代码,目前包括Windows、Linux、OSX、Android和IOS。
原文链接:
https://blog.csdn.net/baidu_38505667/article/details/108715627

2.2 安装(v0.5)

a.安装Pangolin 可视化和用户界面及其依赖项(逐行输入一行一回车)

sudo  apt-get  install  libglew-dev
sudo  apt-get  install  libboost-dev libboost-thread-dev 
sudo  apt-get  install  libboost-filesystem-dev
sudo  apt-get  install  libpython2.7-dev
sudo  apt-get  install  build-essential

b.从github下载pangolin(v0.5版本,否则后面会报错)

git  clone  https://github.com/stevenlovegrove/Pangolin.git
!不建议,会安装v0.6版本

或去https://github.com/stevenlovegrove/Pangolin下载zip压缩包解压(v0.5版本)

ORB_SLAM2配置安装及测试_第1张图片
c.解压后进入该文件

cd  Pangolin
mkdir  build
cd  build
cmake ..

d.camke完成后输入make,出现进度%

make

e.继续输入

sudo make install

3 安装Eigen3——开源线性库

sudo apt-get install libeigen3-dev

4 ROS

4.1 ROS的安装

在它的官方网站: http://wiki.ros.org/ROS/Installation 中有详细说明
参考链接:https://blog.csdn.net/Leslie___Cheung/article/details/109591426

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

若出现问题参考3.2.1

完成后进入下一步

sudo rosdep init

若报错参考3.2.2, 3.2.3

rosdep update

出现箭头那句话表示成功了,若有问题参考3.2.4
ORB_SLAM2配置安装及测试_第2张图片
安装rosinstall

sudo apt-get install python-rosinstall

加载环境设置文件

source /opt/ros/melodic/setup.bash

创建并初始化工作目录ROS使用一个名为catkin的ROS专用构建系统。为了使用它,用户需要创建并初始化catkin工作目录,如下所示。除非用户创建新的工作目录,否则此设置只需设置一次。

mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

使用catkin_make命令来构建

cd ~/catkin_ws/
catkin_make
```3.2.3
设置环境变量:

```bash
sudo apt install net-tools
gedit ~/.bashrc

在弹出的文本中最后末尾出添加下边两行代码:

source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash

完成后保存关闭,在终端输入:

source ~/.bashrc

4.2 问题参考

4.2.1 报错无法下载 连接失败 [IP: 91.189.91.38 80] 有几个软件包无法下载

a. 更换下载源(未验证)
b. 按提示进行操作

sudo apt-get update

sudo apt-get upgrade --fix-missing

c. 若无法解决(一般都解决不了),则手动下载(验证可行,就是有点麻烦)

在浏览器中尝试打开无法下载的这个deb链接,自动弹出了下载页面,如下图所示:ORB_SLAM2配置安装及测试_第3张图片
d. 进入下载文件所在目录
将下载文件移动到ubuntu apt-get下载文件存放的目录(即/var/cache/apt/archives)下

例:

sudo mv libflite1_2.1-release-3_amd64.deb /var/cache/apt/archives

再次执行安装命令

sudo apt install ros-melodic-desktop-full
4.2.2 若报错找不到命令rosdep,执行
sudo apt-get install python-rosdep
4.2.3 若执行sudo rosdep init时显示ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/m

需要解决GitHub的raw.githubusercontent.com无法连接问题,通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址
修改hosts Ubuntu,
ORB_SLAM2配置安装及测试_第4张图片

sudo vi /etc/hosts

添加以下内容保存即可(玄学问题,输下面这个就行,不用输4个)

185.199.110.133 raw.githubusercontent.com 

然后输入sudo rosdep init就可以了

$ rosdep update
4.2.4 出现一个或多个timeout超时(玄学问题,早上成功率高,失败多试几次)

更换网络科学上网可以解决

4.3 测试ROS

打开三个终端,在每个终端依次输入

roscore

ORB_SLAM2配置安装及测试_第5张图片
可能出现roscore命令not found问题
解决方案:
若没有安装包,输入

cd /opt/ros/melodic/bin
sudo apt-get install ros-melodic-desktop

成功后再重新输入roscore,若无问题,在另一个终端输入:

rosrun turtlesim turtlesim_node

ORB_SLAM2配置安装及测试_第6张图片在第三个终端输入:

rosrun turtlesim turtle_teleop_key

ORB_SLAM2配置安装及测试_第7张图片

5 OpenCV

参考链接:https://blog.csdn.net/weixin_44436677/article/details/105586820
源码文件链接: https://pan.baidu.com/s/1WGHyAklQnKMxZcPSAZ8I8g?pwd=4cyc 提取码: 4cyc

6 ORB_SLAM2

6.1 安装

进入ROS工作区的src文件夹

cd ~/catkin_ws/src/

执行下列命令下载安装ORB_SLAM2

git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2

进入ORB_SLAM2文件夹

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

ORB_SLAM2配置安装及测试_第8张图片在ROS环境下运行ORB_SLAM

chmod +x build_ros.sh
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:~/catkin_ws/src/ORB_SLAM2/Examples/ROS
./build_ros.sh

6.2 问题参考

6.2.1 ORB_SLAM2/src/System.cc: error: ‘usleep’ was not declared in this scope usleep(5000);

解决方案:
找到对应的System.cc文件的首部加入 头文件

#include


需要根据实际情况,提示哪个文件usleep有问题,就去加这个头文件。
需要增加unistd.h的文件还有:
Examples/Monocular/mono_euroc.cc
Examples/Monocular/mono_kitti.cc
Examples/Monocular/mono_tum.cc
Examples/RGB-D/rgbd_tum.cc
Examples/Stereo/stereo_euroc.cc
Examples/Stereo/stereo_kitti.cc
src/LocalMapping.cc
src/LoopClosing.cc
src/System.cc
src/Tracking.cc
src/Viewer.cc
Examples/ROS/ORB_SLAM2/src/AR/ViewerAR.cc

参考链接:https://blog.csdn.net/qq_15698613/article/details/98453592

6.2.2 CMakeFiles/RGBD.dir/build.make:197: recipe for target ‘…/RGBD’ failed

解决方案:
修改home/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/文件夹下的CMakeLists.txt文件。
在set(LIBS xxxxx 的后面加上下列这一句代码

-lboost_system

ORB_SLAM2配置安装及测试_第9张图片

6.2.3 每次编译失败后记得删除build文件夹

ORB_SLAM2配置安装及测试_第10张图片
解决方案:
删除build文件夹

6.2.4 /usr/bin/ld: 找不到 -lEigen3::Eigen

解决方案:
是Pangolin版本太高导致的,ORB-SLAM 2只支持v0.5版本的Pangolin。卸载之前安装的Pangolin库,安装v0.5版本的即可
ORB_SLAM2配置安装及测试_第11张图片

6.3 测试运行

从TUM Dataset下载数据集,链接如下:
Computer Vision Group - Dataset Download
选择fr1/xyz tgz
ORB_SLAM2配置安装及测试_第12张图片在ORB_SLAM2文件夹内新建data(名字随意)文件夹,用于存放数据集,将刚刚解压缩后的文件夹拷贝至data文件夹内
由于是RGBD数据集,还有深度信息,所以需要再另外下载一个associate.py文件,链接如下:
https://svncvpr.in.tum.de/cvpr-ros-pkg/trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_benchmark_tools/

下载好以后拷贝associate.py至ORB_SLAM2主文件夹内。在associate.py所在的目录执行:
(将RGB信息和深度信息链接到一起)

python associate.py data/rgbd_dataset_freiburg1_xyz/rgb.txt data/rgbd_dataset_freiburg1_xyz/depth.txt > data/rgbd_dataset_freiburg1_xyz/associations.txt

在这里插入图片描述然后执行:

./Examples/RGB-D/rgbd_tum ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM1.yaml data/rgbd_dataset_freiburg1_xyz data/rgbd_dataset_freiburg1_xyz/associations.txt
6.3.1成功界面

出现以下界面,说明ORB-SLAM 2安装成功

你可能感兴趣的:(笔记,slam)