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

Spatial Anchorsを活用した経路探索の検討

Spatial Anchorsを活用した経路探索の検討

2020/4/6に開催したKumamoto HoloLens ミートアップ vol.6での登壇資料

shota-yano

April 06, 2020
Tweet

More Decks by shota-yano

Other Decks in Technology

Transcript

  1. Spatial Anchorsを活用した
    工場内倉庫での経路案内の検討
    2020/4/6
    KumaMCN 矢野翔大

    View full-size slide

  2. 自己紹介
    • 矢野翔大
    • KumaMCN
    • 株式会社KIS
    • 製造業向けのMESシステム作ってます
    • xR全く関係ない仕事です
    • 最近やったこと:
    • Dynamics365 Guides + Field Service
    • StandardShaderを少し
    StandardShader
    Dynamics365 Guides
    @Shota7Y

    View full-size slide

  3. Spatial Anchorsについて

    View full-size slide

  4. Spatial Anchorsとは
    • 現実の空間にデジタル情報を固定する
    • 空間の特徴点を利用
    • ARのマーカーのようなもの
    • 特徴が一致した場所にデジタル情報を表示
    • マルチデバイスでシェアリング可能
    • Hololens
    • Android(ARCore)
    • iOS(ARKit)

    View full-size slide

  5. Spatial Anchorsを使ったシナリオ
    空間共有 道案内 IoTへの活用

    View full-size slide

  6. Spatial Anchorsを使ったシナリオ
    空間共有 道案内 IoTへの活用
    今回はこれに注目

    View full-size slide

  7. Spatial Anchorsで経路案内にチャレンジ

    View full-size slide

  8. 経路案内をやろうと思ったきっかけ
    • 仕事で製造業のシステムを開発してる
    • 製造・流通の現場として工場や物流センターに行くことがある
    • 工場内は歩ける経路が決まっている
    • システム保守やピッキング作業で工場や倉庫内を歩き回るのに使えると面白そう
    ⇒会社で今期の研究開発のネタにしたい
    ※やりたい人が好きに研究開発していい制度があって丁度良い
    ※会社がやってない分野でもOK
    ※実地テストとかは個人より会社としてのほうが都合が良い

    View full-size slide

  9. 事前にやったこと
    • チュートリアルやる
    • MRTKのチュートリアルをやる
    • https://docs.microsoft.com/en-US/windows/mixed-reality/mrlearning-asa-ch1
    • 結構きれいにまとまっててめっちゃわかりやすい(個人の意見です)
    • 基本的なことはこれだけやればだいたい理解できた
    • 公式ドキュメントとサンプルを見る
    • https://docs.microsoft.com/ja-jp/azure/spatial-anchors/
    • これで近くのアンカーを探すデモが役に立った

    View full-size slide

  10. 今回試したこと
    • 4つのアンカーを登録
    • 2ルート作成
    • ルート1:1→2→4
    • ルート2:3→2→1
    1
    2
    3
    4

    View full-size slide

  11. ルート1
    1
    2
    3
    4
    4
    2
    2
    1
    ※写真は実際に検索したときのもの

    View full-size slide

  12. ルート2
    1
    2
    3
    4
    3
    2
    2
    1
    ※写真は実際に検索したときのもの

    View full-size slide

  13. MRTKのチュートリアルを参考にしました

    View full-size slide

  14. アンカー登録の仕組み
    ③登録 ④ID払い出し
    ②空間特徴点取得
    ①アンカー設置
    SpatialAnchor

    View full-size slide

  15. アンカー検索の仕組み
    ④アンカー設置
    ③空間特徴点取得
    ①IDで検索 ②データ受信
    SpatialAnchor

    View full-size slide

  16. 特定ルートのアンカーを探そうとして躓いた…
    • NearAnchorCriteriaクラス
    • ソースアンカー
    • 距離
    • 最大数
    ※特定アンカーの近くのアンカーを検索
    ルート1のアンカーを取得したい
    • ソースアンカーはアンカー1
    →結果:全アンカー取れた
    ※アンカー3はいらない…どうすれば?
    1
    2
    3
    4

    View full-size slide

  17. ウェイファインディングについておさらい

    View full-size slide

  18. ウェイファインディングについておさらい
    書いてあることは理解できるけど、
    実際どうやるんだろう・・・?

    View full-size slide

  19. ウェイファインディングについておさらい
    なるほど!

    View full-size slide

  20. NearAnchorCriteriaクラスは使えない?
    • ルート1と2の共通アンカーがある
    • アンカー1
    • アンカー2 1
    2
    3
    4

    View full-size slide

  21. NearAnchorCriteriaクラスは使えない?
    • ルート1のアンカーを登録
    • アンカー3は登録しない
    1
    2
    3
    4

    View full-size slide

  22. NearAnchorCriteriaクラスは使えない?
    • アンカー3だけ登録
    • この場合他とリンクされない
    • 経路案内の場合リンクは必須 1
    2
    3
    4

    View full-size slide

  23. NearAnchorCriteriaクラスは使えない?
    • アンカー2を取得後3を登録
    • アンカー2と3がリンクされる
    • アンカー2は全部とリンクしてる?
    • ちゃんと確かめる必要がありそう
    1
    2
    3
    4

    View full-size slide

  24. NearAnchorCriteriaクラスは使えない?
    • アンカー2を取得後3を登録
    • アンカー2と3がリンクされる
    • アンカー2は全部とリンクしてる?
    • ちゃんと確かめる必要がありそう
    1
    2
    3
    4
    後日談というわけではないですが、
    ミートアップ後「このリンク」に関する認識は違うことがわかりました。
    ※@takabrz1さんに教えていただきました。感謝!

    View full-size slide

  25. とりあえず今回はIDでアンカーを検索
    • アンカーIDをすべて保存
    • Table Storageに放り込む
    • CosmosDB(無料版)でもいい
    • ルートに必要なIDを配列でもつ
    • ルート1:1,2,4のID
    • ルート2:3,2,1のID
    ※配列の作り方は次のスライドで
    • 対象ルートのIDをもとに検索
    • 中継点が増えると検索回数も増える
    1
    2
    3
    4
    ↓Table Storageの中身

    View full-size slide

  26. マップを作る
    1
    2
    3
    4
    ID From T0
    1 アンカー1 アンカー2
    2 アンカー2 アンカー4
    3 アンカー3 アンカー2
    4 アンカー2 アンカー1
    5 アンカー2 アンカー3
    ルートに必要なIDの配列を作るために
    • 繋がってるアンカーをテーブルに入れて整理
    • ダイクストラ法で最短の経路を探索
    • 出発地点
    • 目標地点
    • 重みは1
    • 検索結果でヒットしたIDを配列に入れる
    ↓テーブルイメージ

    View full-size slide

  27. • MRTKのチュートリアルは最初の一歩に最適
    • 経路探索には使える
    • ただし、異なるルートで共通したアンカーをつか場合は注意が必要
    • とりあえず経路探索はこの4ステップでやる
    • 使うアンカーを全部登録する
    • アンカーのつながりをFrom/Toで整理する
    • ダイクストラ法で最短経路を検索し、必要なIDを取得
    • 取得したIDをもとにアンカー検索
    まとめ

    View full-size slide

  28. • アンカー増やして複雑な経路にする
    • QRコード読み取り
    • 出発地点
    • 目標地点
    • リストのQRで目的地を検索したい
    • 既存運用に載せる場合紙がまだ多い
    • 多分小さいQRはHololensではまだ読めない?
    • QRスキャナを別にするか、全部WEBアプリにするか…
    • 実地テストしてみたい
    XXX作業リスト
    作業番号:abcdef
    ピッキング品
    品目A
    数量 ロケーション
    10 Location01
    品目B 15 Location04
    品目C 8 Location07
    今後試したい

    View full-size slide

  29. ありがとうございました
    (HoloLens2が早く欲しい)

    View full-size slide