RGBDSLAM x ROS on Ubuntu 11.10 | t.marcusの実験メモ

t.marcusの実験メモ

基本的には,実験メモ
たまに気になる事を徒然と

今回はKinectを使ったSLAM(Simultaneously Localization and Maping)の生成ツールであるROS RGBDSLAMというもののインストールします.

SLAMについてはここを参照してください.

インストール対象のOSはUbuntu 11.10となります.

ちなみにRGBDSLAMはこんな感じのもの



1.はじめに,コンピュータにROS.orgのソフトウェアを受け入れ可能にします.

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu oneiric main" > /etc/apt/sources.list.d/ros-latest.list'


2.aptにkeyを追加します.

$ wget http://packages.ros.org/ros.key -O - | sudo apt-key add -


3.aptのデータベースを更新します.

$ sudo apt-get update


4.aptを使ってROS(electric)のフルバージョンをインストールします.

$ sudo apt-get install ros-electric-desktop-full


5.~/.bashrcにROS electricの環境をセットします.

$ echo "source /opt/ros/electric/setup.bash" >> ~/.bashrc
$ . ~/.bashrc


6.ROSの作業用ディレクトリを作成します.

$ mkdir -p ~/ros


7.作業用ディレクトリにパスが通っていることを確認

$ echo $ROS_PACKAGE_PATH
  → /home/{ユーザ名}/ros が含まれることを確認

もし含まれていない場合は,以下を実行
$ vi ~/.bashrc

--- 最終行に追記する ---
export ROS_PACKAGE_PATH=~/ros:$ROS_PACKAGE_PATH
---------------------


8.念のためもう一度aptをアップデート

$ sudo apt-get update


9.ROS ElectricのPCL拡張とOpenNI拡張・meshlab・libgsl0-devをaptでインストールする

$ sudo apt-get install ros-electric-perception-pcl-addons ros-electric-openni-kinect meshlab libgsl0-dev libqt4-sql-sqlite qt4-designer qt4-doc


10.ROSの作業用ディレクトリに移動する.

$ cd ros


11.ROSの作業用ディレクトリにhogman_minimalをチェックアウトする.

$ svn co http://alufr-ros-pkg.googlecode.com/svn/trunk/freiburg_tools/hogman_minimal


12.ROSの作業用ディレクトリにrgbdslamをチェックアウトする.

$ svn co https://svn.openslam.org/data/svn/rgbdslam/trunk rgbdslam


13.rosmakeでrgbdslamをインストールする.

$ roscd rgbdslam && rosmake --rosdep-install rgbdslamam


14.ROSのOpenNI拡張を起動して,別ウィンドウでRGBDSLAM拡張を起動する.

$ roslaunch openni_camera openni_node.launch
$ roslaunch rgbdslam rgbdslam.launch


15.以下のエラーが発生するのでバグを修正する.


ERROR: cannot launch node of type [rgbdslam/rgbdslam]: Cannot locate
node of type [rgbdslam] in package [rgbdslam]
No processes to monitor
shutting down processing monitor...
... shutting down processing monitor complete



16.作業用ディレクトリのRGBDSLAMに入る.

$ cd ~/ros/rgbdslam


17.ソースの修正

$ vi src/graph_manager.cpp

1043行目をコメントアウトして、その下に以下を追記する
--- 追記内容 ---
ointcloud_type ncloud=cloud_in;
Eigen::Map<Eigen::Vector3f> p_in (&ncloud.points[i].x, 3, 1);
----------------



$ vi src/glviewer.cpp
300行目と446行目をコメントアウトして、グローバル変数(32行目あたり)に以下を追記する
--- 追記内容 ---
unsigned int kr=0, kb=0, kg=0;
const point_type origin(kr, kb, kg);
----------------


18.rgbdslamをコンパイルする

$ cmake .; make


19.起動する

$ cd ~/ros

$ roslaunch openni_camera openni_node.launch
$ roslaunch rgbdslam rgbdslam.launch

もしくは

$ roslaunch rgbdslam kinect+rgbdslam.launch