Turtlebotパッケージのインストールとデモンストレーションの実行

目的

Turtlebot2を動かすためにパッケージをインストールします.また,既存のパッケージにて用意されているデモンストレーションを体験します.

Turtlebot

本演習ではTurtlebot2を使用します.

パッケージのインストールと設定

Turtlebot2を動かすためのパッケージをインストールします.ROSのディストリビューションによってインストールするファイルが異なるため,注意してください.

バージョン : ROS Indigo

$ sudo apt-get update
$ sudo apt-get install ros-indigo-turtlebot ros-indigo-turtlebot-apps ros-indigo-turtlebot-interactions ros-indigo-turtlebot-simulator ros-indigo-kobuki-ftdi ros-indigo-rocon-remocon ros-indigo-rocon-qt-library ros-indigo-ar-track-alvar-msgs
$ . /opt/ros/indigo/setup.bash
$ rosrun kobuki_ftdi create_udev_rules
$ echo "source /opt/ros/indigo/setup.bash" >> ~/.bashrc
$ source ~/.bashrc

時刻の同期をとるために,インターネット上のサーバから正確な時刻を取得します.なお,この処理は必須ではありませんが,PC間で通信する際に時刻の同期を取っていないと挙動がおかしくなる場合があります.

$ sudo apt-get install chrony
$ sudo ntpdate ntp.ubuntu.com
チーム作成

2人1組のチームを作成します.今後は作成したチームで講義,課題に取り組んでもらいます.

VM環境もしくはusb2.0のポートがない場合には,kinectに接続できません.そのため,必ずチームで1人はkinectに接続できる環境を整えます.まず,下記のようにAとBに分かれてください.

A : VM環境下 or usb2.0のポート無し

B : Aに当てはまらない

AとBが組となるようチームを作成してください.また,同一チームのPCは必ず同一の無線LANネットワークに接続します.講義中の指示に従い,ネットワークに接続してください.

安全の確保

ロボットを動かす際には,必ず下記の点に注意してください.

  • 衣服の巻き込み等に対応できる服装を着用すること
  • ロボットを持ち上げて運ぶ際には,不安定な部分を持たないこと
  • ロボットを動かす際には周りに声を掛けること
  • ロボットを動かす場合には可動範囲を予想し,その範囲に人や不要な物がないことを確認すること
  • ロボットが予想外の動きをした場合には,即座に停止させること
  • ロボットが異音,発熱,不審な挙動をした場合には,即座にロボットを停止させ,教員に連絡すること
  • 教員の指示に従うこと
デモンストレーション

いよいろTurtlebotを動かします.

0. 起動の準備

Turtlebotの上にノートPCを載せましょう.動いているTurtlebotが停止すると,反動でノートPCが落ちてしまう可能性があるため,機体の真ん中に載せましょう.不安定ならば滑り止めシート等を利用してください.そして,ノートPCとTurtlebotをUSBケーブルによって接続します.Turtlebot及びKinectの2本USBケーブルがありますので両方ともノートPCに接続します.

次にTurtlebotの電源をONにします.電源ボタンは機体の側面にあります.電源をONにすると,音が鳴ると共にStatus LEDが点灯します.

最後に端末に下記を入力します.

$ roslaunch turtlebot_bringup minimal.launch

上記を実行するとTurtlebotから電子音が鳴ります.Turtlebotが動作するための様々なノードが立ち上がります.Turtlebotを動かす際には,必ず上記を実行する必要が有ります.

1. ダッシュボード

Turtlebotとの通信状態を確認するためのlaunchファイルが用意されています.

roslaunch turtlebot_dashboard turtlebot_dashboard.launch

正常に起動したら左上の3つのアイコンが緑色になります.赤色や灰色の場合には,Turtlebotとの接続ができていない,もしくはTurtlebotとの通信ができていないことを表しています.USBケーブルが正常に接続できているか,roslaunchでminimal.launchを実行したかを確認してください.

次に,Turtlebotの状態を確認するために,左上の3つ並んだアイコンの中から一番左のアイコンをクリックします.そして,Turtlebotのバンパーを押してください.下記のようにメッセージ欄に「Wall Hit!」が出力されます.他にも,どのようなメッセージを受け取れるか試してみましょう.

turtlebot_dashboard

2. キーボードによる操作

turtlesimと同様に,キーボードによる操作するパッケージが用意されています.

$ roslaunch turtlebot_teleop keyboard_teleop.launch

端末に操作方法が出力されます.こちらを見て操作してみましょう.

3. Kinect

Turtlebotにはmicrosoftから販売されているKinectが搭載されています.kinectは,可視光画像と距離画像を取得できるカメラです.kinectから画像を取得し,表示してみましょう.
まずは,パソコンとkinectの通信をするために,下記を実行します.(VM環境下では実行不可です.)

$ roslaunch turtlebot_bringup 3dsensor.launch

Kinectに接続できない場合には,こちらのページを参考にしてください.
また,openni_launchがないというエラーが発生した場合には,こちらのページを参考にしてください.
次に,kinectから得られた画像を表示します.ROSでは可視化するためのツールとしてRvizが用意されています.kinectで得られた情報を可視化するために,下記を実行しましょう.

$ roslaunch turtlebot_rviz_launchers view_robot.launch

起動するとTurtlebotのモデルが表示されます.取得できた画像を表示するために,ImageとRegistered PointCloudの欄にチェックを入れましょう.そして,視点を変えるために,マウスでドラッグし視点に変更しましょう.Rvizは様々なデータを可視化できる優れたツールです.是非とも有効活用しましょう.

Screenshot_from_2015-05-15 01:19:19

Screenshot_from_2015-05-15 01:26:09

Screenshot_from_2015-05-15 01:27:18

4. 地図の作成
Simultaneous Localization and Mapping(SLAM)という技術を用いた地図を作成することができます.roslaunchで立ち上げた3dsensor.launchを終了させます.そして下記を実行し,地図を作成します.

roslaunch turtlebot_navigation gmapping_demo.launch

次に,作成した地図を可視化します.可視化には,先ほど使用したrvizを使用します.

roslaunch turtlebot_rviz_launchers view_navigation.launch

キーボードでTurtlebotを操縦し,地図を作成してみてください.

Screenshot_from_2015-05-15 01:51:06

5. Follow me
最後にロボットが自律的に移動するデモンストレーションを動かしましょう.roscore及びminimal.launch以外を終了させ,下記を実行してください.

roslaunch turtlebot_follower follower.launch

上記を立ち上げると,目の前にある物体を追跡するようにTurtlebotが移動します.もし,ロボットが取得している画像をみたい場合には,下記を実行しましょう.

$ roslaunch turtlebot_rviz_launchers view_robot.launch