2021.01.12

共同作業に向けてホロレンズ2と他のスマートデバイスとの組み合わせの実証実験

 はじめに

こんにちは、次世代システム研究室のB.M.Kです。

去年の2月にマイクロソフト社はホロレンズ2を発表して、業界から大きな注目を集めていました。ホロレンズはマイクロソフトが開発しているヘッドマウントディスプレイ(Head Mounted Display: HMD)方式の第2世代ホログラフィックコンピューターです。ホロレンズを通して、複合現実(MixedReality: MR)を体験することができます。ホロレンズは一般人向けのデバイスではなく現場で作業する人間向けのデバイスと言われて、ホロレンズとMR技術を活用することで爆発的生産性向上を大変期待されいます。今回はホロレンズ2の紹介そして共同作業に向けてホロレンズ2と他のスマートデバイスとの組み合わせの実証実験を共有したいと思います。

ホロレンズ2の技術仕様

Qualcomm Snapdragon 850のCPU、4GBのRAM、Wi-Fi 5、 Bluetooth 5.0、 USB Type-C、そして Windows 10系のWindows Holographic OSが搭載されることで ホロレンズ2は、現在市場に出回っているほとんどのAR、VR スマートグラス製品とは異なり、独自のOSを備えたスタンドアロンデバイスです。さらにMR技術の実現に欠かせない認識能力を搭載するため、慣性計測用の加速度センサー、ジャイロセンサー、磁力センサー、ヘッドトラッキング用の可視光カメラ、環境理解用の深度センサー、アイトラッキング用の赤外線カメラ等が豊富に搭載されています。


図1:  ホロレンズ2の ハードウェアの仕様

 ホロレンズ2の認識能力

人間の認識

  • ハンドトラッキング
  • アイトラッキング、虹彩認証
  • ボイスコマンド

環境の認識

  • 6DoFトラッキング
  • 世界規模の位置追跡
  • 空間マッピング
  • リアルタイム環境メッシュ
  • Mixed Reality キャプチャ

初代のホロレンズ1から進化したポイント

見やすさの進化


図 2:  見やすさの進化 (出典:マイクロソフト)

まず52度の視野が前モデルの34度と比べて2倍近くまで広がりました。視野角が2倍近く進化するということは、見た目の面積はおよそ4倍近くになります。大幅に拡大された視野を通して、一度により多くのホログラムを目にすることができます。

次に解像度が大幅に向上されました。初代は、視野1度あたり23ドットで構成されていましたが、ホロレンズ2ではこれが「47ドット」になりました。「8ポイントのフォントがウェブサイト上で読める」と言われましたので、これはかなりの解像度アップができました。

快適さの進化


図 3:  快適さの進化 (出典:マイクロソフト)

長時間の使用を想定して設計されたダイヤルイン フィット システムで、ホロレンズ 2 をより長く快適に装着することができます。眼鏡をかけたままでも装着でき、ヘッドセットを眼鏡を覆うようにスライドできます。タスクを切り替えるときは、バイザーを持ち上げることで Mixed Reality 環境から離脱することができます。

操作性の進化


図 4:  操作性の進化 (出典:マイクロソフト)

一番印象に残ったことは手認識の精度が大幅に向上されたことです。初代ホロレンズ1は、指先を認識することはできたものの、両手の指をリアルタイムに把握することはできませんでした。ホロレンズ2では両手の指の動きを正確に把握し、操作に活かせます。両手でピアノを引くこともでき、物体を掴んで両手でサイズを変えることもできます。空中に浮いているスライダーを動かしたり、大きなボタンを押したりすることもできます。自然な感覚でホログラムを触ったり、握ったり、動かしたりすると実物のように反応します。

実証実験のテーマ – 取り組む理由

上記はホロレンズ2の簡単な紹介でした。これからブログの本題に入りたいと思います。今回の実証実験のテーマは共同作業に向けてホロレンズ2と他のスマートデバイスとの組み合わせの実証実験でした。本テーマを選択した理由は以下の通りです。

ホロレンズは日常生活向けの端末ではなく、現場で作業向けの端末だと最初から設計されました。作業を行う時生産性向上、相乗効果を得るために、チームワーク等の共同作業が凄く重要なテーマになります。ホロレンズを用いて作業を行う際主な二つのパターンが分けられます。全員がホロレンズをかけて共同作業を行うパターンとホロレンズが他のスマートデバイスとの組み合わせで作業するというパターンです。全員がホロレンズをかけて共同作業を行うパターンは将来の主なパターンになりそうですが本体値段が高額及び限られる生産量のホロレンズデバイスは現在安価と普及されている他のスマートデバイス(スマホ、iPad等)と組み合わせて共同作業を行えば、費用対効果を考えると現時点でより現実的だと思われます。そのため、今回のテーマを取り組みました。


図 5: ホロレンズを用いた共同作業のパターン (出典:マイクロソフト)

デモ

今回の実証実験ではホトレンズ2の1台とスマホ(アンドロイド)の1台を使いました。ホロレンズ2の方は共同作業環境を作ってスマホに共有します。共同作業環境は仮想環境で仮想ブロックを操作して任意な形に組み立ての作業を行います。ホロレンズ2とスマホの両方から相手が操作することを見ることができますし、同時に自分が作業を行うことができます。以下の実証実験のデモビデオをご覧下さい。


実証実験の環境

今回の実証実験を行う開発環境は以下の通りです。
  • Dellノートパソコン(XPS13インチモデル)
  • Windows 10
  • Windows SDK 18362+
  • Visual Studio Community 2019
  • Hololens 2 
  • Google Pixel 3
  • Unity 2019.4 
  • MRTK 2.4.0
  • AR Foundation 2.1.8
  • Window Mixed Reality 4.2.3
  • ARCore XR Plugin 2.1.11
  • Android Studio 4.1.1
  • Azure Cloud(Azure Spatial Anchor)
  • Photon SDK(Photon Unity Network 2)

実証実験を行う主な三つのステップ

  • 作業環境(仮想環境)の作成
  • 作業環境の共有
  • リアルタイムに複数人に作業コンテンツの同期

作業環境の作成

まずは作業環境の作成のステップです。今回の実証実験にて作業環境は仮想環境であり、Mixed Reality Toolkit(MRTK) Unity を利用して作りました。Mixed Reality Toolkit(MRTK) Unity は Unity上Mixed Reality体験を構築するための基本的なコンポーネントや、共通のインタラクションや、UIコントロールを提供するMicrosoft 公式 SDK です。MRTKのインストールし方は下記のURLをご参照下さい。

https://microsoft.github.io/MixedRealityToolkit-Unity/Documentation/Installation.html

MRTKは様々なコンポーネントを提供しますが今回の実証実験にて特に下記の主な三つのコンポーネントを利用しました。

Interactable


図 6: Interactable デモ (出典:マイクロソフト)

一つ目はInteractableコンポーネントです。Interactableコンポーネントは、あらゆるオブジェクトを容易に interactable(インタラクション可能) にし、入力に応答させるオールインワン コンテナです。このコンポーネントを使用すると、インタラクション可能なボタンの作成やフォーカスによるオブジェクトの色の変更などを簡単に行うことができます。詳細は下記のURLをご参照下さい。

https://github.com/microsoft/MixedRealityToolkit-Unity/blob/mrtk_development/Documentation/README_Interactable.md

Object Manipulator


図 7: Object Manipulator デモ (出典:マイクロソフト)

二つ目はObject Manipulatorコンポーネントです。Object Manipulatorは、片手または両手を使ったオブジェクトの移動、スケール変更、回転を可能にします。Object Manipulatorの設定を変更することで、さまざまな入力に対してオブジェクトがどのように反応するかを制御することができます。このコンポーネントは、ホロレンズ2の多関節ハンド、ハンド レイ、ホロレンズ1のゲイズやジェスチャー、イマーシブ ヘッドセットのモーション コントローラ入力など、ほとんどの形式のインタラクションで動作します。詳細は下記のURLをご参照下さい。

https://github.com/microsoft/MixedRealityToolkit-Unity/blob/mrtk_development/Documentation/README_ObjectManipulator.md

Spatial Awareness


図 8: Spatial Awareness デモ (出典:マイクロソフト)

三つ目はSpatial Awarenessコンポーネントです。本コンポーネントを有効にすると仮想作業環境は周りの実環境の奥行き情報を利用することがき、オクルージョンの処理、物理シミュレーション等を可能にし、仮想空間と実空間の融合はよりリアルに見えます。詳細は下記のURLをご参照下さい。

https://github.com/microsoft/MixedRealityToolkit-Unity/blob/mrtk_development/Documentation/SpatialAwareness/SpatialAwarenessGettingStarted.md

作業環境の共有

スマホ等のスマートデバイスに仮想作業環境を共有する仕組みの理解に役に立ついくつかの概念を紹介します。

Spatial Coordinate Systems(空間座標系)

すべての3D グラフィックスアプリケーションは、デカルト座標系を使用して、仮想オブジェクトの位置と向きを理解します。 これらの座標系は、オブジェクトの位置を表す3つの垂直軸(X、Y、Z 軸) を確立します。複合現実(MR)では、アプリは仮想および物理座標系の両方に関するものであり、空間座標系と呼ばれる座標系を使います。空間座標系は、座標の値をメートル単位で表し、右手の法則に従う右手座標系です。つまり、正の X 軸が右を、正の Y 軸が上を向き、正の Z 軸がユーザーの方を向くことを意味します。


図 9: 3-D 座標系

Spatial Anchors(空間アンカー)

空間アンカーは実空間でユーザーがホログラムを配置した場所をマークするものを指します。三次元の座標 X、Y、Zで表現されます。ホログラムがアンカーの位置に合わせて表示されます。ホログラムを長期的に正しく表示するため、システムは継続的にアンカーの位置を追跡する必要となります。システムは実空間内の特徴点を利用してアンカーの位置の追跡を行います。理論的にアンカー情報を共有すれば、他のデバイスは実空間の同じ場所に別の視点でホログラムを見ることができます。空間アンカーを利用する際の注意点としては特徴点の少ない部屋では精度が低いです。また、家具配置が変更される場所では利用不可になります。


図 10: 実環境と取得した特徴点 (出典:マイクロソフト)


図 11: 安定した視覚的特徴のある/ない環境 (出典:マイクロソフト)

Azure Spatial Anchors(アジュール空間アンカー)

アジュール空間アンカーは現実空間をトラッキングしたデータ(空間特徴情報、アンカー情報等) をクラウド上で管理し、複数端末間で共有できるマイクロソフトクラウドのサービスの一つです。本サービスを利用することで、アンカー情報を複数端末で、永続的に利用することが可能になります。

Azure Spatial Anchors 利用の設定

以下の主なステップの通り、Azure Spatial Anchorsを利用することができます。
  • Microsoft Azure 無料アカウントを作成
  • Azure PortalでSpatial Anchors リソースを作成
  • アカウントIDとプライマリキーを取得
  • Unity上Azure Spatial Anchors SDKのUnityアセットパッケージをインポート
  • 取得したアカウントIDとプライマリキーを入力
  • セッションを作成、空間アンカーを作成、空間アンカーを Azureに保存

作業コンテンツの同期

Azure Spatial Anchorsだけを利用するとアンカー情報(コンテンツを表示する場所の位置)が更新されますが作業コンテンツ自体の状態が同期(リアルタイムに更新)されていません。そのため、Azure Spatial Anchors以外、複数端末間でリアルタイムにコンテンツの状態の更新をサポートできるプラットフォームが必要となります。

PUN – Photon Unity Network

Exit Games社(アメリカ/ドイツ)が提供するマルチプレイヤーゲーム対応の Unity ネットワークエンジンです。PUN(Photon Unity Network) を利用すると同室(ルーム)内複数プレイヤーにゲームオブジェクトの状態を底遅延で同期してくれます。

Photonにはロビーとルームという概念があります。ロビーはプレイヤーの待機空間、ルームは対戦部屋と考えると分かりやすいです。Photon接続と同時にロビーに入ることができます。ロビーに入らないとルームに対する操作(ルーム一覧、入室、作成)ができません。

PUNの同期仕組みはシンプルです。まず、特定のゲームオブジェクトを「ネットワーク対応」させます。ホロレンズ、スマホのそれぞれの端末で生成されるネットワーク対応化ゲームオブジェクト(プレハブ)の複製(インスタンス)がPUNに自動的に管理されます。PhotonViewコンポーネントを割り当てれば、ゲームオブジェクトの位置、向きやその他の値を生成されたインスタンスと同期することができます。


図 12: Photon Unity Network (出典:インターネット)

PUNの利用の設定

  • Photonサインインページへアクセスし、アカウントを作成
  • 作成したアカウントでログインをし、新規PUNアプリを作成
  • 作成が完了したPUNアプリのApp IDを取得
  • Unity上、Unity アクセスストアより「PUN2無料版」アセットをダウンロード&インポート
  • インポートした後のセットアップウィザードにてApp IDを入力
  • インポートしたアセットに含まれるNetworkLobby、SharedPlayground等のPrefab、コンポーネントを利用

Azure Spatial AnchorsとPUNの利用 – 全体の流れ

Azure Spatial AnchorsとPUNの両方を利用することで、ホロレンズとスマホ間に共同作業対象になる仮想コンテンツの位置及び状態をリアルタイムに同期できることになりました。それぞれのサービスに接続し、利用する順番は下記の写真の通りです。

  

図 13: Azure Spatial Anchors とPUNの結合

まとめ

今回はホロレンズ2の紹介そして共同作業に向けて他のスマートデバイス(スマホ)との組み合わせの実証実験を共有しました。未来の作業環境(MR空間)には人間、環境、コンピュター間の相互作用は最も重要な要素であり、またMR空間共有には空間アンカーの情報の共有の仕組み、仮想コンテンツの状態をリアルタイムに同期する仕組みは実現することの鍵になります。

最後に

次世代システム研究室では、グループ全体のインテグレーションを支援してくれるアーキテクトを募集しています。アプリケーション開発の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。

皆さんのご応募をお待ちしています。

 

Pocket