ハンドトラッキングと触覚

(This blog post is translated from the original post in English)

 

こんにちは、ソフトウェアエンジニアとしてexiiiでインターンをしているPrachi Mandilです。普段はインド工科大学 (IIT) Kharagpur校にてComputer Science and Engineeringを専攻している学生ですが、生まれて初めて東京に来てインターンシップを経験しました。期間中私が主に取り組んだのは「EXOS Wristにハンドトラッキングを組み合わせる」というR&Dプロジェクトでした。このブログでは簡単にですがその内容を紹介できればと思います。

 

EXOS WristはOculus TouchやVive Controllerといった、ポジショントラッキングが可能な既存のコントローラと組み合わせた使用を想定しています。その為、個々の指の動きとの連動は行われていません。私達は力触覚デバイスにハンドトラッキングを組み合わせることによって、バーチャルオブジェクトとのインタラクションがより物理世界に近い直感的なものになる、という仮説を立て、複数のプロトタイプを製作しました。

 

 

 

ハンドトラッキングデバイスの選定

現在の市場を見渡すと、様々なタイプのハンドトラッキングデバイスが入手可能となっていますが、大きく分類すると「ビジョンベース」と「センサーベース」の2種類に分けることができます。今回私はビジョンベースのデバイスとしてLeap Motion、センサーベースのデバイスとしてNoitom Hi5 VR Gloveをそれぞれ試しました。

Leap Motion

ビジョンベースのハンドトラッキング技術とEXOS Wristの併用における最大の課題は、デバイスが手の甲を隠してしまい、カメラから手の形を思うように認識できず、トラッキング精度が落ちてしまうことでした。そこで、VRで使用する場合は通常ヘッドセットにつけるLeap Motionを、代わりに机の上に配置し、その位置をVive TrackerでVR空間上に認識させることにしました。この手法により、プレイエリアは机の上にあるLeap Motionの視野角に限定されてはしまうものの、安定したトラッキングを実現することに成功しました。

 

Noitom Hi5

次はこの体験をデスクトップからルームスケールに拡大する為に、Noitom Hi5 VR Gloveも試しました。

Noitom Hi5と3Dプリントで改造したEXOS Wristプロトタイプを装着した状態の写真です。この組み合わせはとても上手くいき、安定したハンドトラッキングと広範囲のユーザー体験を実現することができました。

 

ただこの写真からわかる通り、Leap Motionに比べると、このアプローチは装着やセットアップにとても時間がかかってしまうのも事実です。この問題に関しては、より小型で精度の高いハンドトラッキング技術が登場するのを楽しみにして待ちましょう。

 

 

 

オブジェクトに触れる・ボタンを押す

まずは最もシンプルなアクション「オブジェクトに触れる」という動作から実験を開始しました。EXOS Wristはその構造上、指先に直接フィードバックを与えることはできません。ただし指先とオブジェクトの接触タイミングと、手首に対する反力の提示タイミングを正確に合わせることで、とても自然な感覚をシミュレートすることができました。かなり見えづらいのですが、下のアニメーションからも、奥のスクリーン内で指先がオブジェクトに接触するのと同時に、手前のEXOS Wristが反力を返しているのが分かるかと思います。

 

私たちに寄せられるEXOSの最も多いユースケースの一つに、VRを使った「組み立て性の検証」が挙げられます。例えば車の設計をしているユーザーが、そのデザインが美しく見えるかだけではなく、現実的に組み立てることが可能か、といった検証を設計工程のなるべく初期段階でVR空間で行いたい、といったニーズです。このPoCとして、障害物で隠れた手の届きにくい位置にボタンを配置した簡単なプロトタイプを製作しました。手の形を自由に変えられて、操作の手応えを感じられることが、組み立てシミュレーションの精度を向上させることができるか、といった検証です。

 

 

Lighthouseと組み合わせたセンサーベースのハンドトラッキングは、例え視野の外でも正確に手の位置・形をVR空間内に再現してくれます。これに触覚フィードバックを組み合わせることで、更にその一段階上の状況判断材料として「オブジェクトに触っているのかどうか」を把握することが可能になりました。これによりユーザーは自分の作業スペースが見えない場所ですら、オブジェクトの形状を把握し、適切なアクションを取ることが可能になります。

 

バーチャルボタンとのインタラクションについては、以前EXOS Gripperと組み合わせたブログをチームの別のエンジニアがまとめました。今回も基本的にはその時につくられた波形パターンをWristに反映することで、自然なボタンのフィードバックを再現することができました。

 

 

 

 

オブジェクトを掴む・持ち上げる・放す

オブジェクトに触れるというシンプルな動作に加え、他にもいくつかのアクションを試してみました。従来のハンドトラッキングデバイスではオブジェクトを「掴んでいる」状態と「放した」状態の区別を認識することが難しいという課題がありました。私は触覚フィードバックを加えることによりこの体験を向上できないかを試みました。トライアンドエラーを繰り返した結果、最終的に以下のような方法で実装してみました:

 

  1. オブジェクトに触れた時はシンプルなタッチフィードバックを返す
  2. オブジェクトを掴み持ち上げた時は鉛直下向きの重力を返す
  3. オブジェクトを動き回した時は慣性フィードバックを返す
  4. オブジェクトが放された時は全ての反力を切る

 

 

 

このプロトタイピングにより、オブジェクトのプレゼンスは格段に向上し、またタスクのシミュレーションも実際のものにかなり近づけることができました。将来的には触覚付与がVR空間におけるタスクの効率性を向上させるのか、といった定量的な計測も行いたいと考えています。この方式は工場の組み立てライン作業や宇宙船での無重力空間実験など、多彩なタスクのシミュレーションに応用できるようになるのではないかと思います。

 

 

 

最後に

このブログポストではVR空間に触覚を足すことによる、オブジェクトとのインタラクションについてまとめてみました。ハンドトラッキングや触覚デバイスは発展途上の技術であるのは間違い無く、まだまだサイズも大きく使用も簡単ではありません。ただこの分野のテクノロジーは(exiiiも含めて)今後凄まじい速度で進化していくことはほぼ間違いないかと思います。私のプロジェクトは一旦ここで一区切りとなりますが、exiiiは今後も、触覚を活用したバーチャル空間における次世代のコンピュータインタラクションについて研究を進めていきます。