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)


Front page   New List of pages Search Recent changes   Help   RSS of recent changes