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


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

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

※ビューワーによるSSH接続を利用している場合はバージョン2.0.1,2.0.3ではサービスプロバイダ機能には対応しておりません。以下で説明するCygwinでのポートフォワーディングの設定を行ってください。

サービスプロバイダとは

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

service_1.PNG

ビューワーはカメラ画像のデータなどをコントローラに提供します。ビューワーの他にも例えばKinectをサービスとして利用することもできます。 ユーザーがオリジナルのサービスを作成することもできます。

オレンジを認識するサンプル

ここではエンティティに設置されたカメラ画像からオレンジを認識するサンプルを紹介します。

まずコントローラを作成します。

$ cd ..
$ emacs WatchOrange.cpp

WatchOrange.cpp

これはオレンジを見つけたら手を挙げるサンプルです。

30行目のconnectToServiceでサービスに接続します。

1番目の引数でビューワーからサーバに接続するときに入力したサービス名を指定します。2番目の引数はコントローラとサービスプロバイダが接続する際にサーバ側で使用するポート番号を指定します。このサンプルでは9005番を使います。

ポート番号は空いている番号であれば何番でも構わないという場合(ポートフォワーディングの必要がない場合)は2番目の引数を省略することもできます。その場合空いているポート番号をランダムに取得します。)

48行目のdetectEntitiesで視野内にあるエンティティを検出します。

1番目の引数で検出したエンティティ名を取得することができます。 2番目の引数では検出に使用するカメラのID番号を指定します。省略した場合はデフォルトで1となります。

コンパイル

Makefileの変数OBJSにWatchOrange.soを追加してコンパイルします。

サービスプロバイダ用ポートフォワーディング

このサンプルではポート番号9005番を新しく使用します。SSH接続を利用している場合は追加でポートフォワーディングの設定が必要になります。SSHでログインするときに以下のように入力してログインします。

$ ssh hoge@socio.iir.nii.ac.jp -L 9001:localhost:9001 -L 9005:localhost:9005

世界ファイル編集

次に世界ファイルを作成します。前ページのリビングルームとほぼ同じものを使用します。

$ cd ..
$ emacs xml/WatchOrange.xml

WatchOrange.xml

実行

それでは実行してみましょう。

$ ./sigserver.sh -w WatchOrange.xml -p 9001
watch_6.PNG

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

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


Attach file: filewatch_6.PNG 1608 download [Information] fileservice_1.PNG 1691 download [Information]

Front page   Edit Freeze Diff Backup Upload Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2012-11-30 (Fri) 13:48:03 (4163d)