この記事は NEXTSCAPE Advent Calendar 2021 の 23 日目の記事です。
Moving Platform Mode はその名のとおり移動体(というか単に乗り物)の中で SLAM を安定させるための特殊モードです。OS バージョン 21H2 から追加された機能なので、既に自動更新で行き渡っていることでしょう。
本稿は Moving Platform Mode のなんたるかを記すものではなく、その機能を検証した様子を記したものです。
Microsoft 公式の解説では、以下のような Gif 動画付きで紹介されています。
HoloLens 2 Moving Platform Mode | Microsoft Docs
HoloLens の SLAM と Moving Platform Mode
HoloLens を含む Inside-out 方式の SLAM では、頼れるデータは大きく分けて「可視光カメラ」「加速度」の2つだけでしょう。そしてこの2つのデータをうまく合成する事によってトラッキングを実現していると考えられます。データ合成にはある程度の前提条件が必要で、ひとつに人は静止した空間にいる前提としてデータ合成を行っているのでしょう。勝手な想像ですが。
※細かく言えば、可視光カメラ、加速度、ジャイロスコープ、地磁気、などがあります。上記加速度には角加速度を含めています。
移動体に乗った状態では加速度に関するデータが当てにならなくなります。エレベーター内で HoloLens を装着した事がある方なら、昇降によって瞬時にトラッキングをロストした経験があるかと思います。昇降の加速度に引っ張られてしまったケースです。
一方、壁一面にプロジェクターで静止画を投影した状態で横スクロールを行うと、CG オブジェクトがスクロールに付いて行ってしまったこともありました。こちらは可視光カメラに引っ張られてしまったケースですね。
Moving Platform Mode は移動体特化モードなので、加速度に関するデータを軽視するようなロジックに切り替わるのだろうと想定できそうです。
検証の様子
某所への出張ついでに、道路を移動中にいろいろと検証を行ってみました。動画で見るのが一番よいでしょうから、参考になりそうなところを切り抜いてご紹介します。
Appendix
こちらは興味深い様子が撮れています。撮影中にわざと上を向くなどして、トラッキングをロストさせています。しかし、空間を再認識できた段階でオブジェクトが元の位置に復元されているのです。
この検証用アプリには、アンカーを利用した補正等の機能は組み込んでいません。
トラッキングが滑ってしまった場合に位置を復元するには、何かしらのアンカーを利用してその機能を実装しなければならなず、そうでなければズレたものはズレたままだと認識していました。公式情報がない(ないよね?)ので想像ですが、どうやら Moving Platform Mode では OS が認識・管理しているアンカーや空間メッシュ等の情報までも利用して、位置の復元を行っているのかもしれません。