RGBD-SLAM_v2 超详细安装加运行

妖精的绣舞 提交于 2019-12-27 15:23:19

主要参考链接

RGBD-SLAM_v2 github地址
环境配置英文教程(很详细)
CSDN其他教程

注意

需要环境ubuntu16.04 ROS Kinetic
ROS Kinetic安装教程
安装的ros版本若是“full”,则是自带opencv,无需自己重新安装,但是在系统中找不到这个opencv

建议在安装之前下载好数据集,PCL1.8,这两个下载非常慢
PCL下载地址
RGBDSLAM数据集下载(bag版本)

1.建立工作空间

这种操作类似于深度学习经常会做的建立虚拟环境,使得多个环境之间不互相影响

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

这里的文件夹随便自己如何建立,最好是全英文路径,~代表自己的路径,因此在复制代码时,注意将此改为自己的路径(下文所有出现的src均为工作空间文件夹下的src)。同时您也可以手动打开文件夹,在文件夹内运行终端,这样可以避免路径出错

2.下载RGBD-SLAM

cd ~/catkin_ws/src
git clone https://github.com/felixendres/rgbdslam_v2

3.卸载g2o

如果之前安装过g2o则需要卸载,安装作者自己改动过的g2o

dpkg -l | grep [Gg]2[Oo]
ls /usr/local/lib
ls /usr/lib | grep [Gg]2[Oo]

我因为是新装的系统,没有安装过g2o。没有验证此段指令的有效性

4.安装g2o依赖项

sudo apt-get install libsuitesparse-dev

5.下载并提取eigen 3.2.10头文件

eigen只包含头文件,没有要编译或链接的二进制lib

mkdir ~/src
cd ~/src
wget http://bitbucket.org/eigen/eigen/get/3.2.10.tar.bz2
mkdir eigen
tar -xvjf 3.2.10.tar.bz2 -C eigen --strip-components 1

此处应在文件夹catkin_ws下打开。即在catkin_ws文件夹下新建src文件夹,可手动查看是否建立成功

6.下载g2o

cd ~/src
git clone https://github.com/felixendres/g2o.git
cd ~/src/g2o
mkdir ~/src/g2o/build
cd ~/src/g2o/build

src在文件夹catkin_ws下,确认路径无误

7.配置g2o头文件

 gedit ~/src/g2o/CMakeLists.txt

将其中的第251行的

SET(G2O_EIGEN3_INCLUDE ${EIGEN3_INCLUDE_DIR} CACHE PATH "Directory of Eigen3")

替换为:

SET(G2O_EIGEN3_INCLUDE "<自己的路径>/src/eigen" CACHE PATH "Directory of Eigen3")

注意:将自己的路径替换上去

8.编译g2o

如果上一步出错,则编译将失败

cd ~/src/g2o/build
cmake ../
make
sudo make install

9.下载PCL

可以先下载好,直接拷贝进文件夹

cd ~/src
wget https://github.com/PointCloudLibrary/pcl/archive/pcl-1.8.0.tar.gz
tar -xvzf pcl-1.8.0.tar.gz

10.用C++ 2011支持配置PCL编译

我们需要用c++2011支持来编译pcl,因为我们将用c++2011支持来编译rdbgslam,如果不这样做,rgbdslam将在启动时出错。
默认安装在Ubuntu16.04上的PCL1.7库不支持c++2011编译。

cd ~/src/pcl-pcl-1.8.0
gedit CMakeLists.txt

将以下内容添加到CMakeLists.txt的第146行(在endif()之后):

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

11.编译并安装PCL

mkdir build
cd build
cmake ../

为了确认C++支持PCL,运行

make VERBOSE=1

如果编译结果中出现了"-stdc++11",那证明成功了,“-std=c++11"也可以。
如果没有出现,那么应该就是修改CMakeList时出了问题。使用crtl+C打断编译过程

12.配置RGBD-SLAM

cd ~/catkin_ws/src/rgbdslam_v2
gedit CMakeLists.txt

找到第79行

find_package(PCL 1.7 REQUIRED COMPONENTS common io)

修改为:

find_package(PCL 1.8 REQUIRED COMPONENTS common io)

13.构建siftgpu库(与rgbdslam绑定)

cd ~/catkin_ws/src/rgbdslam_v2/external/SiftGPU
sudo apt-get install libglew-dev
sudo apt-get install libdevil1c2 libdevil-dev
make

14.建构rgbdslam

cd ~/catkin_ws
gedit src/rgbdslam_v2/CMakeLists.txt

第六行加入:

add_compile_options(-std=c++11)

最低部加入:

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

运行:

catkin_make
make VERBOSE=1
make install

15.完成构建rgbdslam包并将启动文件复制

cp ~/catkin_ws/devel/lib/rgbdslam/rgbdslam ~/catkin_ws/install/share/rgbdslam/
mkdir ~/catkin_ws/install/share/rgbdslam/launch
cp ~/catkin_ws/src/rgbdslam_v2/launch/* ~/catkin_ws/install/share/rgbdslam/launch/
cp ~/catkin_ws/src/rgbdslam_v2/test/*.launch ~/catkin_ws/install/share/rgbdslam/launch/
cp -R ~/catkin_ws/src/rgbdslam_v2/rgbd_benchmark ~/catkin_ws/install/share/rgbdslam/

注意路径

16.添加rgbdslam_ws工作空间到.bashrc文件下

$ echo "source /home/XXXX/rgbdslam_ws/devel/setup.bash" >> ~/.bashrc$ 
source ~/.bashrc

XXXX修改为自己的路径

17.测试数据集

下载数据集:

cd ~/catkin_ws/src/rgbdslam_v2/test
wget http://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.bag

打开一个终端:

$ roscore

打开另外一个终端

roslaunch rgbdslam test_settings.launch bagfile_name:="/home/自己的路径/catkin_ws/src/rgbdslam_v2/test/rgbd_dataset_freiburg1_xyz.bag(自己的下的数据集名字)"

祝你成功在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!