はじめに
今回は、AR空間のアンカーを共有できる Azure Spatial Anchors
の検証記事です。
約1年前に「Azure Spatial Anchorsを触ってみた」という記事で Azure Spatial Anchors
の実装方法などをまとめました。
今回は、実際に使ってみてどれくらいの精度で動くのかを検証してみました。
検証環境
- Unity 2019.4.8f1
- Azure Spatial Anchors v2.4.0
- iPhone 11 Pro (iOS 13.6.1)
- Pixel 4 XL (Android 10)
同じ場所でアンカーを保存、読込してみた
同じ場所でアンカーを保存して、読み込んだ時にどれくらいズレるのかを検証しました。
これからお見せしていく動画ですが、空間に置かれたCubeが空間のアンカーになります。Cubeが青→黄→緑となるとアンカーの保存が完了し、その後出てくる黄色のCubeが読み込まれたアンカーとなります。
iOS
Android
保存した時とほぼ同じ位置にアンカーが出現しました。
余談ですが、1年前に触った時と比べて、保存・読み込み時に周りを見回す時間がかなり短くなった気がします。
屋外で直線移動してみた
屋外でアンカーを保存して、読み込んだ後、
真っ直ぐな道を10m、20m、30mと移動してみた時の精度を検証しました。
iOS
Android
どちらも離れると少しズレてしまいますが、近くに戻ると元の位置に表示されるようになりました。
部屋の中を歩き回ってみた
10m x 20m の屋内空間でアンカーを保存して、読み込んだ後、
歩き回ってどれくらいズレるかを検証しました。
iOS
最後に大きくズレてしまいました。
このズレはその後も元の位置には戻りませんでした。
Android
こちらは最後までズレずに表示し続けることができました。
このような結果になったのは、iOS(AR Kit)とAndroid(AR Core)で自己位置推定の仕方が異なるからでしょうか?
おわりに
なかなかの精度でしたが、たまにズレてしまうことがあるので、何かしらのタイミングでキャリブレーションをし直す等、工夫は必要そうです。
1人だけのAR空間と複数人で共有するAR空間では出来ることの幅が全然違うと思うので、アンカー共有の技術は今後も積極的に研究していきたいと思います。