よく寄せられる質問

このドキュメントで使用する定義:

ポーズ - 位置と向き。

ホログラム - 可視の仮想オブジェクト。

現実世界 - 物理的な世界。

物理的世界 - 現実の世界。

仮想世界 - 電子メディアを通じて提示される、合成的に生成され、シミュレートされた世界。

仮想世界マーカー - 仮想(モデリング)座標系でのポーズ。 これは、参照の位置と向きだけです。

現実世界マーカー - 仮想世界マーカに対応する現実世界環境とカメラに対する相対的なポーズ。 現実世界のマーカーのポーズは、ある程度の感知されたデータの組み合わせによって確立されます。

目に見える特徴 - 視覚的に認識可能な物理的世界の特徴。

World Locking Tools で何ができるでしょうか。

仮想と現実世界のマーカー間に不整合がある場合、ワールド ロック ツールは、目に見える不整合を最小限に抑える安定した座標系とカメラ調整を提供します。

別の言い方をすると、グループの個々のアンカーを使用してオブジェクトの各グループをロックするのではなく、シーン全体をアンカーの共有プールでワールド ロックします。

仮想および現実世界のマーカーが矛盾している理由

Microsoft Mixed Reality の背後にある多くの驚くようなテクノロジの中で、外部デバイスの助けを借りずに、物理的な世界でヘッドセットのポーズをリアルタイムでトラッキングする機能は特に驚きに値します。

頭部トラッキング システムは、物理環境における既知の仮想基準点に対する頭部のポーズを決定する際に非常に正確です。 この説明では、これらの仮想参照ポイントは 「目に見える特徴」 と呼ばれます。

例えば、ユーザーが部屋の中を歩き回るなどして、周囲の目に見える特徴を把握した上で、同じ位置に戻ると、システムは同じ目に見える特徴の多くを認識できます。 さらに、その目に見える特徴のポーズを、現在の頭部のポーズから相対的に判断し、しかも驚くほどの精度で判断することができます。

現在、トラッキング システムは、これらの特徴と頭部が相対的にどこにあるかを知っていますが、頭部と特徴のどちらの座標が絶対的にどうなっているかを知っているわけではありません。 物理世界には絶対的な座標系がないため、正解ではありません。 そのため、トラッキング システムは、最近の履歴では一貫性のある座標を割り当てますが、すべての履歴では一貫性がない場合があります。 つまり、まったく同じポーズに戻ったとき、頭部の座標が出発時と異なっていることがあるのです。 これはセンサーの誤差の一種です。

しかし、たとえば新しい頭部の仮想ポーズの座標が正の X 方向に移動した場合、その仮想座標系で静止している全てのホログラム オブジェクトは、頭部に対して負の X 方向に移動していることになります。 つまり、ヘッド トラッカーを装着したオブザーバーにとっては、歩行前の配置と比較して、現実世界に対して相対的に移動することになります。

Unity はこれに対応できるでしょうか。

はい、制限はありますが。 Unity には、空間アンカーと呼ばれる優れたメカニズムが用意されています。 仮想空間が物理空間に対して相対的に移動した場合、基礎となる目に見える特徴をトラッキングすることによって、空間アンカーは、物理空間内で固定されたままになるように仮想空間内で自らを移動させることが可能です。 空間アンカーに接続されたものは、同様に Unity の仮想空間を移動して物理空間に静止したままになります。

この限界は、目に見える特徴がヘッド トラッカーのカメラから遠ざかると信頼性が低くなることに関係しています。 これは当然といえば当然です。 目に見える特徴が見えないと、参照ポイントとしては不十分です。

そのため、スペース アンカーの有効範囲は 3 メートルに限定されます。 アプリケーションの精度要件によっては、使用可能な範囲が狭くなる場合があります。

非常に良いと思いますが、何が問題なのでしょうか。

良いというのを通り越して、単純にすごいことなのです。 ただし、空間アンカーが十分なソリューションを提供しない状況もあります。

まず、各空間アンカーは、物理世界で静止したまま、Unity の仮想座標空間を独立して移動します。 つまり、独立して固定されたオブジェクトは、物理的な位置を保とうとするため、相対的に移動することになのです。 正確なレイアウトを維持しようとするアプリケーションにとって、これは大きな問題となり得ます。

第二に、空間アンカーの範囲が限られているため、その空間アンカーの使用可能範囲より大きい単一オブジェクトに対しては、良い結果を得ることができません。 空間アンカーの近くにあるオブジェクト上の点は、ワールドロックされた状態を維持しますが、空間アンカーから遠い点はレバー アーム効果により、どんどん誤差が大きくなっていきます。 これにより、強固なワールド ロック ソリューションを使用しない 1 メートル以上のオブジェクトまたはオブジェクトの集合体は残ります。

他に何が問題なのでしょうか。

以前使用していた状態に戻る際に、ワールドロッキングツールには、仮想座標系を物理世界に対して元の位置に戻すのに十分な情報があります。 これにより、仮想世界で静止しているホログラムは、物理世界でも静止した状態に保たれます。

しかし、誤差は往復だけでなく、片道でも発生する可能性があります。

具体的な例として、物理的な部屋に置かれた 2 つの QR コードの間を 10 メートルとし、仮想的な部屋に置かれた 2 つの箱が 10 メートル離れているものとしてモデリングを考えます。 しかし、実行時には、仮想空間内で頭部のポーズがずれるため、QR コード間の 10 メートルを歩くと、仮想空間内を 11 メートル移動することになります。

アプリケーションは、仮想空間における距離と物理空間における距離とを適合させる情報を提供することによって、これに対応させるためにWorld Locking Toolsの機能を選択できます。 World Locking Tools が提供する動作は、最初の QR コードの上に立って下を見ると、最初のボックスが見えるというものです。 物理世界を 10 メートル歩くと、仮想空間での余分な1 メートルは静かに吸収され、仮想空間でも頭部が 10 メートル動いたことになります。 そのため、2つ目の物理 QR コードに到達して下を見ると、予想通り 2 つ目の仮想ボックスが存在するようになります。

なお、地上検証データを持たないアンカーは、2 つの QR コード間の経路を通過するため、対応するための調整が行われます。 その調整は、もちろん、そのことを感じさせないように滑らかに施されます。

現実世界のマーカーが安定していない場合はどうすればよいでしょうか。

さらに、現実世界のマーカーが動的に更新されている場合、World Locking Tools は空間フレームとカメラの調整を行い、現在の構成に最適な状態を維持します。

たとえば、HoloLens の場合、現実世界のマーカーが空間アンカーであれば、時間の経過とともに誤差が生まれます。 それらはまた、再確立(例えば、ループ閉じ込み)、および他の状況で移動します。 ポーズが更新されると、ワールドロッキングツールは、認識された空間アンカーと仮想アンカーとの間の認識された不整合を最小化するために、従来通りカメラを調整することによって補正します。

なお、このようなアンカー位置の更新の補正は、マーカーに関する地上検証データがない場合にも起る可能性があります。 暗黙の了解として、実世界のマーカー間の関係は現在のものが(より)正しいというデータがあります。 暗黙の地上検証データとは、現実世界におけるマーカー間の現在の関係が(より)正しいということです。

不整合が本当に悪い場合はどうすればよいでしょうか。

World Locking Tools は、実世界のマーカーと仮想のマーカーとの不整合が大きい改善すべきいくつかのシナリオを検出できます。 たとえば、これまで孤立していた2つのマーカープールの空間的な関係を確立するような情報を得ることができるかもしれません。 また、ループ閉じ込みは、エンドポイントを合わせるために、ルート上のマーカーを移動させることを示唆するかもしれません。

このような場合、World Locking Tools はクライアントに修正の可能性を通知し、クライアントの要望に応じて修正を行い、仮想マーカーをトラッキングするオブジェクトで行うべき調整についてクライアントに通知します。 クライアントから修正の要求があるまで(仮にあれば)、World Locking Tools は認識される不整合を最小限に抑え続けます。