HoloLens MixedRealityCompanionKit PosterCalibrationSample

ナレコム藤本です、HoloLens Advent Calendar 2017 3日目の記事です!
MixedRealityCompanionKitのPosterCalibrationSampleをやってみました。

PosterCalibrationSampleでは、ポスターのような自然マーカーを用いて、ホログラムの位置合わせを行うことができます。
HoloLensのWorld Anchor機能を用いると、空間認識の誤差により固定したホログラムが徐々にズレてきてしまう場合があります。
アプリの起動時にマーカーを用いて、ホログラムの位置を補正してあげることで改善することができます。

開発環境

開発環境は、以下です。
■ Windows 10 Home
■ Visual Studio 2017 (15.4.4)
 ☑C++ ユニバーサル Windows プラットフォーム ツール
■ Unity 2017.2.0f3
■ Microsoft HoloLens

実行手順

1. こちらのreleasesをクリック、2017/12/01時点で最新のSource code (zip) をダウンロードします。
2. PosterCalibrationSampleフォルダのPlugin.slnをVisual Studio 2017で開きます。
3. ビルド設定をRelease/Win32にし、Ctrl+Shift+F5でビルドのみ行います。
※最初プラットフォームツールセットのバージョンでエラーが出ます。プロジェクトの再ターゲットが必要ですので、プロジェクト名を右クリック->プロジェクトの再ターゲットでプラットフォームツールセットをv141にアップグレードしてください。

4. PosterCalibrationSample/Plugin/Release/PluginフォルダにできたファイルをPosterCalibrationSample/Unity/Assets/Scripts/PosterAlign/Binariesにコピペします。


5. Unityを起動し、PosterCalibrationSample/Unityフォルダを開いてください。Unity 5.5.0b11で作成されていたようです。Continueをクリックしましょう。

6. ProjectビューにあるSingleZoneをクリックしシーンを開いてください。File->Build Settingsからビルド設定を行います。以下のようになります。Player Settingsは特に変更ありません。

7. Switch Platformをクリック、Buildをクリックしてビルドします。ビルド先のフォルダ名はAppとしましょう。
8. エラーが出るので、Assets/Scripts/SupportingScripts/Input/GestureStateManager.csを以下のように訂正してください。訂正後いくつかWarningが出ますが、ビルドできると思います。

9. Appフォルダ内のPosterCalibrationSample.slnをVisual Studio 2017で開き、ビルド設定をRelease/x86、リモートコンピューターに設定してHoloLensのIPアドレスを指定し、Ctrl+F5で実行します。

10. PosterCalibrationSample/Unity/Assets/PostersにあるMinecraft.pngとEscher.png(MultiZoneシーンで用いる)をA4で印刷しておいてください。

11. MultiZoneも同様に実行できます。

実行結果

MultiZoneのみ説明します。

MultiZone

ボイスコマンドの説明文と、マインクラフトのポスターホログラムと絵画(Escher)のホログラムが見えると思います。
“align poster 1″と発声すると、右にtargetとなるマインクラフトのポスターが表示され、左にHoloLensが見ている画像と特徴点が出ています。
その状態で、マインクラフトのポスターを見ると、緑色の枠で囲まれ認識されます。
すると、マインクラフトのポスターのホログラムが現実世界のポスターの位置に移動します。
Scale Up / Down、Move X/Y/Z Plus/Minusと発声して、位置を調整してください。
調整ができたら”lock alignment”と発声して、ホログラムを固定します。
poster 2も同様にできます。調整した結果が次のようになります。

Fordのデモでは、自動車のナンバープレートをマーカーとして、自動車(粘土モデル)の上にデザイナーの設計図(ホログラム)を被せて表示しています。表示した際のズレは、XBOXゲームコントローラーを用いて補正しているそうです。誤差を10mm程度まで抑えることができるそうです。

以上です。

この記事を書いた人

azure-recipe-user