orb_slam从零开始保姆级环境安装配置教程

orb_slam从零开始保姆级环境安装配置教程:

       为了学习slam搜了很多的环境安装教程,但是作为初学者,在环境配置上稍有不注意就会安装失败。

感觉为小白入门学习造成了一个不小的麻烦。因此写下这篇博客,一方面帮助更多人安装配置slam环境,另一方面

做个记录为以后的查阅更加方便的找到方法。

一、虚拟机安装ubuntu:

    网上安装的方法较多:https://blog.csdn.net/m0_57146086/article/details/121963736

    清华源ubuntu的ISO镜像文件下载:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/

    我这里选择下载了ubuntu18.4了,安装过程参照上面链接。

 

 

安装好以后设置了root密码:

sudo passwd root

安装VM_tool:

   https://raksmart.idcspy.com/6171 

二、ubuntu内基础环境安装:

(1)更新软件源:

  sudo apt update

(2)安装git,用于从GitHub上克隆项目包到本地:

  sudo apt-get install git

(3)安装Cmake用于程序的编译:(可以执行下面命令安装最新版本Cmake,也可以安装历史版本)

   1.终端命令安装:(二选一)

  sudo apt-get install cmake

   2.安装包下载安装:

  安装Cmake时,要是担心版本太高出现编译问题(opencv):

  我下载安装Cmake 3.10.0 ,历史版本也可在上级目录查找:

   https://cmake.org/files/v3.10/  

 

  

 

    参照安装教程:  https://www.cnblogs.com/lihw-study/p/15661675.html

   解压完后创建软链接:

 

sudo ln -sf /opt/cmake-3.20.0/bin/* /usr/bin/

 

 

 

(4)安装gcc,g++:

  sudo apt-get install gcc g++

三、安装Pangolin,作为可视化和用户界面

(1)安装依赖项:

sudo apt-get install libglew-dev
 
sudo apt-get install libpython2.7-dev

 (2)从Ubuntu将项目下载到本地,下载安装Pangolin:(可能会有点慢,如果因为网不太好断开了,再重新执行一次下列命令即可)

git clone https://github.com/stevenlovegrove/Pangolin.git

   也可以自己在github上下载安装包后解压安装:https://github.com/stevenlovegrove/Pangolin.git

(3)编译安装:

 

 使用下列命令来安装eigen:

 

sudo apt-get install libeigen3-dev

 

 进入Pangolin文件夹:   

cd Pangolin

  创建编译文件夹,命名为build:

mkdir build

 

进入文件夹进行配置:

cd build
 
cmake ..
 
(注意cmake 与..之间有一个空格)
 
sudo make
 
(可以用 "make -j "命令速度会稍快一些,但如果电脑性能不佳,还是使用make命令较好)
 
sudo make install

 

四、安装OpenCV,用于处理图像和特征

(1)下载OpenCV 3.4.7的Sources版:

      http://opencv.org/releases.html

(2)解压:

unzip opencv-3.4.1.zip

 

(3)进入opencv文件夹下,安装依赖库和cmake ,如果提醒需要apt-get update,

         那就先sudo su进入root权限,再sudo apt-get update,然后在执行下面命令

 

 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 libtiff5-dev libdc1394-22-dev
(处理图像所需的包)
 sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
 sudo apt-get install libxvidcore-dev libx264-dev
(处理视频所需的包)
 sudo apt-get install libatlas-base-dev gfortran
(优化opencv功能)

 

(4)编译安装:

cd opencv-3.4.1
 
mkdir build
 
cd build
 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
 
(在中间会下载个东西,稍等一下就ok,没什么问题)
 
(如果已经在新的文件夹中编译,但是还会出现之前的报错,把cmakecache.txt删了再编译就可)
 
sudo make
 
(漫长的编译过程)
 
sudo make install

 make过程中可能会出现:fatal error: Eigen/Core: No such file or directory

  已经安装,但当调用 eigen 库时,报错:fatal error: Eigen/Core: No such file or directory

  这是因为 eigen 库默认安装在了 /usr/include/eigen3/Eigen 路径下,需使用下面命令映射到 /usr/include 路径下

sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen

(5)配置环境,添加路径

 

  sudo make install 执行完毕后OpenCV编译过程就结束了,接下来就需要配置一些OpenCV的编译环境首先将   OpenCV的库添加到路径,从而可以让系统找到:

 sudo gedit /etc/ld.so.conf.d/opencv.conf

 

 执行此命令后打开的可能是一个空白的文件,不用管,只需要在文件末尾添加:

 /usr/local/lib

 如下图所示,点击保存即可

 

 

 执行如下命令使得刚才的配置路径生效:

 

sudo ldconfig 

 

配置bash:

 

sudo gedit /etc/bash.bashrc

 

在最末尾添加:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH 

如下图所示,点击保存即可:

 

 

 保存,执行如下命令使得配置生效:

 

source /etc/bash.bashrc  

 

更新:

 

sudo updatedb

 

(6)安装完成,测试一下

 

至此所有的配置都已经完成,下面用一个小程序测试一下

 

找到,cd到opencv-3.4.1/samples/cpp/example_cmake目录下
我们可以看到这个目录里官方已经给出了一个cmake的example我们可以拿来测试下
按顺序执行:

 

cd opencv-3.4.1/samples/cpp/example_cmake
 
cmake .
 
make
 
./opencv_example

 

即可看到打开了摄像头,在左上角有一个hello opencv

五、安装Eigen3

使用下列命令来安装eigen:

 

 

sudo apt-get install libeigen3-dev

 

六、安装ORB_SLAM2

 

执行下列命令下载安装ORB_SLAM2:

 

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

编译ORB_SLAM2和第三方库DBoW2和g2o:

进入ORB_SLAM2文件夹:

cd ORB_SLAM2

给build.sh文件权限:

 

chmod +x build.sh

 

编译build.sh文件:

 

./build.sh

 

如果编译之后出现报错问题1 ,如下:

ORB_SLAM2/src/System.cc: error: ‘usleep’ was not declared in this scope usleep(5000);
解决方案:
找到对应的System.cc文件的首部加入 头文件:

#include<unistd.h>

需要根据实际情况,提示哪个文件usleep有问题,就去加这个头文件,即可解决问题。

(2)如果是被杀死进程,报告debug错误啥的,再build一遍就可以了。完成后如图所示:

(build.sh文件中make过了就可以跳过以下make)报错解决之后,最后,执行下列指令:

make

(编译过程可能会有点慢,耐心等待哦。这里也可以使用make -j、make -j4、make -j8等命令速度会稍快一些,-j 后的的数字代表线程。但如果电脑性能不佳,可以把build.sh文件和build_ros.sh文件中的最后一句命令make -j 改为make)

至此,ORB_SLAM2已经安装好啦。

七、运行单目SLAM实例

 

编译完成后会在ORB_SLAM2/Examples文件夹下生成各种可执行文件。这里以单目情况为例,展示如何运行ORB_SLAM2程序。
(1)下载数据集
这部分在github上也有详细描述,包括单目相机(Monocular)、双目相机(Stereo)、RGB-D(RGB-D)相机,包括TUM数据集、KITTI数据集和EuRoC数据集,本人运行的是单目的TUM数据集,具体操作如下:
1、下载数据集,地址:https://vision.in.tum.de/data/datasets/rgbd-dataset/download

rgbd_dataset_freiburg1_desk

2、将下载好的数据集放在home文件夹下,打开终端,运行下面命令:

 

cd ORB_SLAM2

./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/yuan/data_set/slam/rgbd_dataset_freiburg1_desk

 

(home/用户名/MH05/按照自己数据集的路径修改,建议把包放在home下)

用户名写你的客户机名称,如果EuRoC文件夹在别的路径下,更改即可,如果下载的是其他数据包,对应更改末尾的MH05.txt,出现任何问题基本都是路径问题,仔细检查路径。

运行中的状态,结束后窗口自动关闭,并在终端显示这一行:

这是将运行后的数据存在这个文件中,后续用EVO评测时,会用其与真实值作对比。

至此,ORB-SLAM2配置完成。

 

八、错误相关

安装pangolin后,在slam中编译时出现如下错误:

 

terminate called after throwing an instance of 'std::runtime_error'
what():  Pangolin X11: Unable to retrieve framebuffer options

 

解决:将源码目录Pangolin\src\display\device下的display_x11.cpp文件做如下修改,注释下面的两行代码即可。

 

staticint visual_attribs[] = 
{ 
    GLX_X_RENDERABLE , True, 
    GLX_DRAWABLE_TYPE , GLX_WINDOW_BIT, 
    GLX_RENDER_TYPE , GLX_RGBA_BIT, 
    GLX_X_VISUAL_TYPE , GLX_TRUE_COLOR, 
    GLX_RED_SIZE , 8, 
    GLX_GREEN_SIZE, 8, 
    GLX_BLUE_SIZE, 8, 
    GLX_ALPHA_SIZE, 8, 
    GLX_DEPTH_SIZE, 24, 
    GLX_STENCIL_SIZE, 8, 
    GLX_DOUBLEBUFFER , glx_doublebuffer ? True : False, 
    //注释这一行GLX_SAMPLE_BUFFERS , glx_sample_buffers, 
    //注释这一行 GLX_SAMPLES , glx_sample_buffers > 0 ? glx_samples : 0, 
    None 
};

 

 

本文参考链接 https://blog.csdn.net/weixin_51134241/article/details/117919080

posted @ 2022-05-11 21:30  量子与太极  阅读(283)  评论(0编辑  收藏  举报