Tutorial?

Up:Tutorial?     Previous:エージェント間のメッセージのやりとり     Next:複数個のカメラ設置


オブジェクトの検出(detectEntities)

ここではサービスプロバイダを使ってオレンジを見つけたら手を挙げるサンプルを紹介します。

このサンプルはサービスプロバイダ機能を使用します。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が指定されます。

更新履歴

Up:Tutorial?     Previous:音声認識     Next:複数個のカメラ設置


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