Up:Tutorial? Previous:HMD+KINECT
※このサンプルはv2.1.1以降で動作します。
ロボットがゴミをゴミ箱に捨てるサンプルを紹介します。
以下をサーバ側でダウンロードします。
次に展開してコンパイルします。
$ tar xzvf CleanUp_v1.tar.gz $ cd CleanUp_v1 $ make
コンパイルするには環境変数SIGVERSE_PATHにバージョンSIGVerseのバージョン2.1.1以降を設定する必要があります。
$ export SIGVERSE_PATH=/home/<username>/sigverse-<バージョン2.1.1以降> $ export PATH=$PATH:$SIGVERSE_PATH/bin $ bash
※注意)動作環境によっては以下のコードをコントローラの最初に追加する必要があります。
#include <unistd.h>
それでは実行してみましょう。
$ sigserver.sh -w ./CleanUp.xml
ビューワーで接続するとロボットが机の前に立っていて、机の上に缶とペットボトルが置いてあります。
シミュレーションをスタートさせるとロボットが空き缶もしくはペットボトルに手を伸ばし、それをもってゴミ箱へと運びます。
このサンプルでは缶、もしくはペットボトルをゴミと認識してゴミ箱に運びます。
ロボットのコントローラを見てみます。
$ emacs CleanUpRobot.cpp
300行目あたりにrecognizeTrashという関数がありここでゴミを認識します。 このサンプルではゴミの名前が既に分かっていて、乱数でゴミを決定し、直接ゴミの位置を取得しています。 画像処理や距離センサなどでゴミを認識する場合はここにコードを追加していきます。