본문으로 바로 가기

마운트 및 워크스페이스 변환

두 가지 변환이 애플리케이션 공간에서 장치의 위치를 지정합니다. 파이프라인을 이해하면 올바른 변환을 선택하는 데 도움이 됩니다.

좌표 파이프라인​

단계역할설정 방법영구 저장 여부
기준 좌표계축을 재매핑합니다 (예: Z-up → Y-up)session.configure.basis — 튜토리얼 08 (HTTP 원격 구성)네
마운트 변환장치의 물리적 장착 오프셋 (암 위치, 회전, 스케일)configure.mount 또는 configure.preset — 튜토리얼 08 (HTTP 원격 구성)네
작업 공간 변환카메라 / 장면 탐색에 따른 드리프트commands.set_transform — 튜토리얼 09 (웹소켓 틱별 스트리밍)예 (값 유지)

마운트 변환​

마운트는 장치가 물리적으로 배치된 위치를나타냅니다. 즉, 암 오프셋, 방향, 스케일을 포함합니다. 한 번 설정되면(또는 사용자가 물리적 설치 구성을 변경할 때 설정되면), 실행 시에는 거의 업데이트되지 않습니다.

프리셋 (공장 기본 설정)​

마운트를 직접 계산하는 대신, 이름이 지정된 프리셋을 선택하십시오:

프리셋원점 배치암 방향
defaults장치 베이스전방 (암 앞면)
arm_front장치 베이스전방
arm_front_centered워크스페이스 중심전방
led_front장치 베이스LED 측면 전방
led_front_centered워크스페이스 중심LED 측면 전방
custom수동 — 마운트를 직접 설정—

프리셋을 사용하면 마운트, 기준 좌표계, 작업 공간 원점을 한 번에 설정할 수 있습니다.

마운트 직접 설정​

{
"inverse3": [{
"device_id": "049D",
"configure": {
"mount": {
"transform": {
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
}
}
}]
}
mount와 preset은 서로 배타적입니다

동일한 메시지에 두 가지를 모두 포함하면 의미가 모호해지므로, 서비스에서 이를 거부합니다. 둘 중 하나를 선택하십시오: 이름이 지정된 preset(마운트를 자동으로 설정함) 또는 명시적인 mount 변환.

명령과 스냅샷의 구조적 차이

마운트를 보내기 '때'는 변환을 감싸야 합니다: { "mount": { "transform": { … } } }. 스냅샷에서 마운트하기 읽을 ‘때’는 덮개 없이 평평한 구조입니다: { "mount": { "position": …, "rotation": …, "scale": … } }. 이는 의도된 설계입니다. 명령은 통합된 command_data 래퍼를 사용하고, 스냅샷은 core::transform을 직접 직렬화하기 때문입니다.

작업 공간 변환​

워크스페이스 변환은 마운트 위에 적용되는 런타임 드리프트입니다. 일반적인 사용 사례는 장면 탐색입니다. 즉, 장치를 물리적으로 제자리에 둔 채 애플리케이션 뷰를 패닝, 회전 또는 확대/축소하는 것입니다.

마운트 및 워크스페이스 변환은 모두 영구적입니다. 서비스는 마지막으로 전송된 값을 기억합니다. 차이점은 용도와 성능에 있습니다:

  • 마운트는한 번 설정되면 그대로 유지되도록 설계되었습니다. 이는 물리적 설치 구성을 나타내며, 드물게만 업데이트되도록 최적화되어 있습니다.
  • 워크스페이스 변환은높은 빈도로 스트리밍되도록 설계되었습니다(예: 카메라 탐색 중 매 프레임마다). 내부 파이프라인은 이러한 업데이트 주기에 맞춰 최적화되어 있습니다.
{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_transform": {
"transform": {
"position": { "x": 1.0, "y": 0.0, "z": 0.0 },
"rotation": { "x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
}
}
}]
}
스케일링은 힘의 출력에 영향을 미칩니다 — 대개 원하는 방향으로 작용합니다

마운트 또는 워크스페이스의 스케일을 조정하면 장치가 렌더링하는 힘이 달라집니다. 스케일 조정이 접촉력 계산에 사용되는 **관통 깊이(penetration depth)**에 영향을 미치기 때문입니다. 예를 들어 2x 스케일은 관통 깊이를 대략 절반으로 줄입니다(장치의 이동 범위에 비해 가상 장면이 두 배로 커지기 때문입니다). 따라서 결과적인 힘은 1x에서 느껴지는 힘의 대략 절반입니다. 반대로 0.5x 스케일은 힘을 대략 두 배로 만들어 줍니다.

이는 일반적으로 원하는 동작입니다. 햅틱 장면을 축소하면접촉이 자연스럽게 약해지고("더 멀리 있는" 상태입니다), 확대하면접촉이 더 강해집니다. 사용자가 확대/축소하는 동안 강성을 일정하게 유지해야 하는 등 원하는 동작이 아닌 경우에는, 힘 이득(gain)을 반대로 스케일링하여 보정하십시오.

자동 드리프트에는 내비게이션 모듈을 사용하십시오.

지속적인 이동(버블 내비게이션, 속도 제어 드리프트)이 필요한 경우, 틱마다 set_transform수동으로 스트리밍하는 대신 네비게이션 모듈을 사용하십시오. 이 모듈이 물리 연산, 햅틱 피드백, 작업 공간 경계 처리를 대신 담당합니다.