Up:Tutorial     Previous:視覚に関する操作     Next:エージェント視点の画像取得


サービスプロバイダの使用方法

※このチュートリアルはv2.1.0以降対応しています。

ここではサービスプロバイダを使ったサンプルを紹介します。

サービスプロバイダとは

SIGVerseではさまざまな情報をサービスとしてコントローラに提供します。 ビューワーもその一つです。

service_1.PNG

ビューワーはカメラ画像のデータなどをコントローラに提供します。ビューワーの他にも例えば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 
watch_6.PNG

前回同様メッセージを送信するとロボットが回転し、オレンジを見つけたら手を挙げます。

Old Version


Up:Tutorial     Previous:視覚に関する操作     Next:エージェント視点の画像取得

Counter: 1180, today: 2, yesterday: 0

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2014-02-07 (Fri) 16:43:24 (1743d)