TurtleBotのセットアップ(3) – ROS

TurtleBotに積むPCのROS環境セットアップ。ROSはubuntu 12.10に対応しているので、とりあえずubuntuのサイトからubuntu Desktopの32bit版をダウンロードした。インストールの詳細については割愛する。
3/14追記 Kinectの接続でトラブルを解決できなかったため12.04LTSを用いた。
ROSのインストールを行う。ROSのサイトに従って、Ubuntu 12.10 (Quantal)用のsources.listとキーを設定して、apt-get updateを行った後、Desktop-Full Installのパッケージを取り込む。その他、書いてある通りに細かい設定を行う。
具体的な手順は以下の通り。
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu precise main" > /etc/apt/sources.list.d/ros-latest.list'
wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
sudo apt-get update
sudo apt-get install ros-groovy-desktop-full
sudo rosdep init
rosdep update

TurtleBot用のパッケージをインストールする。基本的に、TurtleBotのページの、2-1.Installation, 2-2. Post-Installation Setup, 2-3. Workstation Installation, 2-4. Network Configurationを順に行う。
まずパッケージのインストールのために、InstallationのページでInstall from Debsをクリックして手順を表示させる。なお行頭の>の文字は入力しない。
sudo apt-get install ros-groovy-turtlebot ros-groovy-turtlebot-apps ros-groovy-turtlebot-viz
上記のように3つのパッケージを導入する。今回使うのは古いタイプのTurtleBotなので、その後の「rosrun kobuki_ftdi create_udev_rules」は実行しない。
ちなみに現行のROSは新しいタイプのTurtleBot(kobukiと呼ばれるもの)がデフォルトなので、古いタイプを用いるためには別途設定を行う必要がある。
Post-Installation Setupのページでは、時刻同期の設定を行うように書いてあるのでそのようにする。続いて、Create Baseのページに進んで、Debs Installationをクリックして手順を表示させ、先ほど説明したように古いタイプのTurtleBotの設定を行う。
具体的には、~/.bashrcを開いて以下の内容を追加する。ついでにrosの設定も行うようにする。
export TURTLEBOT_BASE=create
export TURTLEBOT_STACKS=circles
export TURTLEBOT_3D_SENSOR=kinect
source /opt/ros/groovy/setup.bash

記述の順序が重要で、exportの3行は必ずsourceより前に置かなければならないようだ。
3D_SENSORのところにはkinectだけでなく、ASUS XTION PROも指定できるらしい。(asus_xtion_proと記載する)
Network Configurationでは、TurtleBotとは異なるモニタリング用のPCの設定を行う。InstallationとPost-Installation Setupを行った後で、時刻の同期をしておけばよいらしい。
sudo apt-get install chrony
sudo ntpdate ntp.ubuntu.com

Network Configurationでは、TurtleBotとモニタ用PC相互のネットワーク設定を行う。事前にifconfigなどでTurtleBotのIPアドレスを調べ、pingなどで接続の確認をすませておく必要がある。有線で接続している場合、いずれ無線接続にするので無線LAN側のIPアドレスを確定しておいた方が良い。
Turtlebot Setupの項でDebs Installationをクリックして、環境変数の設定を行う。仮にTurtleBotのIPアドレスが192.168.254.68だった場合、環境変数の設定コマンドは以下のようになる。
export ROS_MASTER_URI=http://192.168.254.68:11311
export ROS_HOSTNAME=turtlebot

先ほどと同様に、この2行を~/.bashrcの最後に追加すれば良い。
結局、~/.bashrcの最後の6行は次のようになる。
export TURTLEBOT_BASE=create
export TURTLEBOT_STACKS=circles
export TURTLEBOT_3D_SENSOR=kinect
source /opt/ros/groovy/setup.bash
export ROS_MASTER_URI=http://192.168.254.68:11311
export ROS_HOSTNAME=turtlebot

モニタ用のPCでは、上記のうち最後の3行を~/.bashrcの最後に追加すればよい。
3/6追記:ROS_HOSTNAMEはモニタ用のPCのIPアドレスにする。
3/7追記:さらにdialoutグループに自分のユーザーを加える必要がある。
基本的なセットアップは終わり、後はTurtleBotとモニタ用PCとで接続を確認するが、現時点では問題があって接続できない。(次回の記事で説明する)