1
Immersal を活用した
AR クラウドな
システム開発と
ハンズオン!
Nisho Matsushita | HoloLab Inc. | Magic Leap Ambassador | 2021/04/22
ARヒノボル @liketableteninu
2
AR クラウド?
00
Hyper Reality, Keiichi Matsuda
3
Magicverse, LEAPCon
AR クラウドの構成要素
1. 現実空間のデジタルツイン
○ 静的な物体(建物など)や動的な物体(人や車など)のメッシュデータや各種センサから得ら
れるリアルタイムな情報(天気、運行情報)など
2. 現実空間での自己位置推定
○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど)
3. 現実空間へのデジタルコンテンツの配置、インタラクションと共有
○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション
4. 現実空間に情報を重畳表示するディスプレイ
○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス
■ 各種スマートフォン、 ARグラスなど
参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
6
Immersal とは
01
The Immersal SDK lets you map large, real-world spaces and then augment them
with digital content. These environments and scenarios can then be experienced
by anyone on an AR-capable mobile device or with glasses.
Map Augment Experience
https://immersal.com/ より引用
7
Immersal でできること
● 現実空間のスキャン(マッピング)
○ 広い屋外の空間でもスキャンができる(上限はある)
○ スキャンした空間のメッシュが作成できる
○ マップ作成アプリがストアで公開されている
● コンテンツの配置
○ スキャンした空間のメッシュがダウンロードできる
○ メッシュを参照しつつコンテンツの配置、アプリ制作ができる
● 自己位置推定
○ スキャンした空間内で自分のデバイスの位置情報を推定できる
○ スマホだけではなく、グラス型デバイスにも対応している
8
AR クラウドから見た Immersal
1. △ 現実空間のデジタルツイン
○ 静的な物体(建物など) や動的な物体(人や車など)のメッシュデータや各種センサから得ら
れるリアルタイムな情報(天気、運行情報)など
2. 〇 現実空間での自己位置推定
○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど)
3. △ 現実空間へのデジタルコンテンツの配置、インタラクションと共有
○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション
4. 現実空間に情報を重畳表示するディスプレイ
○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス
■ 各種スマートフォン、 ARグラスなど
参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
Immersal SDK の2つの API
Immersal’s
Cloud
Service
スキャン
済みマップ
①ここは
どこ? ②自己位置
AR端末
Immersal’s
Cloud
Service
スキャン
済みマップ
③自己位置
AR端末
①マップ
欲しい
②マップ
Core
Plugin API
REST API
10
Immersal SDK の2つの API
Immersal’s
Cloud
Service
スキャン
済みマップ
①ここは
どこ? ②自己位置
AR端末
Immersal’s
Cloud
Service
スキャン
済みマップ
③自己位置
AR端末
①マップ
欲しい
②マップ
Core
Plugin API
REST API
11
On-device Localization
On-server Localization
プラットフォーム毎のサポート状況
プラットフォーム On-device Localization On-server Localization
iOS 〇 〇
Android 〇 〇
Magic Leap 〇 〇
nreal 〇 〇
Huawei AR Engine 〇* 〇*
その他カメラ付きデバイス - 〇*
* 動作確認は行っていない
13
使い方入門
02
マップ作成
14
Mapper App
● スキャンしたい場所の写真を色々な方向から
接続的に撮影する
○ 写真上限 300 枚
● 対象物によって最適な撮影方法が異なる
● 詳細は公式ドキュメントで
● 作成したマップをサーバにアップロードできる
15
撮影の良い例悪い例
Automatic Mapping App
● カメラを向けてキャプチャをスタートすると自
動的に周辺情報を集めてくれる
○ 写真を手動でとる必要はない
● 撮影時に心がけることは同じ
● iOS は Test Flight、 Android は apk
● 制限*
○ 撮影枚数: 40 枚
○ * Unity プロジェクトが公開されているので、値は調
整可能
● 同一アプリで作成したマップで Localize を試
すことも可能
スキャンしたマップ情報一覧( map id、緯度経度、マップデータ、空間メッシュ等)
サーバとの通信に必要なトークン
17
サーバで生成された空間メッシュ
コンテンツ配置
19
Unity プロジェクトで空間可視化
● git にサンプルプロジェクトが用意されている
● ダウンロードした点群や空間メッシュは共通の原点が既に設定されている
20
Unity プロジェクトでコンテンツ配置
● 空間メッシュの下にコンテンツを配置すれば、空間を認識したときに想定通りの位
置に出現させられる
21
複数のマップ利用
22
複数のマップを利用する意味
● Immersal のマップを作成する際に撮影できる上限枚数は 300 枚
a. 作成できるマップの範囲には限りがある
● 複数マップを利用することで、より広範囲で自己位置推定が可能になる
23
複数のマップの2つの利用方法
1. Unity プロジェクト内でマップ間の位置合わせを行う
○ 対象マップのメッシュを取得し、 Unity 上で手動で位置合わせ
○ 間隔で位置合わせするため、ずれが発生しやすい
2. developer ポータルで対象マップの結合 (Stiching) を行い、一つの巨大なマップを
使う
○ 対象マップを選択後、 Align maps を実行
○ 結合が失敗する確率が高い(高度なフォトグラメトリ能力を要する)
24
Unity での手動位置合わせ(点群のみ)
25
Unity での手動位置合わせ(点群のみ)
26
人間には無理!!
Unity での手動位置合わせ(メッシュ)
27
Unity での手動位置合わせ(メッシュ)
28
なんとかなりそう...
実際に位置合わせした例
29
結合部分
注意点
30
● 動かすのはメッシュファイル自体ではなく、親の AR Map
○ AR Map の transform が動いていることを確認
これ
自己位置推定
31
自己位置推定の流れ
1. 端末のカメラ画像をサーバに送信
2. サーバが端末のマップ内位置を特定
3. 端末にマップ内位置を送信
4. 端末とマップの位置関係に基づき、端末内の
マップを再配置
5. 正しい位置にコンテンツが表示される
32
Immersal’s
Cloud
Service
スキャン
済みマップ
①ここは
どこ? ②自己位置
AR端末
REST API
自己位置推定前のコンテンツ表示
コンテンツが正しい位置に
表示されていない
現実の空間
空間の
スキャンデータ
とコンテンツ
自己位置推定後のコンテンツ表示
コンテンツが正しい位置に
表示される
現実の空間
空間の
スキャンデータ
とコンテンツ
地球上での
位置・方角
35
地球上での位置の取得方法
36
Y
Z
X
地球中心・地球固定座標系( ECEF)
/ 緯度、経度、高度(WGS84)
Z
X
Y
Cloud 座標系
PosMapToEcef
PosEcefToWgs84
地球上での方角の取得方法
Z
X
Y
Cloud 座標系
Y
Z
X
地球中心・地球固定座標系( ECEF)
/ 緯度、経度、高度(WGS84)
CompassHeading
デバイスの向き
デバイスの方角
38
位置共有
03
AR クラウドから見た Immersal
1. △ 現実空間のデジタルツイン
○ 静的な物体(建物など) や動的な物体(人や車など)のメッシュデータや各種センサから得ら
れるリアルタイムな情報(天気、運行情報)など
2. 〇 現実空間での自己位置推定
○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど)
3. △ 現実空間へのデジタルコンテンツの配置、インタラクションと共有
○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション
4. 現実空間に情報を重畳表示するディスプレイ
○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス
■ 各種スマートフォン、 ARグラスなど
参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
AR クラウドから見た Immersal
1. △ 現実空間のデジタルツイン
○ 静的な物体(建物など) や動的な物体(人や車など)のメッシュデータや各種センサから得ら
れるリアルタイムな情報(天気、運行情報)など
2. 〇 現実空間での自己位置推定
○ GPSだけではなく、カメラなどのセンサから高精度に位置を特定する技術( VPSなど)
3. △ 現実空間へのデジタルコンテンツの配置、インタラクションと共有
○ 同じ場所、時間に同じコンテンツを複数人で視聴、インタラクション
4. 現実空間に情報を重畳表示するディスプレイ
○ デジタルコンテンツを違和感なく現実に重畳させるためのデバイス
■ 各種スマートフォン、 ARグラスなど
参考: “ARKit and ARCore will not usher massive adoption of mobile AR”, Ori Inbar
これも実現したい
それぞれのデバイスで自己位置認識
建物周辺マップ
CGのクジラ
現実の建物
Immersal’s
Cloud
Service
②自己位置
①ここは
どこ?
Immersal’s
Cloud
Service
②自己位置
①ここは
どこ?
Cloud での
位置認識完了!
コンテンツを同じ位置で見られるようになる
建物周辺マップ
CGのクジラ
現実の建物
片方のデバイスでコンテンツを移動すると?
建物周辺マップ
CGのクジラ
現実の建物
動かす
片方のデバイスでコンテンツを移動すると?
建物周辺マップ
CGのクジラ
現実の建物
別の位置に見えてしまう
片方のデバイスでコンテンツを移動すると?
建物周辺マップ
CGのクジラ
現実の建物
原因: 位置共有がされていないから
Immersal で登場する座標系
46
Y
Z
X
Z
X
Y
Cloud 座標系
空間に固有の座標系。
空間に紐づいたコンテンツを
配置するために必要。
Z
X
Y
Tracker 座標系
デバイスに固有の座標系。
デバイス起動時の場所が原
点となる。
地球中心・地球固定座標系( ECEF)
/ 緯度、経度、高度(WGS84)
地球上での位置や方角が取
得できる
どの座標系で位置を共有すればよいか
● Tracker 座標系
○ デバイスごとに原点が異なるため、この座標でコンテンツ位置を共有すると、
同じ位置には出ない
(1, 1, 1)
(1, 1, 1)
Z
X
Y
Z
X
Y 共
有
どの座標系で位置を共有すればよいか
● Cloud 座標系
○ Cloud 座標系は空間に固有であるため、この座標で位置共有すると、自己位置推定が完了
しているデバイス間で、同じ位置に表示されるようになる
Z
X
Y
(1, 1, 1)
共
有
(1, 1, 1)
49
GMPとの
組み合わせで
AR クラウドに
近づく
04
Google Maps Platform Gaming Solution
Google Mapのデータで現実世界を舞台にしたゲームを作成できる開発ツール
● できること
○ 世界中の3D化された建物、道路、ランドマーク、公園、川などのデータを利用できる
○ 3Dデータの Material は変更可
Immersal と GMP を組み合わせる理由
建物のオクルージョン
Immersal と GMP を組み合わせる理由
Immersal と GMP を組み合わせる理由
オクルージョンなし
前に出てきてしまう
Immersal と GMP を組み合わせる理由
オクルージョンあり
建物に隠れる!
Immersal と GMP の組み合わせ方
● GMP で3Dデータを表示させるには、緯度経度と範囲情報が必要
● Immersal でスキャンした空間には緯度経度が紐づいている(※)ため、その値を利
用する。範囲は適当に
● ※ GPS は数m単位でのずれが発生してしまうので、そもそもスキャン時に紐づいた
緯度経度はずれている。空間原点と緯度経度をずれなく表示させるためには別途
オフセットが必要
GMPの3Dデータによるオクルージョン
オクルージョンマテリアル適用時
※Immersal で自己位置推定済み
デフォルトマテリアル適用時
まとめ
● Immersal のような VPS の登場で、 AR クラウドが現実味を帯びてきた
● コンテンツやデバイスの共有の実装や、 GMP の組み合わせで、Immersal では不
足している部分はある程度補える
○ しかし実際は如何に世界規模にスケールさせるかを考えると、共有部分のデータの持ち方や通信
の仕方で改善しなくてはいけないところがたくさん
● AR クラウドの実現のためにみんなで頑張りましょう!
58
Hands-on
59
THANK
YOU

Immersal を活用した AR クラウドなシステム開発とハンズオン!