Azure Spatial Anchors에서 앵커 관계 및 길 찾기

앵커 관계를 사용하여 공간에 연결된 앵커를 만든 후 다음과 같은 질문을 할 수 있습니다.

  • 근처에 앵커가 있나요?
  • 얼마나 멀리 떨어져 있나요?

다음과 같은 경우에 연결된 앵커를 사용할 수 있습니다.

  • 작업자는 산업 공장에서 다양한 위치를 방문하여 수행하는 작업을 완료해야 합니다. 공장의 각 위치에는 공간 앵커가 있습니다. HoloLens 또는 모바일 앱을 사용하여 작업자를 한 위치에서 다른 위치로 안내할 수 있습니다. 앱은 먼저 근처 공간 앵커를 요청한 다음 작업자를 다음 위치로 안내합니다. 앱은 다음 위치에 대한 일반적인 방향 및 거리를 시각적으로 표시합니다.

  • 박물관은 공개 디스플레이에 공간 앵커를 만듭니다. 이러한 앵커는 모두 박물관의 필수 공개 디스플레이의 1시간 둘러보기를 형성합니다. 공개 디스플레이에서 방문자는 자신의 모바일 디바이스에서 박물관의 혼합 현실 앱을 열 수 있습니다. 그런 다음 휴대폰 카메라의 공간 주위를 가리켜 둘러보기의 다른 공개 디스플레이에 대한 일반 방향 및 거리를 확인합니다. 사용자가 공개 디스플레이 쪽으로 향하면 앱은 사용자를 안내하는 데 도움이 되도록 일반 방향 및 거리를 업데이트합니다.

길 찾기 설정

지침을 제공하기 위해 시선 방향 및 앵커 사이의 거리를 사용하는 앱은 길 찾기를 사용합니다. 길 찾기는 턴바이턴 탐색과는 다릅니다. 턴바이턴 탐색에서는 사용자에게 벽을 따라, 문을 통해, 층간을 안내합니다. 길 찾기를 통해 사용자는 대상의 일반 방향에 대한 힌트를 얻습니다. 그러나 공간에 대한 유추 또는 정보는 사용자가 대상까지 구조체를 탐색하는 데에도 도움이 됩니다.

길 찾기 환경을 구축하려면 먼저 환경을 위한 공간을 준비하고 사용자가 상호 작용할 앱을 개발합니다. 다음은 개념적 단계입니다.

  1. 공간 계획: 공간 내의 위치를 결정하는 것이 길 찾기 환경의 일부입니다. 이 시나리오에서 공장 감독자 또는 박물관 둘러보기 코디네이터는 길 찾기 환경에 포함할 위치를 결정할 수 있습니다.

  2. 앵커 연결: 선택한 위치를 방문하여 공간 앵커를 만듭니다. 최종 사용자 앱 또는 다른 앱의 관리자 모드에서 이 작업을 완전히 수행할 수 있습니다. 각 앵커를 다른 앵커와 연결 또는 결부시킵니다. 서비스는 이러한 관계를 유지 관리합니다.

  3. 최종 사용자 환경 시작: 사용자가 앱을 실행하여 선택한 위치 중 하나에 있을 수 있는 앵커를 찾습니다. 전반적인 디자인은 사용자가 환경을 시작할 수 있는 위치를 결정해야 합니다.

  4. 근처 앵커 찾기: 사용자가 앵커를 찾은 후에는 앱에서 근처 앵커를 요청할 수 있습니다. 이 절차는 디바이스와 이러한 앵커 간의 포즈를 반환합니다.

  5. 사용자 안내: 앱은 이러한 각 앵커에 대한 포즈를 사용하여 사용자의 일반 방향 및 거리에 대한 지침을 제공할 수 있습니다. 예를 들어 다음 이미지에 나와 있는 것처럼 앱의 카메라 피드에는 각 잠재적 대상을 나타내는 아이콘과 화살표가 표시될 수 있습니다.

  6. 지침 구체화: 사용자가 이동하면 앱은 주기적으로 디바이스와 대상 앵커 간에 새 포즈를 계산할 수 있습니다. 앱은 계속해서 사용자가 대상에 도착하는 데 도움이 되는 지침 힌트를 구체화합니다.

    An example of how an app can show way-finding guidance

앵커 연결

길 찾기 환경을 구축하려면 먼저 선택한 위치에 앵커를 배치해야 합니다. 이 섹션에서는 앱의 관리자가 이 작업을 이미 완료했다고 가정합니다.

단일 세션에서 앵커 연결

앵커를 연결하려면:

  1. 첫 번째 위치로 이동하고 CloudSpatialAnchorSession을 사용하여 앵커 A를 만듭니다.
  2. 두 번째 위치로 이동합니다. 기본 MR/AR 플랫폼이 이동을 추적합니다.
  3. 동일한 CloudSpatialAnchorSession을 사용하여 앵커 B를 만듭니다. 이제 앵커 A와 B가 연결되었습니다. Spatial Anchors 서비스는 이 관계를 유지 관리합니다.
  4. 나머지 앵커에 대한 절차를 계속합니다.

여러 세션에서 앵커 연결

여러 세션에 걸쳐 공간 앵커를 연결할 수 있습니다. 이 방법을 사용하면 일부 앵커를 한 번에 만들고 연결한 후 나중에 더 많은 앵커를 만들고 연결할 수 있습니다.

여러 세션에 걸쳐 앵커를 연결하려면:

  1. 앱은 하나의 CloudSpatialAnchorSession에서 일부 앵커(앵커 A와 B)를 만듭니다.
  2. 다른 시간에 앱은 새 CloudSpatialAnchorSession을 사용하여 이들 앵커 중 하나(예: 앵커 A)를 찾습니다.
  3. 새 위치로 이동합니다. 기본 혼합 현실 또는 증강 현실 플랫폼은 이동을 추적합니다.
  4. 동일한 CloudSpatialAnchorSession을 사용히여 앵커 C를 만듭니다. 이제 앵커 A, B, C가 연결되었습니다. Spatial Anchors 서비스는 이 관계를 유지 관리합니다.

시간이 지남에 따라 더 많은 앵커와 추가 세션에 대해 이 절차를 계속 진행할 수 있습니다.

앵커 연결 확인

CloudSpatialAnchorWatcher에서 NearAnchorCriteria를 설정하면 앱에서 근처 앵커에 대해 쿼리를 실행하여 두 개의 앵커가 연결되었는지 확인할 수 있습니다. 쿼리 결과에 대상 앵커가 포함되면 앵커 연결이 확인된 것입니다. 앵커가 연결되지 않은 경우 앱에서 다시 연결을 시도할 수 있습니다.

다음은 앵커 연결이 실패할 수 있는 몇 가지 이유입니다.

  • 기본 혼합 현실 또는 증강 현실 플랫폼은 앵커 연결 프로세스 중에 추적할 수 없습니다.
  • Spatial Anchors 서비스와 통신하는 동안 네트워크 오류가 발생하여 앵커 연결을 유지할 수 없습니다.

샘플 코드 찾기

앵커를 연결하고 근처 쿼리를 수행하는 방법을 보여 주는 샘플 코드를 찾으려면 Spatial Anchors 샘플 앱을 참조하세요.