RGBD-SLAM V2 indigo 版本的安装

LZ的系统是Ubuntu4.04+indigo+Kinect v1.

首先RGBD-SLAM需要很多的依赖项,如下:
RGBDSLAMv2 is based on the open source projects, ROS, OpenCV, OpenGL, PCL, OctoMap, SiftGPU, g2o, and more

这里LZ假设ros已经成功安装了,下面创建新的工作空间,LZ因为已经创建过了,为了便于管理没有创建新的工作空间,小伙伴们各取所需

#Prepare Workspace
source /opt/ros/indigo/setup.bash
mkdir -p ~/rgbdslam_catkin_ws/src
cd ~/rgbdslam_catkin_ws/src
catkin_init_workspace
cd ~/rgbdslam_catkin_ws/
catkin_make
source devel/setup.bash

#Get RGBDSLAM
cd ~/rgbdslam_catkin_ws/src
wget -q http://github.com/felixendres/rgbdslam_v2/archive/indigo.zip
unzip -q indigo.zip
cd ~/rgbdslam_catkin_ws/

#Install
rosdep update
rosdep install rgbdslam
catkin_make 

这个是README.md里面直接copy过来的,也是最理想的情况,但是现实是

ERROR!
一、关于-lsiftgpu的问题

/usr/bin/ld: 找不到 -lsiftgpu
collect2: error: ld returned 1 exit status
make[2]: *** [/home/ros/Downloads/catkin_ws/devel/lib/rgbdslam/rgbdslam] 错误 1
make[1]: *** [rgbdslam_v2/CMakeFiles/rgbdslam.dir/all] 错误 2
make: *** [all] 错误 2
Invoking "make -j4 -l4" failed

首先会碰到找不到-lsiftgpu这个问题。笔记本上LZ编译过两次rgbdslam,一次顺利通过,一次卡在这个问题上。

解决方案
在下载的rgbdslam的external中有对应的SiftGPU这个,直接按照正常软件安装步骤

mkdir build
cd build
cmake ..
make

然后在进行编译就行了

二、关于g2o的问题

由于系统中会进行图优化,使用的是G2O,网上也充斥着各种版本的G2O,如果版本不正确很容易出现undeference的错误,各种未定义

解决方案:卸载原有g2o,
执行命令

sudo apt-get install ros-indigo-libg2o

一步到位!

三、OpenCV版本的问题
会报cv::vector之类的问题

代码中使用的都是OpenCV2版本的接口, LZ有两个版本的OpenCV,所以修改CMAKELists.txt

set(OPENCV_DIR /usr/share/OpenCV)
#or set it directly here, e.g.
#set(OpenCV_DIR /home/endres/ros_indigo/opencv2/build/)
#Then activate the following definition
#add_definitions(-DCV_NONFREE)

IF (NOT "${OpenCV_DIR}" EQUAL "")
    MESSAGE("Using OpenCV from " ${OpenCV_DIR})
ENDIF (NOT "${OpenCV_DIR}" EQUAL "")

find_package(OpenCV 2.4 REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBRARY_DIRS})

最后编译通过了运行

 roslaunch rgbdslam openni+rgbdslam.launch 

还是会报错,要安装

    sudo apt-get install ros-indigo-openni-camera  
    sudo apt-get install ros-indigo-openni-launch  

再次运行,又会出现:

 No devices connected.... waiting for devices to be connected.

这个请参考
https://blog.csdn.net/felaim/article/details/79579973

安装对应的驱动,一条条刷指令就行了,这差不多是rgbdslam v2编译中碰到的各种高频问题了,LZ很幸运都碰到了一遍^_^

最后附张图吧,不然该说LZ瞎忽悠了半天

这里写图片描述

还是有挺多缺点的,LZ本来是想orbslam进行自主壁障导航,但是如果直接把关键帧对应的点云进行拼接,效果不是很好(高博有一版,会出现很多outliers),rgbdslam相对建图方面还是比较准确的,有稠密地图,但是如果使用sift话速度肯定是不行的,后续还有很多改进的空间O(∩_∩)O哈!

猜你喜欢

转载自blog.csdn.net/felaim/article/details/80657995
今日推荐