Upgrade to Pro — share decks privately, control downloads, hide ads and more …

誰でも作成・共有できるARナビゲーション

 誰でも作成・共有できるARナビゲーション

2020/12/10 13:00-13:50 XR Kaigi 2020 コミュニティオーガナイズドセッション「HoloLens MeetUp」の資料です。
https://online.xrkaigi.com/seminars/47

ナビ作成
https://youtu.be/XvwJyh8ywaA

ナビ表示
https://youtu.be/olPPcjvHlmc

iOS版
https://twitter.com/sotongshi/status/1278877352932413440

自動運転
https://twitter.com/sotongshi/status/1220311764723650560

Satoshi Gachi Fujimoto

December 10, 2020
Tweet

More Decks by Satoshi Gachi Fujimoto

Other Decks in Technology

Transcript

  1. これからのナビゲーション As is ・2Dマップ ・3DだけどリアルではないCG ・GPSは使えない ・屋外よりも屋内は複雑 ・家具などの移動、増築やリフォーム ・ビーコンやQRコードの設置 ・計測精度はメートル

    To be • 3Dマップ • リアルのカメラ映像に被せる • GPS連携で屋内外をシームレスに繋ぐ • 複雑なところをARでわかりやすく • マップは随時更新 • 機器の設置はいらない • 計測精度はセンチ以下
  2. アプリのフロー • ナビの作成 • 新規作成ボタンを押す • 最初のアンカーを配置(マップ情報が足りなければ周辺を見渡す) • Azure Spatial

    AnchorsからアンカーIDを取得 • 顧客ID、アンカーID、アンカー番号をDBに登録 • 次のアンカーを配置、もしくは保存ボタンで終了 • ナビの共有 • メニューからナビを選ぶ • 周辺を見渡し、アンカーを検索 • 見つかったアンカーを表示 • 終了ボタンで終了
  3. システム構成 • HoloLens2 • Unity 2019.4.1f1 • MRTK 2.4.0 •

    Azure Spatial Anchors 2.4.0 API DB Azure Spatial Anchors
  4. ナビの作成 1.「新規作成」ボタンを押す(OnCreateAnchorsを実行) • CloudManager.StartSessionAsyncでセッションを開始 • DBに顧客IDとナビID、ナビ名を登録 • アンカー用のTapToPlaceCubeが生成され、目の前にCubeが現れる • currentAppStateをDemoStepPlacingLocalAnchorに変更

    2.エアタップでTapToPlaceCubeの配置(OnCreateAnchorsを実行) • OnSelectObjectInteractionを実行 • currentAppStateをDemoStepSaveCloudAnchorに変更 • SaveCurrentObjectAnchorToCloudAsyncでクラウドにアンカーを保存 • Azure Spatial AnchorsからアンカーIDが返ってくる • DBにナビID、アンカーID、アンカー番号を登録 • currentAppStateをDemoStepCreateLocalAnchorに変更 DemoStepCreateSession アプリの状態遷移(AppState) DemoStepPlacingLocalAnchor
  5. ナビの作成 3.「次へ」のボタンを押す(OnCreateAnchorsを実行) • TapToPlaceCubeを複製 • currentAppStateをDemoStepPlacingLocalAnchorに変更、2へ 4.「保存」ボタンを押す(OnStopCreateAnchorsを実行) • 配置したTapToPlaceCubeを削除し •

    CloudManager.StopSessionでセッションを終了 • currentAppStateをDemoStepCreateSessionに戻す DemoStepCreateLocalAnchor DemoStepCreateLocalAnchor アプリの状態遷移(AppState)
  6. ナビの共有 1.ナビ一覧からナビを選択 • ナビIDに紐づくすべてのアンカーを取得 • CloudManager.StartSessionAsyncでセッションを開始 • CreateWatcherの実行(アンカーの検索は一度に35個まで) • CreateWatcherで周辺を見渡しアンカーが見つかるとOnCloudAnchorLocatedが

    実行されCubeを表示する • currentAppStateをDemoStepLookingForAnchorに変更 2.「終了」ボタンでナビの終了 • 表示しているCubeを削除 • CloudManager.StopSessionでセッションを終了 • currentAppStateをDemoStepCreateSessionに戻す DemoStepCreateSessionForQuery DemoStepStopSessionForQuery アプリの状態遷移(AppState)
  7. 今後の展望 • アンカーの周りに他のコンテンツを配置 • 3DオブジェクトやPDF、動画、画像など • ブラウザやPowerBI、PowerAppsなどのウェブアプリ • ナビIDを含んだQRコード読み取ることでログインしなくても誰でも共有 •

    ナビの編集(アンカーの位置修正やアンカーを増やしたりなど) 参考まで • iOS版(https://twitter.com/sotongshi/status/1278877352932413440) • 自動運転(https://twitter.com/sotongshi/status/1220311764723650560)