Up:[[Tutorial]] Previous:[[Clean Up Task Sample 1, 2]] ---- #contents *ロボカップ@ホームキャンプ2014 [#g2cfff41] ここでは、2014年1月25日26日に開催されたロボカップキャンプにおけるシミュレーションリーグの発表資料とサンプルプログラムを紹介します。 キャンプにおける発表資料は以下からダウンロードできます。 #ref(RoboCupCamp.pdf) *Clean Up タスクサンプル 3[#g2cfff41] ※このサンプルはSIGVerse v2.2.2以降で動作します。 ロボットがテーブルなどの障害物を回避しながら、部屋の中のゴミを正しいゴミ箱に捨てるサンプルを紹介します。 また、後述するレフェリーサービスにより、ロボットが障害物と接触した、誤ったゴミ箱にゴミを捨てた場合には減点、正しいゴミ箱にゴミを捨てた場合には加点されます。 ここで、レフェリーサービスは以下のリストに基づいて採点を行います。 #ref(ObjectList.xlsx) ***修正点 [#xec68eb8] -ロボットが物体を通り抜けられないよう修正。 -レフェリーサービスによる自動採点を導入。 -環境に家具や壁、床を設置して家庭環境を再現。 **コントローラサンプルコード取得 [#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.zip) //***vc2010 [#w0461d81] //#ref(Referee_v1_v2010.zip) SIGViewerにサービスを登録します。 サービスの登録方法については[[キネクトによるエージェントの操作]]をご覧ください。 //**設定 [#xd01eb20] //hoge hoge ・・・ //**ゴミ認識サービス [#j9720a3a] //ゴミを認識するサービスプロバイダのサンプルについては[[Clean UP 2013]]をご覧ください。 **実行 [#bc5cacad] それでは実行してみましょう。 サーバ側でまずSIGVerseサーバを実行します。 $ sigserver.sh -w ./CleanUpDemo2014Robo.xml ビューワーで接続すると部屋の中央にロボットが立っていて、手前のガラステーブルの上に缶とペットボトルが置いてあります。 #ref(./CleanUp2014_1.jpg,60%) 次にレフェリーサービスを起動します。 #ref(./CleanUp2014_2.jpg,60%) #ref(./CleanUp2014_3.jpg,60%) シミュレーションを開始するとロボットが移動し始めます。 ロボットが障害物に衝突するとレフェリーサービスによって減点されます。 #ref(./CleanUp2014_4.jpg,60%) 次にロボットが缶をゴミ箱に運び始めます。 #ref(./CleanUp2014_5.jpg,60%) 間違ったゴミ箱に捨てた場合は減点されます。 #ref(./CleanUp2014_6.jpg,60%) 次にペットボトルをゴミ箱に運び始めます。 #ref(./CleanUp2014_7.jpg,60%) 正しいゴミ箱に捨てた場合には得点が加算されます。 #ref(./CleanUp2014_8.jpg,60%) **終了 [#t177810d] 終了するときはゴミ認識サービスプロバイダの終了→ビューワーでシミュレーション終了(もしくはQuit)→ビューワーでdisconnect→サーバの終了の順に行います。 #highlight(end) ---- Up:[[Tutorial]] Previous:[[Clean Up]] Next:[[ROSノードの利用]] Up:[[Tutorial]] Previous:[[Clean Up Task Sample 1, 2]] #counter