環境:Ubuntu 14.04 + ROS Indigo
LSD-SLAM 安裝網址:https://github.com/tum-vision/lsd_slam
數據集:http://vision.in.tum.de/research/vslam/lsdslam?redirect=1
ROS Indigo 安裝請參照:http://wiki.ros.org/cn/indigo/Installation/Ubuntu
前言:如果是初次安裝Ubuntu並準備作爲長期編程平臺
建議安裝順序爲 OpenCV依賴包-》Nvidia驅動(可選)-》OpenCV-》ROS
否則容易出現libqt4相關軟件包的依賴問題
一. 安裝並配置好 ROS Indigo(建議使用ROS官網推薦安裝教程)
二. 安裝uvc_camera (可選,適用於需要USB攝像頭且沒有安裝過ROS攝像驅動的情況)
此節來自http://blog.csdn.net/sonictl/article/details/48053597,感謝sonictl
$ sudo apt-get install ros-indigo-uvc-camera
或者使用catkin,工作空間構建請參考ROS官網相關教程
$ cd ~/catkin_ws/src
$ git clone https://github.com/ktossell/camera_umd
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
開啓三個終端:
第一個啓動ROS服務:
$ roscore
第二個啓動驅動:$ rosrun uvc_camera uvc_camera_node device:=/dev/video0
第三個啓動視頻窗口:$ rosrun image_view image_view image:=/image_raw
如果正常顯示攝像頭視頻即成功
三. 安裝並運行LSD-SLAM
1. 如果沒有rosbuild並且打算使用rosbuild空間的話,執行下列代碼
sudo apt-get install python-rosinstall
mkdir ~/rosbuild_ws
cd ~/rosbuild_ws
rosws init . /opt/ros/indigo
mkdir package_dir
rosws set ~/rosbuild_ws/package_dir -t .
echo "source ~/rosbuild_ws/setup.bash" >> ~/.bashrc
bash
cd package_dir
2. 安裝依賴包
sudo apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev libx11-dev
3. 在你的ROS package path,git clone或者下載LSD-SLAM,LSD-SLAM 安裝網址:https://github.com/tum-vision/lsd_slam
git clone https://github.com/tum-vision/lsd_slam.git lsd_slam
4. 如果你需要openFabMap去閉環檢測的話(可選)
在
lsd_slam_core/CMakeLists.txt
中去掉下列四行註釋即可#add_subdirectory(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap)
#include_directories(${PROJECT_SOURCE_DIR}/thirdparty/openFabMap/include)
#add_definitions("-DHAVE_FABMAP")
#set(FABMAP_LIB openFABMAP )
需要注意openFabMap需要OpenCv nonfree模塊支持,OpenCV3.0以上已經不包含,作者推薦2.4.8版本
其中nonfree模塊可以由以下方式安裝
$ sudo add-apt-repository --yes ppa:xqms/opencv-nonfree
$ sudo apt-get update
$ sudo apt-get install libopencv-nonfree-dev
5. 編譯LSD-SLAM
$ rosmake lsd_slam
6. 運行LSD-SLAM
開啓四個終端窗口
第一個啓動ROS服務:
$ roscore
第二個啓動攝像服務(USB攝像模式):
$ rosrun uvc_camera uvc_camera_node device:=/dev/video0
第三個啓動LSD-viewer查看點雲:
$ rosrun lsd_slam_viewer viewer
第四個啓動LSD-core:
(1)數據集模式
$ rosrun lsd_slam_core dataset_slam _files:=<files> _hz:=<hz> _calib:=<calibration_file>
_files填數據集png包的路徑,_hz表示幀率,填0代表默認值,_calib填標定文件地址
如:
$ rosrun lsd_slam_core dataset_slam _files:=<your path>/LSD_room/images _hz:=0 _calib:=<your path>/LSD_room/cameraCalibration.cfg
(2)USB攝像模式
$ rosrun lsd_slam_core live_slam /image:=<yourstreamtopic> _calib:=<calibration_file>
_calib同上,/image選擇視頻流
如:
$ rosrun lsd_slam_core live_slam /image:=image_raw _calib:=<your path>/LSD_room/cameraCalibration.cfg
運行成功圖如下: