Up:[[Tutorial]] Previous:[[Clean Up]] ---- #contents *Clean Up タスクサンプル [#g2cfff41] このサンプルは[[Clean UP]]の発展版になります。 //Clean UP 2013のサンプルでは、・・・した。 //このサンプルでは、・・・ます。 ※このサンプルはv2.2.0以降で動作します。 ロボットがゴミをゴミ箱に捨てるサンプルを紹介します。 ***修正点 [#xec68eb8] -ロボットが物体を通り抜けられないよう修正。 -レフェリーサービスの導入。 -(※注意)SIGVerse v2.2.0以降で正常に動作します。 **コントローラサンプルコード取得 [#ud1eaff5] 以下をサーバ側でダウンロードします。 #ref(CleanUpDemo2014.tar.gz) //**コンパイル [#g44a9810] 次に展開します。 $ tar xzvf CleanUpDemo2014.tar.gz $ cd CleanUpDemo2014 // $ make //***コンパイルに失敗する場合 [#g8d7bc28] //コンパイルするには環境変数SIGVERSE_PATHにバージョンSIGVerseのバージョン2.2.3以降を設定する必要があります。 // $ export SIGVERSE_PATH=/home/<username>/sigverse-<バージョン2.2.3以降> // $ export PATH=$PATH:$SIGVERSE_PATH/bin // $ bash //※注意)動作環境によっては以下のコードをコントローラの最初に追加する必要があります。 // #include <unistd.h> **レフェリーサービス取得 [#i66cae44] 以下をViewer側でダウンロードします。 //***vc2008 [#a5e84bc9] #ref(RoboCupReferee.sig) //***vc2010 [#w0461d81] //#ref(Referee_v1_v2010.zip) SIGViewerにサービスを登録します。 サービスの登録方法については[[キネクトによるエージェントの操作]]をご覧ください。 //**設定 [#xd01eb20] //hoge hoge ・・・ //**ゴミ認識サービス [#j9720a3a] //ゴミを認識するサービスプロバイダのサンプルについては[[Clean UP 2013]]をご覧ください。 **実行 [#bc5cacad] それでは実行してみましょう。 サーバ側でまずSIGVerseサーバを実行します。 $ sigserver.sh -w ./CleanUpDemo2014Robo.xml ビューワーで接続すると部屋の中央にロボットが立っていて、手前のガラステーブルの上に缶とペットボトルが置いてあります。 //#ref(./CleanUp_1.PNG,60%) 次にレフェリーサービスを起動します。 //#ref(./CleanUp_2.PNG,60%) シミュレーションを開始するとロボットが移動し始めます。 //#ref(./CleanUp_3.PNG,60%) ロボットが障害物に衝突するとレフェリーサービスによって減点されます。 次にロボットが缶をゴミ箱に運び始めます。 間違ったゴミ箱に捨てた場合は減点されます。 次にペットボトルをゴミ箱に運び始めます。 正しいゴミ箱に捨てた場合には得点が加算されます。 **終了 [#t177810d] 終了するときはゴミ認識サービスプロバイダの終了→ビューワーでシミュレーション終了(もしくはQuit)→ビューワーでdisconnect→サーバの終了の順に行います。 #highlight(end)