Tutorial?
Up:Tutorial? Previous:エージェント間のメッセージのやりとり Next:複数個のカメラ設置
ここではサービスプロバイダを使ってオレンジを見つけたら手を挙げるサンプルを紹介します。
このサンプルはサービスプロバイダ機能を使用します。SSH接続によりサーバに接続している場合には追加でサービスプロバイダ用のポートフォワーディングの設定が必要です。
※ビューワーによるSSH接続をしている場合はバージョン2.0.1ではサービスプロバイダ機能には対応しておりません。Cygwinによるポートフォワーディング設定を行ってください。
コントローラを作成します。
$ cd .. $ emacs WatchOrange.cpp
WatchOrange.cpp
これはオレンジを見つけたら手を挙げるサンプルです。detectEntitiesで視野内にあるエンティティを検出します。
それではコンパイルします。
$ emacs Makefile
編集前
#オブジェクトファイルの指定 OBJS = WatchController.so
編集後
#オブジェクトファイルの指定 OBJS = WatchOrange.so
$ make
次に世界ファイルを編集します。
$ cd .. $ emacs xml/WatchWorld.xml
WatchWorld.xml
↓
それでは実行してみましょう。
$ ./sigserver.sh -w WatchWorld.xml -p 9001
#ref(): File not found: "watch_5.jpg" at page "サービスプロバイダの使用方法(v2.0系)"
オレンジを見つけたら手を挙げます。
エージェントに複数のカメラを設置することができます。複数個のカメラ設置方法については次のページ複数個のカメラ設置を参考にしてください。
このときdetectEntitiesの最後の引数にカメラ番号を指定することができます。
以下はカメラ番号2を指定する場合
bool b = detectEntities(ent);
↓
bool b = detectEntities(ent, 2);
何も指定しない場合は自動的にデフォルトで設置されているカメラ1が指定されます。