HoloLensの次期大型バージョンアップのプレビュー版(RS4)が公開され複数の機能の利用が可能になりました. 今回はHoloLensの新機能Research modeについてサンプルを実行しながら紹介します.
概要
HoloLensの次期大型バージョンアップのプレビュー版(RS4)から新たにResearch modeが利用可能になりました. Research modeを有効にすることで今まで取得できなかったHoloLensの各種センサデータを取得できるようになります. センサデータを取得できようになったことで,今までわからなかったセンサの詳細が確認できるようになっています.
動作環境
- 開発環境
- Windows10 Insider Preview 17127
- Windows10 SDK Insider Preview 17115
- Visual Studio2017
- 実行環境
- HoloLens RS4 Preview 17123
HoloLens,Windows10の環境構築に関しては以前の記事(HoloLensとWindowsMLとCustomVisionを使って手書き認識をしてみる(データ収集編))を参考にしてください
Researchmodeの有効化
- HoloLensのデバイスポータルに接続する.
- デバイスポータルのメニューからResearch modeタブを選択する.
- Research modeの有効化チェックボックスにチェックを入れてHoloLensを再起動する.
- Research modeが有効化される.
- Researchmodeを無効にする場合にはデバイスポータルのResearchmode有効化チェックボックスのチェックを外して再起動を行います.
Researchmodeを有効にするとバッテリーの消費が多くなり稼働時間が短くなります.

Researchmodeの機能
Researchmodeを有効にすることで外部センサのアクセスが可能になります. 新たにアクセスできるセンタデータは
- 短距離深度情報
- 短距離赤外線情報
- 長距離深度情報
- 長距離赤外線情報
- 環境認識カメラ(左側外側)
- 環境認識カメラ(左側手前)
- 環境認識カメラ(右側外側)
- 環境認識カメラ(右側手前)
Researchmodeのサンプルを動かしてみる
サンプルプロジェクトのダウンロード
デバイスポータルのResearchmodeのリンクからセンサデータを表示するサンプルプロジェクトがダウンロードできます. 以下のサイトからでも行けます. https://github.com/Microsoft/HoloLensForCV
- ResearchmodeのサンプルはgitHubページの「feature/api_updates」ブランチに切り替えることで確認できます.
- 「Clone or download」の「Download ZIP」からプロジェクトをダウンロードします.

サンプルプロジェクトのビルド
ダウンロードしたZIPを展開後,HoloLensForCV.slnをVisual Studioで開きます. 以下の設定を変更してソリューションのビルドを行います. - ソリューションプラットフォームをx86に変更 - スタートアッププロジェクトを「Streamer (Universal Windows)」変更 - ビルド先をDeviceに変更
ただしこのままビルドを行っても「警告をエラーとして扱いました.’object’ファイルは生成されません.」のエラーが出てビルドが成功しません. そのため以下の変更を行います.
- C++のプロジェクトのプロパティを開き,C/C++の全般に移動
- 「警告をエラーとして扱う」を「いいえ」に変更
- 全てのC++プロジェクトに対して行う

以上の変更を行い再度ビルドを行うとビルドが成功します. ビルドが成功したらHoloLensに配置を行いますが,HoloLens用以外のプロジェクトも配置しようとして失敗してしまいます. そのため
- Streamer
のみをHoloLensに配置します.
Streamerプロジェクトを右クリックして配置を選択するとHoloLensへの配置が完了します.

サンプルプロジェクトの実行
今回サンプルアプリを実行するとアプリ終了後はHoloLensのトラッキング機能が失われて再起動が必要になります
HoloLensからStreamerを実行すると以下の動画のように短距離赤外線カメラからの映像を見ることができます. 映像はパネルに張り付けられた状態でタップした方向に移動します.
まとめ
- HoloLens RS4から利用できるResearchmodeについて紹介しました.
- サンプルを実行することで短距離の赤外線情報を取得することができます.
サンプルではC++による赤外線情報の取得を確認できました. 次回はC#によるセンサデータの取得方法とセンサデータのUnityでの利用について紹介します.