1. 程式人生 > >RGBD-SLAM V2 indigo 版本的安裝

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.

安裝對應的驅動,一條條刷指令就行了,這差不多是rgbdslam v2編譯中碰到的各種高頻問題了,LZ很幸運都碰到了一遍^_^

最後附張圖吧,不然該說LZ瞎忽悠了半天

這裡寫圖片描述

還是有挺多缺點的,LZ本來是想orbslam進行自主壁障導航,但是如果直接把關鍵幀對應的點雲進行拼接,效果不是很好(高博有一版,會出現很多outliers),rgbdslam相對建圖方面還是比較準確的,有稠密地圖,但是如果使用sift話速度肯定是不行的,後續還有很多改進的空間O(∩_∩)O哈!