本文へスキップ

Inverse3を使った開発

この記事はクイックスタートガイドに基づき、ハプティック開発ツールとしてのInverse3の入門となるものです。そのために、様々なハードウェア構成、制御方法、デバイスの動作を変える主要な機能について説明します。

デバイスの利き手と座標系

Inverse3には、異なるシナリオに最適化された2つのハードウェア構成がある。

各デバイスは左利きでも右利きでも使用できるが、右利きのユーザーは、状況によっては右利き用のデバイスの方が使いやすいと感じるかもしれない。

両手操作のシナリオで2つの機器を一緒に使用する場合、衝突や干渉を最小限に抑えるため、左手用機器は左側に、右手用機器は右側に置くべきである。

どちらの装置も、Inverse3のアーム側にある装置プレートに示された右手座標系に従う。座標系の原点は、装置の取り付けプレートの平らな面、中央付近にある。

APIで提供される座標系がすでにゲームエンジン固有の座標系に従っている可能性があるため、使用予定の言語またはプラグインのHardwareAPIドキュメントを確認してください。

インバース3のコントロール

Inverse3の制御は力の制御だけでなく、関節トルクや角度の制御も可能です。このセクションでは、様々な制御モードの概要と、関連する入力と出力、それぞれの単位について説明します。

どちらのモードを使用しても、ユーザーとデバイスの両方に本質的なリスクが伴います。安全に関する情報は、Inverse3の安全な使用を参照してください。

直交コントロール

力制御は、力をニュートン(N)で受け取り、位置をメートル(m)、速度をメートル/秒(m/s)で返すので、Inverse3を使用するのに適した方法です。位置制御モードでは、Inverse3は指定された位置を移動し、維持します。2つのモードの切り替えはシームレスであり、より良いユーザーエクスペリエンスを提供するために併用することができます。例えば、シミュレーションの開始時にインタラクティブなオブジェクトからデバイスを遠ざけたり、トラッキングされたVerseGripを使用することで、位置制御モードではツールを切り替える際にカーソルの位置を保持することができます。

デバイスの範囲外の位置を設定してもエラーは返さないが、デバイスはゆっくりと落下する。

ジョイント・コントロール

同様に、Inverse3の関節トルクと関節角度は直接制御することができます。トルク制御モードでは、デバイスはミリメートルあたりニュートン(N-mm)で指定されたトルクを生成し、関節角度制御では、度(°)で指定された角度に移動します。いずれの場合も、デバイスは位置を°単位で、速度を毎秒°(°/s)単位で返します。

カラーコード

Haplyロゴのステータスライトは、デバイスの動作モードに応じて色が変わります:

レッドコンピューターに接続
赤の点滅キャリブレーション
イエロー接続タイムアウト
グリーン使用中力、トルク制御
ブルー使用中ポジション、アングルコントロール
パープル使用中電源なし

オプションのパフォーマンス向上機能

Inverse3には、そのパフォーマンスとフィーリングをコントロールすることを目的とした複数の機能がある。このセクションでは、これらの機能の概要と使用方法について説明する。

速度推定

速度は直接測定することができないため、通常は位置から導出され、フィルタリングが必要なノイズの多い不正確な信号となります。Inverse3は、オンボードの速度推定アルゴリズムを搭載しており、ハードウェアの密接な統合を利用して、フィルタリングを必要としない速度信号を生成します。

速度の推定値は推定値であり、完全に正確であるとは限りません。その精度と性能は、改良のため変更される可能性があります。

重力補償

重力補正は、Inverse3のコンポーネントの質量から生じる力を除去し、取り付けの向きに関係なく無重力に感じさせます。シミュレーションの開始時、デバイスはオンボードセンサーを使用してアルゴリズムを較正します。動作中にデバイスの向きを変えると、挙動が不安定になります。

重力補正はフォースコントロールモードでのみ機能する。

重力補正の強さは、重力スケーリング係数(デフォルトでは0.75に設定)を使用して調整可能であり、API固有のコマンド(詳細についてはAPIリファレンスを参照)を使用して完全にオフにすることができます。

フォース・スケーリング

Inverse3は、異なる方向に異なる大きさの力を発生させます。そのため、Inverse3の能力を超える力を発生させようとすると、目的の力とは異なる方向の力が発生する可能性があります。力のスケーリングを有効にすると、力の方向は保持されますが、大きさは小さくなります。この機能はデフォルトでオンになっていますが、API固有のコマンドを使用して無効にすることができます。

ヴァースグリップ・オリエンテーション・トラッキング

Inverse3でツールの向きをトラッキングするには、VerseGripが必要です。

VerseGripsについてはクイックスタートで:VerseGripの記事をご覧ください。