ubuntu16.04 ROS Kinetic+RGBDSLAM_v2安装运行

安装的ros版本若是“full”,则是自带opencv,无需自己重新安装,但是在系统中找不到这个opencv

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

1.建立工作空间

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

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

2.下载RGBD-SLAM

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

3.卸载g2o

如果之前安装过g2o则需要卸载,安装作者自己改动过的g2o.
删除g2o的头文件,位于/usr/local/include/g2o下.

sudo rm -r /usr/local/include/g2o

删除g2o的库文件,位于/usr/local/lib下.

sudo rm -r /usr/local/lib/libg2o*

删除g2o的可执行文件,位于/usr/local/bin下.

sudo rm -r /usr/local/bin/g2o*

4.安装g2o依赖项

sudo apt-get install libsuitesparse-dev

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

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

cd ~
wget http://bitbucket.org/eigen/eigen/get/3.2.10.tar.bz2

注:若上述方法行不通,可直接在CSDN下载压缩包,若压缩包下载需要积分可以在淘宝中找代替下载,并解压后命名为eigen.

6.下载g2o

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

7.配置g2o头文件

 gedit ~/robot_ws/src/g2o/CMakeLists.txt

将其中的第251行的

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

替换为:

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

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

8.编译g2o

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

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

9.下载PCL

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

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

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

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

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

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

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

11.编译并安装PCL

cd ~/pcl-pcl-1.8.0
mkdir build
cd build
cmake ../

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

make VERBOSE=1

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

sudo make install

12.配置RGBD-SLAM

cd ~/robot_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 ~/robot_ws/src/rgbdslam_v2/external/SiftGPU
sudo apt-get install libglew-dev
sudo apt-get install libdevil1c2 libdevil-dev
make

若执行第3条时出现下面错误,用下面指令解决。
ubuntu16.04 ROS Kinetic+RGBDSLAM_v2安装运行_第1张图片

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

14.建构rgbdslam

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

第六行加入:

add_compile_options(-std=c++11)

最低部加入:

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

编译:

cd ~/robot_ws
catkin_make

ubuntu16.04 ROS Kinetic+RGBDSLAM_v2安装运行_第2张图片

15.添加robot_ws工作空间到.bashrc文件下

$ echo "source ~/robot_ws/devel/setup.bash" >> ~/.bashrc$ 
source ~/.bashrc

16.测试数据集

下载数据集:

cd ~
mkdir bag-data
cd ~/bag-data
wget http://vision.in.tum.de/rgbd/dataset/freiburg1/rgbd_dataset_freiburg1_xyz.bag

修改 rgbdslam_v2 的 launch文件 rgbdslam.launch 中的 图像topic.

<param name="config/topic_image_mono"              value="/camera/rgb/image_color"/>
<param name="config/topic_image_depth"             value="/camera/depth/image"/>

打开一个终端:

$ roscore

打开一个终端:

roslaunch rgbdslam rgbdslam.launch

打开一个终端:

cd ~/bag-data
rosbag play rgbd_dataset_freiburg1_xyz.bag

ubuntu16.04 ROS Kinetic+RGBDSLAM_v2安装运行_第3张图片

你可能感兴趣的:(ROS)