Inverse3を使用した開発
本記事では、クイックスタートガイドを基に、Inverse3を触覚開発ツールとして活用する方法について解説します。そのために、さまざまなハードウェア構成や制御方法、およびデバイスの動作を変える重要な機能について解説します。
装置の左右配置と座標系
Inverse3 2種類のハードウェア構成を用意しており、それぞれ異なる利用シーンに合わせて最適化されています。

どのデバイスも左利き・右利きどちらのユーザーでも使用できますが、場合によっては、右利きのユーザーの方が、右利き用に設定されたデバイスの方が使いやすいと感じることもあるでしょう。
両手を使う場面で2台のデバイスを同時に使用する場合は、左手に持つデバイスを左側に、右手に持つデバイスを右側に配置し、衝突や干渉をできるだけ減らすようにしてください。

両方の装置は、Inverse3のアーム側に貼付された装置銘板に記載されている右手座標系に従っています。座標系の原点は、装置の取り付けプレートの平面上にあり、中心付近に位置しています。
使用する予定の言語またはプラグインに対応する InverseSDK のドキュメントをご確認ください。SDK が提供する座標系は、特定のゲームエンジンの座標系に準拠している可能性があるためです。
Inverse3の制御
Inverse3の制御は、力の制御にとどまらず、関節のトルクや角度も制御することができます。本節では、さまざまな制御モードと、それに関連する入力、出力、およびそれらの単位について概説します。
いずれのモードを使用する場合でも、ユーザーやデバイスには固有のリスクが伴います。セキュリティに関する情報については、Inverse3の安全使用説明書をご参照ください。
デカルト制御
力制御は、Inverse3を使用する際の最適な方法です。このモードでは、力をニュートン(N)単位で入力として受け取り、位置をメートル(m)単位、速度をメートル毎秒(m/s)単位で返します。位置制御モードでは、Inverse3は指定された位置まで移動し、その位置を維持します。2つのモード間はシームレスに切り替えられるため、これらを組み合わせて使用することで、より優れたユーザー体験を提供できます。例えば、シミュレーションの開始時にデバイスをインタラクティブなオブジェクトから遠ざけることができます。あるいは、トラッキング機能付きのVerseGripを使用する際、ツールを切り替える際に位置制御モードに切り替えることで、カーソルの位置を一定に保つことができます。

関節制御
同様に、Inverse3の関節トルクや角度を直接制御することも可能です。トルク制御モードでは、デバイスはニュートン・ミリメートル(N・mm)単位で指定されたトルクを発生させます。関節角度制御モードでは、デバイスは度(°)単位で指定された角度まで移動します。いずれの場合も、デバイスは位置を度(°)単位で、速度を度/秒(°/s)単位で返します。
カラーコード
Haply ロゴのステータスインジケーターは、デバイスの動作モードに応じて色が変わります。以下の表は、最新ファームウェアにおけるステータスインジケーターの色を示しています(旧バージョンのファームウェアの色については、以下の「旧バージョンのステータスインジケーターの色」のセクションを参照してください)。
| 色 | ライトシーケンス | 状態 | 説明 |
|---|---|---|---|
| 閉じる | 閉じる | 抜かれた | USB-Cケーブルが外れました |
| 赤 | きらめき | 未完成の握手 | サービスへの接続が確立されていません |
| SOS 点滅 | タイムアウト | 通信タイムアウトが検出されました。サービスから何の指示も受信していません。 | |
| 黄色 | きらめき | 校正されておらず、電源も供給されていない | 電源アダプターが外されており、キャリブレーションが必要です |
| フェードイン/フェードアウト | 未校正 | 装置の校正が必要です | |
| 白色 | 常亮 | 空き時間 | どの制御モードも有効になっていません |
| きらめき | 空き状態で、電源が供給されていない | 電源アダプタが外されており、制御モードも有効になっていません | |
| 緑 | 常亮 | 力制御 | 装置は力制御モードで動作しています |
| きらめき | 力制御中であり、電源は供給されていない | 電源アダプタが外されており、デバイスは力制御モードになっています | |
| 青色 | 常亮 | 位置制御 | 装置は位置制御モードで動作しています |
| きらめき | 位置制御中、電源未供給 | 電源アダプタが外されており、デバイスは位置制御モードになっています | |
| オレンジ色 | 常亮 | 安全トリガー | 不安定な状態が検出され、安全トリガーが作動しました |
注意:ステータスインジケーターが赤色のまま点灯し続ける場合は、USB 経由でのデータ転送が正常に行われていない可能性があります。接続がしっかりされているか確認するか、ケーブルを交換してください。ステータスインジケーターが上記の想定通りの点灯パターンを示さない場合は、サポートリクエストを送信してください。
オプションのパフォーマンス最適化機能
Inverse3 その性能や操作感を調整するための機能が多数用意されています。このセクションでは、これらの機能とその用途について簡単に紹介します。
速度の推定
速度は直接測定されるものではなく、位置データから推算されるため、信号にノイズが含まれたり精度が不十分になったりする場合があり、そのためフィルタ処理が必要となります。Inverse3 には、オンボードの速度推定アルゴリズムが搭載されており、その統合ハードウェアを活用することで、追加のフィルタ処理を必要としない速度信号を生成することができます。
速度の推定値はあくまで概算であり、必ずしも正確ではない可能性があることにご留意ください。改善作業が進むにつれて、その性能と精度はさらに向上する可能性があります。
重力補償
重力補正により、Inverse3の各部品の質量によって生じる力が相殺され、どのような設置方向でも無重力のような操作感を実現します。シミュレーション開始時、本機は内蔵センサーを用いてアルゴリズムのキャリブレーションを行います。動作中に本機の設置方向を変更すると、動作異常を引き起こす可能性があります。
重力補償は、力制御モードでのみ有効です。

重力補正の強度は、重力スケーリング係数を調整することで変更できます(デフォルト値は 0.75)。また、特定の SDK のコマンドを使用して、この機能を完全に無効にすることもできます(詳細は SDK リファレンスを参照してください)。
スケール調整
Inverse3 方向によって発生する力の大きさは異なります。そのため、Inverse3の能力範囲を超える力を生成しようとすると、実際に発生する力の方向が意図した方向と異なる場合があります。力のスケーリングを有効にすると、力の方向は維持されますが、その大きさは小さくなります。この機能はデフォルトで有効になっていますが、特定のSDKのコマンドを使用して無効にすることもできます。
VerseGrip 姿勢追跡
Inverse3トラッキングツールを使用して姿勢を追跡するには、VerseGripが必要です。
「入門ガイド:VerseGrip」の記事では、VerseGrip についてさらに詳しく知ることができます。
旧バージョンのステータスインジケーター
ファームウェア 7.4.x およびそれ以前のバージョン
| 色 | ライトシーケンス | 状態 | 説明 |
|---|---|---|---|
| 消える | 消える | 未接続 | USB-Cケーブルが外れました |
| 赤 | きらめき | まだ握手していない | サービスへの接続が確立されていません |
| 紫色 | 常亮 | 未校正 | 装置の校正が必要です |
| きらめき | 校正されておらず、電源も投入されていない | 電源アダプターが接続されておらず、キャリブレーションが必要です | |
| 白色 | 常亮 | 空き時間 | どの制御モードも有効になっていません |
| きらめき | 空き状態で、電源が入っていない | 電源アダプタが接続されておらず、制御モードも有効になっていません | |
| 緑 | 常亮 | 力制御 | 装置は力制御モードになっています |
| きらめき | 力制御されており、通電されていない | 電源アダプタが接続されておらず、デバイスが力制御モードになっています | |
| ロイヤルブルー | 常亮 | 位置制御 | 装置は位置制御モードになっています |
| きらめき | 位置が制御されており、通電されていない | 電源アダプターが接続されておらず、デバイスは位置制御モードになっています | |
| 青色 | 常亮 | 減衰による安全性 | 速度/力ダンピングの安全機構が作動しました |
| ピンク色 | 常亮 | 安定性の上限 | 不安定な状態が度々発生したため、力の制限上限が引き下げられました |
| バイオレット色 | 常亮 | 安定性アシストが作動しました | 不安定な状態が検出されたため、力が自動的に段階的に低下します |
| オレンジ色 | 常亮 | 緊急ブレーキ | 直ちに停止してください。緊急ブレーキが作動しました。 |
| 黄色 | 素早く点滅する | タイムアウト | 通信タイムアウトが検出されました |