非表示
Project Tango

領域学習(Area Learning)

プロジェクトタンゴによって、端末は周りの世界をナビゲート、理解するために視覚的な手がかりを利用することができます。このページでは、改善されたモーショントラッキングと位置同定(ローカリゼーション)のためのプロジェクトタンゴの領域学習の機能について説明します。

モーショントラッキングの改善

エリア内を移動しながら、プロジェクトタンゴデバイスはその位置と、移動してきた経路を推定します。コアコンセプトで述べたように、端末は運動を長く推定するほど、実際の動きから推定値が逸脱してしまいます。端末は重力によってその向きを判断し多少の誤差は補正しますが、姿勢のその他のエラーは、モーショントラッキングのみでは検出できません。

領域プロジェクトタンゴデバイスは学習を使用して、通過したことのある領域の視覚的特徴を記憶し、その位置、向き、動きの把握の誤差を補正するためにそれらを使用することができます。これは環境の記憶を持っていないモーショントラッキングのみとは異なります。この記憶により、システムはループクロージャー(Loop closure)とも呼ばれるドリフト補正実行できます。デバイスは既に通過した場所に戻ってきたとき、ループの中を移動してきたことを理解し、以前の観察と一致するようにその経路を調整します。これらの修正は、アプリケーション内のデバイスの位置および軌跡を調整するために使用できます。

図1は、ドリフト補正の一例を示しています。緑の線は、デバイスが移動している本当の軌道で、赤い線はデバイスが推定した軌跡です。デバイスは開始して少しするとドリフトしているが、原点に戻ったときには、その点を認識し、軌跡を修正している。

図 1: 推定軌跡の修正

ドリフト補正がなければ、現実の世界に合わせた仮想3次元空間を利用したゲームやアプリケーションは長時間の使用後にモーショントラッキングのずれが発生する場合があります。たとえば、ドリフトを蓄積した後では現実世界におけるドア枠に対応するゲーム世界におけるドアは、ドア枠の代わりに現実世界の壁の中央に表示されるかもしれません。

領域記述に対する位置同定

領域を学習したら、後で使用するために領域の記述を保存することができます。タンゴデバイスは保存した記述を後でロードすれば、ロードされた領域内にいればそれを認識することができます。このプロセスを位置同定(ローカライズ)と呼びます。領域の記述に対してローカライズされなかった場合、デバイスの開始位置はセッションを終了するたびに失われます。仮想オブジェクトが前回ユーザーが訪れたときと同じ場所に表示されるなど、同じマップされた空間内で一貫性のある体験を創る場合は、領域を学習し、その領域に対してローカライズできる必要があります。

図2は、デバイスが新しい原点から始まり、以前に学習しているエリアに戻ってきたときに何が起こるかを示しています。

図 2: 保存した領域記述にローカライズ

プロジェクトタンゴデバイスのローカライズの難しさは領域の視​​覚的な多様性に依存します。たとえば、エリア内に同一の部屋がたくさんある場合やまっさらな壁の完全に空の部屋では、ローカライズすることは困難になります。

領域記述の作成と保存

プロジェクトタンゴAPIは、領域記述ファイル(Area Description Files ;ADF)の学習、保存、ロードをサポートしています。お使いの設定によっては、新しい領域を学習し、既存のADFに追加できます。

家具が周りに移動したり、夜よりも昼間の場合、異なる位置に立つと部屋がかなり違って見える場合があります。現在の状況が領域記述を作成するときに似ている場合は、ローカライズが成功する可能性が高いです。ローカリゼーションが起きない場合は、領域記述が現在の状態から違いすぎているかもしれません。

エリアは見た目が変更される理由がたくさんあるため、一か所に対して異なる条件の下で複数の領域記述ファイルを作成し、ユーザーが自分のセッションする際の条件に最も類似した正しいADFを選択してもよいです。別の方法として、照明や環境変化のあらゆる変化の下で、すべての位置や角度から環境の視覚的な記述を1つのファイルに取得するために複数の領域学習セッションを同じADFに追加することができます。

保存した領域記述を使う

保存した領域記述の再読み込みには多くの利点があります。これにより、ゲームやアプリ内のコンテンツが常に同じ物理的な位置に表示されるようにデバイスの座標フレームと既存の座標フレームを位置合わせできます。

もう一つの利点はマルチプレイヤー体験のためのもので、2人のユーザーがクラウドサービスを介して共有した同じ座標フレームにローカライズすることができます。これにより、相対的な位置のすべてがわかる同じ物理空間で複数の人々がインタラクションできます。プロジェクトタンゴのAPIはネイティブでクラウド内のデータ共有をサポートしていませんが、実装するためにGoogleクラウドストレージとGoogle Play Games APIを使用できます。

いくつかのユースケースには、小売店や公共スペースのような環境の領域記述を作ることのできるスペースの所有者も含まれるかもしれない。これらの領域記述は、店の管理人のような専門のユーザーによって作成できる。これにより、、エンドユーザーが物理的な空間内で正確に位置を認識でき、位置情報を使ったのショッピング体験などができる。

領域学習と領域記述の使用は強力な機能であり、開発者が新しいユーザーエクスペリエンスを提供するためのアイデアを見られることは楽しみです。

学習モードとロードした領域記述ファイル(ADF)の使用

学習モードや、ADFをロードしたかどうかといった設定に応じて、プロジェクトタンゴのAPIはいくつかの面で動作が異なります。

この表では、左の2列があなたが学習モードがONか、以前に保存した領域記述​をロードしたかどうかを示します。これらの二つの状況に応じて、領域記述を保存できない場合があります。たとえば、あなたが学習モードがONでない場合、領域記述ファイルを保存することはできません。学習モードがONで、領域記述ファイルをロードした場合は、ロードされたADFに対してローカライズされた後にのみ再保存することができます。

また、学習モードにない場合、およびADFがロードされていない、参照フレームにTANGO_COORDINATE_FRAME_AREA_DESCRIPTION使用して姿勢データを取得することはできません。デバイスが一度ロードしたADFにローカライズすると、その参照フレームから姿勢データを得ることができます

学習モード on?  ADF を読み込んだ? この参照ペアのフレームに対する姿勢データを利用可能か 領域記述ファイルを保存できるか
サービス開始からデバイス 領域記述からデバイス領域記述からサービス開始
False False 開始時に利用可能 利用不可 利用不可領域記述を保存できません
True False 開始時に利用可能開始時に利用可能*開始時に利用可能* 新しいUUIDで現在の領域記述が保存される​​
False True 開始時に利用可能 ローカライズされた後に使用可能 ローカライズされた後に使用可能領域記述を保存できません
True True 開始時に利用可能 ローカライズされた後に使用可能 ローカライズされた後に使用可能 ロードしたADFに対してローカライズされるまでは、領域記述を保存できません 
保存するときはロードしたADFと同じUUIDを使用し、本質的には古い領域記述に新しく学習した領域を追加し、拡張しています。

*追跡が失われた場合、参照ペアのこれらのフレームは使用できなくなります。サービスリ​セット後、領域記述は追跡の消失までに学習したもので学習モードがTrueでADFがロードされたかのようにセッションは機能します。領域記述参照のフレームを引き続き使用するには、追跡の失敗前に学習した領域にローカライズする必要があります。また、ADFを保存するときに、追跡がロストする前に学習した領域を含めるようにローカライズする必要があります。