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