질문과 대답

이 설명서에 사용된 정의:

포즈 – 위치와 방향입니다.

홀로그램 - 표시되는 가상 개체입니다.

현실 세계 - 물리적 세계입니다.

물리적 세계 - 현실 세계입니다.

가상 세계 - 인공적으로 생성되고 시뮬레이션된 세계가 전자 미디어를 통해 표현된 것입니다.

가상 세계 마커 - 가상(모델링) 좌표계의 포즈입니다. 즉, 기준 위치와 방향입니다.

실제 마커 - 가상 세계 마커에 해당하는 실제 환경 및 카메라를 기준으로 하는 포즈입니다. 실제 마커의 포즈는 감지된 데이터의 일부 조합에 의해 설정됩니다.

가시적 피쳐 - 시각적으로 인식할 수 있는 물리적 세계의 피쳐입니다.

World Locking Tools의 기능은 무엇입니까?

World Locking Tools는 가상 및 실제 마커 간의 불일치를 고려하여 가시적인 불일치를 최소화하는 안정적인 좌표계 및 카메라 조정을 제공합니다.

다시 말해서, 각 개체 그룹을 그룹의 개별 앵커로 잠그는 대신 전체 장면을 공유 앵커 풀로 월드 고정합니다.

가상 및 실제 마커가 일치하지 않는 이유는 무엇인가요?

Microsoft Mixed Reality 속의 많은 놀라운 기술 중에서도 외부 디바이스의 지원 없이 물리적 세계에서 헤드셋의 포즈를 실시간으로 추적하는 기능은 특히 놀랍습니다.

머리 추적 시스템은 물리적 환경에서 알려진 가상 참조 지점을 기준으로 머리의 포즈를 결정할 때 놀라운 정확도를 제공합니다. 이 설명에서는 이러한 가상 참조 지점을 "가시적 피쳐"라고 합니다.

사용자가 주변의 가시적 피쳐를 기준으로 알려진 위치를 떠날 때(예: 사용자가 방을 돌아다니다가 동일한 위치로 돌아갈 경우) 시스템은 동일한 가시적 피쳐의 대부분을 인식합니다. 또한 현재 머리 포즈를 기준으로 가시적 피쳐의 포즈를 놀라운 정확도로 파악할 수 있습니다.

이제 추적기 시스템은 이러한 피쳐와 머리의 상대적인 위치를 알고 있지만 머리 또는 피쳐의 좌표가 무엇인지 절대적으로 알지는 못합니다. 물리적 세계에는 절대 좌표계가 없으므로 정답이 없습니다. 따라서 추적 시스템은 최근 기록과 일치하지만 모든 기록에서 일치하지 않을 수 있는 좌표를 할당합니다. 즉, 똑같은 포즈로 돌아갈 때 머리의 좌표가 떠나기 전과 다를 수 있습니다. 이는 일종의 센서 드리프트입니다.

그러나 예를 들어 새 머리 가상 포즈 좌표가 양수 X로 이동한 경우 해당 가상 좌표계에 고정된 모든 홀로그램 개체는 이제 머리에 상대적인 음수 X로 이동됩니다. 즉, 머리 추적기를 착용한 관찰자의 경우에는 현실 세계를 기준으로 걷기 전 위치보다 이동되었을 것입니다.

Unity에서 이 작업을 처리할 수 있나요?

예, 하지만 제한 사항이 있습니다. Unity는 이 문제를 처리하기 위해 공간 앵커라고 하는 뛰어난 메커니즘을 제공합니다. 물리적 공간을 기준으로 가상 공간이 이동한 경우 공간 앵커는 물리적 공간에 고정된 상태를 유지하려면 기본 가시적 피쳐를 추적하여 가상 공간에서 자체적으로 이동해야 하는 것을 알고 있습니다. 공간 앵커에 연결된 모든 항목도 Unity의 가상 공간을 통해 드래그되어 물리적 공간에 고정된 상태로 유지됩니다.

이 제한 사항은 가시적 피쳐가 머리 추적기의 카메라와 멀리 떨어져 있을 때 불안정해진다는 사실과 관련이 있습니다. 당연한 것이죠. 표시되지 않는 가시적 피쳐는 불량한 참조 지점을 만듭니다.

따라서 공간 앵커의 유용한 범위는 3미터로 제한됩니다. 애플리케이션의 정확도 요구 사항에 따라 사용 가능한 범위가 줄어들 수 있습니다.

괜찮은 것 같은데 문제가 무엇인가요?

괜찮은 정도가 아니라 훌륭하죠. 하지만 공간 앵커가 만족스러운 솔루션을 제공하지 않는다는 중요한 문제가 있죠.

첫째, 각 공간 앵커는 Unity의 가상 좌표 공간을 독립적으로 이동하여 물리적 세계에서 고정 상태를 유지하려고 합니다. 즉, 독립적으로 고정된 개체가 물리적 위치를 유지하려고 할 때 서로 상대적으로 이동합니다. 정확한 레이아웃을 유지하려는 애플리케이션의 경우 이는 큰 문제가 될 수 있습니다.

둘째, 제한된 범위의 단일 공간 앵커는 해당 공간 앵커의 사용 가능한 범위보다 큰 단일 개체에 대해 좋은 결과를 제공하지 않습니다. 공간 앵커 근처의 개체에 있는 포인트에서는 월드 고정이 잘 유지되지만 레버 암 효과로 인해 공간 앵커에서 더 멀리 떨어져 있는 포인트에서는 오류가 계속 증가합니다. 이로 인해 강력한 월드 고정 솔루션이 없는 1미터보다 큰 개체 또는 개체 컬렉션이 남습니다.

또 어떤 문제가 생길 수 있나요?

World Locking Tools에는 이전에 사용한 포즈로 돌아갈 때 가상 좌표계를 이전의 물리적 세계에 상대적인 위치로 복원할 수 있는 충분한 정보가 있습니다. 따라서 가상 세계에 고정된 홀로그램이 물리적 세계에서도 고정됩니다.

그러나 편도 이동뿐만 아니라 왕복 이동에서도 드리프트가 발생할 수 있습니다.

구체적인 예로, 물리적 공간에 배치된 두 QR 코드 사이의 10미터를 측정하고 가상 공간에서 10미터 떨어진 두 개의 상자를 모델링하는 경우를 고려해 보세요. 그러나 런타임에 가상 공간의 머리 포즈 드리프트로 인해 QR 코드 사이의 10미터를 걸으면 가상 공간에서 11미터를 이동합니다.

이 애플리케이션은 이를 해결하기 위해 가상 공간의 거리를 물리적 공간의 거리로 보정하는 정보를 제공하여 World Locking Tools의 기능을 옵트인할 수 있습니다. World Locking Tools에서 제공하는 동작은 첫 번째 QR 코드 위에 서서 아래를 내려다보면 첫 번째 상자가 표시되는 것입니다. 물리적 세계에서 10미터를 걸으면 가상 공간에서 여분의 미터가 조용히 흡수되어 머리도 가상 공간에서 10미터 이동됩니다. 따라서 두 번째 실제 QR 코드에 도달하고 아래를 내려다보면 두 번째 가상 상자가 예상대로 존재합니다.

지상 실측 데이터가 없는 모든 앵커는 두 QR 코드 간의 경로에 전달되므로 적절한 조정이 이루어집니다. 물론 이러한 조정은 인식을 최소화하기 위해 매끄럽게 적용됩니다.

실제 마커가 안정적이지 않으면 어떻게 해야 할까요?

또한 실제 마커가 동적으로 업데이트되는 경우 World Locking Tools는 공간 프레임 및 카메라 조정을 현재 구성과 최적으로 일치하도록 조정할 수 있습니다.

예를 들어 HoloLens에서는 실제 마커가 공간 앵커인 경우 시간이 지남에 따라 드리프트됩니다. 또한 다시 설정(예: 루프 닫기)되는 경우나 다른 상황에서도 이동합니다. World Locking Tools는 포즈가 업데이트됨에 따라 감지된 공간 앵커와 가상 앵커 간의 인식된 불일치를 최소화하기 위해 카메라를 이전과 같이 조정하여 보정합니다.

앵커 위치의 업데이트에 대한 이러한 보상은 마커에 대한 지상 실측 데이터가 없는 경우에도 발생할 수 있습니다. 암시적 지상 실측 데이터는 실제 마커 간의 현재 관계가 (더) 정확하다는 것입니다.

불일치가 악화되면 어떨까요?

World Locking Tools는 실제 마커와 가상 마커 간의 불일치가 크고 개선될 수 있는 여러 시나리오를 검색할 수 있습니다. 예를 들어 이전에 격리된 두 마커 풀 간의 공간 관계를 설정하는 자세한 정보를 얻을 수 있습니다. 또는 루프 폐쇄는 엔드포인트가 충족될 수 있도록 마커의 경로 이동을 제안할 수 있습니다.

이러한 경우 World Locking Tools는 잠재적인 수정 사항을 클라이언트에 알리고, 클라이언트의 요청 시 수정을 수행하고, 가상 마커를 추적하는 개체에서 수행해야 하는 조정을 클라이언트에 알립니다. World Locking Tools는 클라이언트가 이러한 수정을 요청할 때까지(있는 경우) 인식된 불일치를 계속 최소화합니다.