ZenFoneARを使ってTangoの勉強

ZenFoneARを使ってTangoの勉強をしていきます。

Tangoアプリを作っていくとなると参考にするのはまずはGoogleの公式のドキュメントでしょう。

Tangoとは

そもそもTangoとは何なのでしょうか?

Tango is a platform that uses computer vision to give devices the ability to understand their position relative to the world around them.

Tangoは、コンピュータのビジョンを使用して、デバイスが周囲の世界との相対的な位置を理解できるようにするプラットフォームです。

By Google翻訳

だそうです。

Tangoは3つのコアテクノロジーからなります。

  • MotionTracking
  • Area Learning
  • Depth Perception

これらのテクノロジーを駆使してデバイスが周りの世界を認識していくわけです。

MotionTracking

Motion Tracking means that a Tango device can track its own movement and orientation through 3D space.

モーショントラッキングとは、Tangoデバイスが3D空間を介して自身の動きや方向を追跡できることを意味します。

By Google翻訳

モーショントラッキングは分かります。VRでもモーショントラッキングは重要ですね。自分(デバイス)がどこにいて、どちらを向いているかを追跡します。

通常のスマホVR/ARだとモーショントラッキングはジャイロセンサーや加速度センサーを使って行うのですが、あまり正確ではありません。Tangoだとさらにモーショントラッキングカメラ(魚眼カメラ)を使ってより正確なモーショントラッキングが可能です。

VRのVIVEだとベースステーションからの赤外線を利用してさらに正確なトラッキングが可能ですけどベースステーションがないと駄目なのでどこでも自由にというわけにはいきませんね。

Acerが発売予定のWindowsMR用ヘッドセットでも同じくモーショントラッキングカメラ(+各種センサ)を使用するようですがこちらはカメラを2つ搭載です。どのくらい精度に違いがでるんでしょうね?

Tangoではデバイスの位置、向きの組み合わせをPOSEと呼ぶそうです。デバイスの位置はTango Service開始時点の位置からの相対位置もしくは次に紹介するArea Learningで使用されるADFの始点からの相対位置になります。

Area Learning

With Area Learning turned on, the device not only remembers what it sees, it can also save and recall that information.

エリア学習をオンにすると、デバイスは認識した内容を記憶するだけでなく、その情報を保存して呼び出すこともできます。

By Google翻訳

これは場所の視覚的な特徴を覚えておき、再度そこを訪れた時に”あ、ここ前に来たことがある!”と認識できるようにする技術です。

場所を覚えておくことで毎回同じ場所に同じ物を表示できるようになります。店の中での案内表示などに使えそうですね。

また1度学習した場所では”drift corrections”を使って軌道の精度を上げたり、”localization”を使って位置と向きの精度を上げることが出来るそうです。

学習結果はADF (Area Description File) というファイルに保存し、後から読込むことができます。

視覚的な特徴を利用するので似たような場所だと誤認識したり、家具を動かすなど特徴が変わると認識できなかったりするとのことです。

Depth Perception

With depth perception, your device can understand the shape of your surroundings.

奥行き知覚では、あなたのデバイスはあなたの周囲の形を理解することができます。

By Google翻訳

Depth Perceptionでは現実世界の物体との距離を検出できます。現状では室内で0.5m~4mの時が最適に動作するそうです。

ユーザーが壁に近づいていることを認識したり、モーショントラッキングと併用して物と物の距離を測ったりできます。

TangoではDepth PerceptionのデータをPoint Cloudとして取得することが出来ます。Point Cloudは点のデータの集まりで各点は(x,y,z)の座標であらわされます。

実際に使ってみないと…

Tangoの3つのコアテクノロジーの概要を見てみました。何となく分かったような気もしますが、正直まだピンと来ない部分も多いです。Unityを使ったサンプルがあるので実際に作りながら学んでいきます。