Ubuntu16.04下 ORB_SLAM2的安装与配置
文章目录
一、 ORB_SLAM2的安装与配置
1、相关基础应用安装
(1)更新apt库,更新软件列表
sudo apt-get update
(2)安装git,用于从Github上克隆项目到本地
sudo apt-get install git
(3)安装cmake,用于程序的编译
sudo apt-get install cmake
(4)安装gcc、g++
sudo apt-get install g++
sudo apt-get install gcc
2、Pangolin安装
(1)安装依赖项
sudo apt-get install libglew-dev libpython2.7-dev
(2)项目下载
git clone https://github.com/stevenlovegrove/Pangolin.git
下载成功出现如下界面
(3)编译
cd Pangolin
mkdir build
cd build
cmake ..
make -j
sudo make install
正常情况下,在输入cd Pangolin并执行之后,会自动执行下面几个命令。
3、安装OpenCV
(1)安装相关依赖项
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
(2)将windows上下载好的opencv-3.4.1解压后复制到linux中
(3)编译安装opencv
cd ~/opencv-3.4.1
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release –D CMAKE_INSTALL_PREFIX=/usr/local ..
采用8线程编译,速度更快,如果计算机不允许,也可以采用4线程编译
make -j8
编译成功
执行命令
sudo make install
(4)配置opencv环境
打开opencv.conf文件
sudo gedit /etc/ld.so.conf.d/opencv.conf
在空白文件中添加:
/usr/local/lib
如图所示:
(5)保存后关闭文件,回到终端执行以下命令,使修改后的文件生效
sudo ldconfig
(6)配置bash文件
sudo gedit /etc/bash.bashrc
在bash文件末尾添加:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
(7)执行命令,使修改文件生效
source /etc/bash.bashrc
4、安装Eigen3
执行以下命令,安装Eigen3
sudo apt-get install libeigen3-dev
5、安装ORB_SLAM
(1)下载克隆仓库
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
(2)编译ORB-SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
(3)因为我们的ORB_SLAM需要在ROS下运行,所以需要将ORB_SLAM2保存到自己的ROS工作空间下,我的为catkin_ws/src(这一步直接复制相关文件夹)
(4)编辑 .bashrc文件,添加我们的ROS工作空间下ORB_SLAM2路径到文件末尾
首先,执行命令
sudo gedit ~/.bashrc
在打开的.bashrc文件末尾添加自己的ORB_SLAM2/Examples/ROS文件路径:(我的为:/home/luxiaolu/catkin_ws/src/ORB_SLAM2/Examples/ROS)
export SVGA_VGPU10=0
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/luxiaolu/catkin_ws/src/ORB_SLAM2/Examples/ROS
(5)执行命令,使修改后的文件生效
source ./catkin_ws/devel/setup.sh
source ~/.bashrc
(6)执行命令
cd catkin_ws/src/ORB_SLAM2
chmod +x build_ros.sh
./build_ros.sh
命令执行时间较长,可能会遇到一下问题:
解决办法:修改cmakwlists.txt文件(在文件相应位置,添加 箭头指向的内容)
(7)再次运行
chmod +x build_ros.sh
./build_ros.sh
6、运行单目SLAM实例
(1)下载数据集到相应文件夹中,我的路径是/home/luxiaolu/rgbd_dataset_freiburg1_xyz
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml /home/luxiaolu/rgbd_dataset_freiburg1_xyz
出现如下图示,则单目SLAM实例运行成功:
二、USB_cam安装
1、下载usb_cam源码并配置环境
(1)从github下载源码到相应文件目录下(我下载在 catkin_ws/src目录下):
cd catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
(2)回到 catkin_ws目录下,执行 命令编译功能包:
ctakin_make
source ./devel/setup.bash
2、编译usb_cam
(1)执行命令
cd usb_cam
mkdir build
cd build
cmake ..
(2)执行make命令
make
出现如下界面
3、摄像头调用
(1)打开新终端,运行ros
roscore
(2)回到之前的终端中,运行launch夹下usb_cam中的launch文件
cd ..
cd launch
roslaunch usb_cam usb_cam-test.launch
可以看到摄像头实时画面则安装运行成功,然后可以关闭所有终端,进行下一步ORB_SLAM2实时运行部分。
三、ORB_SLAM2实时运行
(1)终端运行ros,执行命令
roscore
(2)进入launch/usb_cam文件夹,启动usb_cam节点
roslaunch usb_cam usb_cam-test.launch
(3)修改ros_mono.cc中文件内容
在自己的ORB_SLAM2/Examples/ROS/ORB_SLAM2/src文件夹下找到ros_mono.cc文件(我的在/home/luxiaolu/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src文件夹下)
打开文件修改如图红色部分内容如下:
(4)进入到~/catkin_ws/src/ORB_SLAM2目录下,重新编译,使我们的修改生效
./build_ros.sh
编译成功后,执行下一步操作
3、调用摄像头,进行实时单目运行
(1)运行以下命令
rosrun ORB_SLAM2 Mono Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml