点群位置合わせ - ntuf/Tips GitHub Wiki

基準点をおいてそこからの相対位置から位置合わせする。
 それぞれのHololens同士で同じ位置に基準点のアンカーを設置する必要がある
 

BCPD(Bayesian Coherent Point Drift)

■ARCore Cloud Anchorの位置合わせ、位置共有
Room 閉じた系の中ではオブジェクトの座標が一致するが、ルーム自体の
現実空間との座標は関係がない。
位置合わせはしない

1. デバイスA(ホスト)がルーム(Room)を作成します
2. デバイスA(ホスト)で共有したい空間を検知して、アンカーを作成します
3. デバイスA(ホスト)がアンカーをGCPにアップロードして、クラウドアンカーIDを取得します
4. デバイスB(クライアント)はデバイスAのIPアドレス及びルーム番号をを用いてデバイスAに接続します
5. デバイスAはクラウドアンカーIDをデバイスBに送付します
6. デバイスBはGCPにアクセスしてクラウドアンカーIDで探し、IDに紐づくアンカーの情報を取得します
7. アンカーからポーズの情報を取り出し、リアルタイムにARコンテンツのポーズに反映します。
8. デバイスBのARCoreは自らカメラで撮った画像と内装センサーのデータも同時に利用して、アンカーの追跡を継続的に行います。

■ARKitの位置合わせ、位置共有
ARkit2.0から追加されたARWorldMapを使うと
ARKitで取得した空間情報をもとにして位置の共有ができるようになりました。
ARWorldMapはどうやって共有しているのか?

ARWorldMapには、物理的な空間情報と空間の特徴点を記録したARAnchorが埋め込まれている

ARKit上AR空間共有機能のキーワードは3つ
・マルチピアコネクティビティ(MultipeerConnectivity)
   近くのデバイスによって提供されるサービスの検出をサポートし、
  メッセージベースのデータ、ストリーミングデータ、およびリソース(ファイルなど)を介して
  それらのデバイスとの通信をサポートするフレームワーク
・ARワールドマップ(ARWordMap)
  ARKitが実際の空間でユーザーのデバイスのポーズを推定するのに使用する
  すべての空間内の特徴の情報のスナップショット
・リローカライズ(Relocalize)
  受信デバイスは、マルチピアセッションに参加している別の参加者から
  送信されたワールドマップの情報を受信した後、
  そのワールドマップ内に自分の位置と向きを再推定することを指します。

ARバトルで

⚠️ **GitHub.com Fallback** ⚠️