Up:Tutorial? Previous:視覚に関する操作 Next:エージェント視点の画像取得? サービスプロバイダの使用方法 †※このチュートリアルはv2.1.0以降対応しています。 ここではサービスプロバイダを使ったサンプルを紹介します。 サービスプロバイダとは †SIGVerseではさまざまな情報をサービスとしてコントローラに提供します。 ビューワーもその一つです。 ビューワーはカメラ画像のデータなどをコントローラに提供します。ビューワーの他にも例えばKinectをサービスとして利用することもできます。 ユーザーがオリジナルのサービスを作成することもできます。 オレンジを認識するサンプル †ここではエンティティに設置されたカメラ画像からオレンジを認識するサンプルを紹介します。 まずコントローラを作成します。 $ cd ~/MyWorld $ emacs WatchOrange.cpp WatchOrange.cpp これはオレンジを見つけたら手を挙げるサンプルです。 30行目のconnectToServiceでサービスに接続します。 1番目の引数でビューワーからサーバに接続するときに入力したサービス名を指定します。サービスプロバイダと通信するためには通常使用するポート番号とは別のポートを取得する必要があります。デフォルトではメインポート+1を取得します。ポート番号を指定したい場合は第2引数で設定可能です。 48行目のdetectEntitiesで視野内にあるエンティティを検出します。 1番目の引数で検出したエンティティ名を取得することができます。 2番目の引数では検出に使用するカメラのID番号を指定します。省略した場合はデフォルトで1となります。 コンパイル †$ ./sigmake.sh WatchOrange.cpp 世界ファイル編集 †次に世界ファイルを作成します。前ページのリビングルームとほぼ同じものを使用します。 $ emacs WatchOrange.xml WatchOrange.xml 実行 †それでは実行してみましょう。 $ sigserver.sh -w ./WatchOrange.xml 前回同様メッセージを送信するとロボットが回転し、オレンジを見つけたら手を挙げます。 Old Version † |