進捗報告(11月22日) 中川和久 1 VRPN: A Device-Independent, NetworkTransparent VR Peripheral System VR周辺機器について 本質的に同じ作用をアプリケーションに命令するのに、 それぞれのVR周辺機器に対してそれぞれのインター フェースが存在している。 VRPNではVR周辺機器の機能を発揮する時に生じ る一連の命令に対してインターフェースを用意してい る。 device type 2 VRPN: A Device-Independent, NetworkTransparent VR Peripheral System VRアプリケーションについて どの時間のイベントがシステム内で起こっているのか を把握する必要がある。 VRPNでの同期 vrpn_Clockクラスという形でライブラリに存在してい る。 3 VRPN: A Device-Independent, NetworkTransparent VR Peripheral System VRPNの本質 VRPNはVR専用のAPIを提供することが目的ではな い。 様々なVR周辺機器に対しての一律のソフトウェアイ ンターフェイスを提供し、素早い応答でVR周辺機器 にネットワーク的に透過なアクセスを実現を可能にす るときの問題を解決する。 4 VRPN: A Device-Independent, NetworkTransparent VR Peripheral System 既存のVRツールキットとの互換性 device-interface layer WorldToolkit Maverik NCSA -CAVE applicationNaval Research Laboratory -Dragon applicationPanda3D DIVERSE 5 Common device types Tracker Button 多次元のアナログ情報を報告する。 Dial 1つ以上のボタンに対してpressとreleaseのイベントを報告する。 Analog poses、 pose velocities、 pose accelerationsを報告する。 付加的なrotation情報を報告する。 ForceDevice Server側から送られる情報で、Client側が表面を特定し、3次元 として情報を捉えることを可能にする。 6 Device Types VR周辺機器を1つのtypeとして捉える。 簡素で機能豊かなソフトウェアインターフェースを供 給するためには工夫が必要である。 1. VR周辺機器をそれらの機能に基づいて区分けする。 2. VR周辺機器をそれぞれ関連づける。 3. 多種多様のインターフェースを経由できるようにする。 4. サポートしていないメッセージを無視する。 5. 全てのメッセージをアプリケーション・レベルで通信する。 7 1. 機能に基づいたVR周辺機器の区分け VRPNのドライバは多数の機能を備えたVR周辺 機器を、device typeで細分化させて捉える。 Server側のPhantom haptic display Client側から転送されたデータを描写する。 Client側 Tracker、Button、ForceDeviceそれぞれのデータを出力 する。 1つだけしかないhaptic deviceを3つの別々なマシンのよ うに扱う。 8 2. VR周辺機器の関連づけ 細分化させたtypeを同じネットワークに接続させ る。 Client側のHaptic deviceを3-typesに細分化した際の Tracker、Button、ForceDeviceは別々の物ではあるが、 効率よく通信するために同じネットワークに接続させる。 Internet vprn_Tracker_Remote vprn_Button_Remote vrpn_Connection vprn_ForceDevice_Remote 9 3.多種多様のインターフェースを経由 あるVR周辺機器が時間毎に違ったdevice type として認識されることもある。 自由に回転するダイアルはDialインターフェースで回 転角を特定することも出来るし、Analogインターフェー スで値を特定することも出来る。 layered device AnalogFly (低レベルでAnalog、高レベルでTracker) multiple-behavior device vrpn_Trackerインターフェースを複製(違う名前) 10 4. サポートしていないメッセージを無視 VRPN内でサポートしていないdevice typeから の命令は無視できるようにする。 稼動中のTrackerの割合を報告するmessage Phantomと3rdTechのトラッカー・デバイスは、稼動中の Trackerの割合に適応するように入力命令を制御するが、 他のVR周辺機器は安全にmessageを無視できる。 11 5.アプリケーション・レベルでの通信 既存のdevice typeにも適応しないようなデータ はVRPNのライブラリの改編をせずに、新たな message typeとして送信される。 12 Client側 VRアプリケーションが取扱うdevice type vrpn_Tracker_Remote vrpn_Button_Remote vrpn_Analog_Remote vrpn_Dial_Remote vrpn_ForceDevice_Remote vrpn_Poser_Remote 接続したいポーザーをパラメータとしてServer側に伝える。 vrpn_Analog_Output_Remote 接続したいサーバーをパラメータとしてServer側に伝える。 vrpn_Sound_Remote 音声について、Client側でサンプリングが行われる。 13 Server側 VRPNのServerがVRアプリケーションに messageを伝えるときには同期が必要である。 14 VRPNで新しいVR周辺機器を作る 主に2種類のアプローチ 既存のdevice typeを用いて作る方法 新たなdeviceクラスを作る方法 root device class message typesの記述とそのmessageの送り先を処 理する。 vrpn_Tracker 15 既存のdevice typeの使用 既存のdevice typeに新たな能力を加える 新たなVR周辺機器が、既存のdevice typeを複数組 み込むことで実現が出来るのであれば、Server側の root device classに新たなmessage typeでエンコー ド・デコード出来るように拡張して、Client側に存在す る_Remoteクラスはそのmessage typeを送信するよ うにする。 16 VRPN tracker watch program 新たなトラッカーが出来たとき、このプログラムを 用いてテストすることが出来る。 positionとorientationコード 17 新たなdeviceクラスの作成 ルールに則った名前の指定を行う。 vrpn_BaseClassに由来したdeviceクラスの作 成を行う。 同期をとり、新たなmessage typeを流す。 18 既存のVRPN アプリケーション・レベルでの通信 アプリケーション Server VRアプリケーション VRPNアプリケーション Client VRPNアプリケーション Tracker0 vrpn_timer vrpn_AnalogFly vrpn_Log Analog vrpn_timer Button Analog Button vrpn_Joystick vrpn_connection vrpn_connection Networkクライアントドライバ Networkクライアントドライバ ドライバ eth0 eth0 USBクライアントドライバ usbcore.o usb-ohci.o デバイス Networkデバイス Networkデバイス 19 卒業研究で実現しようとするVRPN 結果出力についての課題(ForceDeviceの設定) アプリケーション Server VRアプリケーション Client VRPNアプリケーション Tracker0 vrpn_timer vrpn_AnalogFly vrpn_Log Analog Button ドライバ Networkクライアントドライバ eth0 Networkクライアントドライバ eth0 USBクライアントドライバ usbcore.o usb-ohci.o デバイス Networkデバイス Networkデバイス 20
© Copyright 2024 ExpyDoc