画像処理
Kinect
ROS
SLAM

ROSのLSD-SLAMを動かしてみた。

More than 1 year has passed since last update.

目的

TUS(ミュンヘン工科大)が公開している、ROSの単眼カメラのSLAM、LSD-SLAMを動かしてみた。

LSD-SLAM: Large-ScaleDirect Monocular SLAM
github / Papar / Presen / TUS-Vision Lab.

環境

Ubuntu1404 x64
ROS:Indigo
(ROS:Kineticではコンパイルできず)

ライブラリのインストール

$ sudo apt-get install python-rosinstall
$ sudo apt-get install ros-indigo-libg2o ros-indigo-cv-bridge liblapack-dev libblas-dev freeglut3-dev libqglviewer-dev libsuitesparse-dev libx11-dev

LSD-SLAMのインストール

catkinには対応していない。rosmakeでコンパイルする。
フォルダをrosbuild_wsからcatkin_lsdslamに変更している。

$ mkdir ~/catkin_lsdslam
$ cd ~/catkin_lsdslam
$ rosws init . /opt/ros/indigo
$ rosws set ~/catkin_lsdslam/package_dir -t .
$ echo "source ~/catkin_lsdslam/setup.bash">> ~/.bashrc
$ git clone https://github.com/tum-vision/lsd_slam.git lsd_slam
$ rosmake lsd_slam

dynamic_reconfigureの修正

下記のエラーが起きた場合、dynamic_reconfigureのバクを修正する。

CMake Error at /opt/ros/indigo/share/dynamic_reconfigure/cmake/cfgbuild.cmake:78 (string):
string sub-command REPLACE requires at least four arguments.
Call Stack (most recent call first):
/opt/ros/indigo/share/dynamic_reconfigure/cmake/cfgbuild.cmake:99 (gencfg_cpp)
CMakeLists.txt:29 (include)

parameter_generator.pyの、144行目を削除する

$ sudo vi /opt/ros/indigo/lib/python2.7/dist-packages/dynamic_reconfigure/parameter_generator.py

check_name(name)
check_description(description)
self.gen.fill_type(newparam)
self.gen.check_type_fill_default(newparam, 'default', self.gen.defval[paramtype])
self.gen.check_type_fill_default(newparam, 'max', self.gen.maxval[paramtype])

参考:
https://github.com/tum-vision/lsd_slam/issues/219
https://github.com/ros/dynamic_reconfigure/pull/76/files

データセット(rosbag data)のダウンロード

$ wget http://vmcremers8.informatik.tu-muenchen.de/lsd/LSD_room.bag.zip
$ cd ~/catkin_lsdslam
$ unzip LSD_room.bag.zip

データセット(rosbag data)で実行

$ roscore
$ rosrun lsd_slam_viewer viewer
$ rosbag play ~/catkin_lsdslam/LSD_room.bag
$ rosrun lsd_slam_core live_slam image:=/image_raw camera_info:=/camera_info

Screenshot from 2017-06-10 07:42:59.png

lsd_slam.png

Kinect V1で実行

$ roslaunch freenect_launch freenect.launch
$ rosrun lsd_slam_viewer viewer
$ rosrun lsd_slam_core live_slam image:=/camera/rgb/image_color camera_info:=/camera/rgb/camera_info

参考

LSD-SLAMをROSで試す1-インストールとビルドとクイックスタート @ 趣味なし奴のメモ帳
https://noshumi.blogspot.jp/2016/12/lsd-slamros1.html

LSD-SLAM: Large-Scale Direct Monocular SLAM @Daily Tech Blog
http://daily-tech.hatenablog.com/entry/2016/04/29/145737

第2回cv勉強会@九州 LSD-SLAM ECCV'14 読み会 LSD-SLAM: Large-Scale Direct Monocular @ Satoshi Fujimoto,
https://www.slideshare.net/satoshibfujimoto/2cv-lsdslam

第22回画像センシングシンポジウムチュートリアル講演会 Kinect等の色距離センサを用いた点群処理と3D物体認識-ベーシックな手法と最新動向・ソフトウェアの紹介ー
https://staff.aist.go.jp/kanezaki.asako/pdf/SSII2016_AsakoKanezaki.pdf