2006年度 システム情報科学特別演習(イントロダクトリセミナー)関連技術調査レポート
OpenHapticsの目的と構成技術
Hapticsとは
Hapticsとは、力(運動感覚)または触覚型のフィードバックを通して、
触覚と制御をコンピュータアプリケーションに取り込む科学です。
ハプティクデバイスと呼ばれる特殊な入出力デバイスと触覚的に使用可能にするアプリケーションを用いることで、
ユーザーは仮想三次元オブジェクトを感じ、操作することができます。
触覚を運ぶのに用いられるフィードバックのタイプは、使われているハプティクデバイスのタイプで決まります。
Hapticsのための応用分野は、多様で、拡大しています。例として以下のようなものが挙げられます
- 外科的シミュレーションと医学トレーニング
- 絵画、彫刻やCAD
- 軍事利用(航空宇宙でのトレーニングとシミュレーション)
- 視力障害者のための援助
- 窓の開閉のような標準的なユーザインタフェースによる簡単な相互技術
- ゲーム
OpenHapticsの目的
OpenHapticsは、ソフトウェア開発者がhapticsと3Dナビゲーションを
デザインからゲームやエンターテイメントまで幅広いアプリケーションに加えることを可能とします。
- OpenHapticsはOpenGL APIに従って作られているため、グラフィックデザイナーにとって使いやすくなっています。
- 開発者は幾何学を指定するために既存のOpenGLコードを導入することができ、
触覚の具体的な特性(摩擦や堅さ)をシミュレーションするために、OpenHapticsコマンドで補います。
- 拡張可能なアーキテクチャを持つので、開発者は新しい型をサポートする機能を加えることができます。
また、サードパーティのライブラリ(物理学、力学や衝突発見エンジンなど)を統合するように
設計されています。
- OpenHapticsにより、SensAble社のハプティクスデバイスPHANTOMを動作させることができます。
OpenHapticsの構成技術
OpenHapticsは、Haptic Device API (HDAPI)とHaptic Library API (HLAPI)から成っています。
HDAPIはハプティクスデバイスへのローレベルのアクセスを提供することで、
プログラマーが直接力を再現することを可能にし、ドライバとしての役割を持つランタイムの構成の制御を提供し、
デバッグ支援を提供します。
これは、ハプティクパラダイムや力を直接送ることになれている開発者に最適です。
また、hapticsの研究、テレプレゼンス、遠隔操作に関わる人にも最適です。
HLAPIはハイレベルのハプティクレンダリングを提供し、OpenGL APIプログラマーになじみがあるように設計されています。
つまり、OpenGLコードの再利用を可能とし、ハプティクスとグラフィックスレッドの同期を大いに単純化します。
そして、hapticsプログラミングにあまり精通していない開発者を対象としています。
HDAPIの特徴
- SensAble PHANTOM ハプティクスデバイスに最適化されたインターフェース
- 拡張可能でOSに依存しないアーキテクチャ
- ソフトウェアがユーザー定義可能な触覚サーボループ、エラー処理と安全限界などの制御等
HDAPIの機能
- 位置や速度などデバイス状態の取得
- バージョンやシリアルナンバー、モータ温度、最大速度や最大堅さデバイス特性の取得
- デカルト座標による力、トルクデバイス状態の設定
- ユーザー定義のコールバックの同期等スケジューラー
- 最大力や最大速度のソフトウェアチェックなどの有効化/無効化
- エラーレポート
- 装置較正インターフェース等
図1:HDAPI Diagram
HLAPIの特徴
- ハプティクスの知識がなく、グラフィックになじみがあるプログラマに向けて設計されています
- 既存のOpenGLコードの再利用を可能にします
- 拡張可能で柔軟なアーキテクチャはが、マイクロソフトDirectXのような他のグラフィックスライブラリのサポートを可能にします
図2:HLAPI Diagram
OpenHaptics APIの機能
- Shape:OpenGLプリミティブ(多角形、点、線)
- Force Effects:重力、速度、3次元摩擦、バネ
- Touch Model
- Surface Material Properties:摩擦、堅さ
- Dynamics物理学や力学、衝突発見エンジン
- Deformable Objects(変形可能な対象物)
まとめ
Hapticsは触覚のフィードバックを通して、触覚と制御をコンピュータアプリケーションに取り込みます。
ハプティクスデバイスを用いることで仮想三次元を触覚的に感じ、操作することができます。
OpenHapticsはHapticsを幅広いアプリケーションに加えることを可能とします。
開発者の技量や目的にあわせ、HDAPIとHLAPIを使い分けることができ、特にHLAPIではOpenGLコードをサポートしているため、
OpenGLになれた開発者にとって扱いやすいというメリットがある他、
点、線、ポリゴン、NURBS曲面などの3Dプリミティブの作成、移動、回転、拡大・縮小、
ライティングとシェーディング、テクスチャマッピングなどのOpenGLコードの再利用が可能です。
また、上位のGHOST SDK(the General Haptics Open Software Toolkit)ではC++をサポートしており、
- 一般的なプリミティブ
- 多面体モデル
- 表面特性
- その他、プラグインによる拡張
も可能です。
参考
OpenHaptics Toolkit Programmer's Guide (PDF)
SensAble社 Web site - OpenHaptics Toolkit
調査担当: システム統合学研究室 赤穂 光城 (提出年月日:2006年8月1日)