본문으로 이동

제어 명령

이는 ‘사전’을 통해 전달되는 주기적이며 비영구적인 명령입니다. commands 각 기기의. 이 기준은 적용됩니다. 단 한 번, 그러다 잊혀지게 됩니다 — 전송을 중단하면 기기는 대기 상태로 돌아갑니다.

별도의 명시적 언급이 없는 한, 모든 제어 명령은 WebSocket 전용이며 (HTTP에 해당하는 명령은 없음), 이에 유의하시기 바랍니다.

set_cursor_force​

커서(종단 효과기)에 직교 좌표계 힘(카르테시안 힘)을 가한다.

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_force": {
"vector": { "x": 0.0, "y": 0.0, "z": 1.5 }
}
}
}]
}
챔프유형설명
vectorvec3적용 영역 내의 힘(뉴턴)

동일한 사이클 내에서는 힘이 합산됩니다. 여러 소스(사용자 애플리케이션, SDF HFX, 내비게이션)에서 발생하는 힘이 합산된 후 기기로 전송됩니다.


set_cursor_position​

커서를 사용하여 목표 위치로 이동하도록 명령합니다(위치 제어 모드).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_cursor_position": {
"position": { "x": 0.0, "y": -0.12, "z": 0.15 }
}
}
}]
}
챔프유형설명
positionvec3적용 영역 내 목표 위치(미터 단위)

이 기능은 커서를 목표 지점으로 이동시키는 데 필요한 힘을 계산합니다. 안전 궤적(safe-trajectory)이 활성화된 경우, 커서의 속도가 제한됩니다.


set_angular_torques​

세 관절에 대한 커플 적용 (각속도 제어 모드).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_torques": {
"torques": { "a0": 0.0, "a1": 0.0, "a2": 0.0 }
}
}
}]
}
챔프유형설명
torquesangles3관절 쌍

set_angular_position​

관절이 목표 각도에 도달하도록 제어합니다(각도 위치 제어 모드).

{
"inverse3": [{
"device_id": "049D",
"commands": {
"set_angular_position": {
"angles": { "a0": 30.0, "a1": 45.0, "a2": 60.0 }
}
}
}]
}
챔프유형설명
anglesangles3목표 관절 각도 (도)

set_transform​

작업 공간의 변환(기기 공간 → 애플리케이션 공간)을 정의합니다. 다른 명령들과는 달리, set_transform est 지속적인 — 이 서비스는 마지막으로 전송된 값을 저장합니다. 카메라가 이동하는 동안 해당 값을 지속적으로 전송하거나, 한 번만 전송한 후 그대로 두십시오.

{
"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 }
}
}
}
}]
}
Verse 그립 / 무선 Verse 그립

손잡이의 경우, 오직 rotation 어떤 효과가 있다. position et scale Inverse3 와의 일관성을 유지하기 위해 허용되지만, 핸들에 대해서는 아무런 영향도 미치지 않습니다.

자동 이동을 위해 ‘탐색’ 모듈을 사용하세요

지속적인 이동이 필요한 경우, 다음을 사용하십시오. 모듈 탐색 전달하기보다는 set_transform 수동으로 지속적으로 — 물리 엔진, 햅틱 피드백, 작업 공간 경계를 자동으로 처리해 줍니다.


probe_position / probe_orientation​

제어 명령을 전송하지 않는세션에 대해, 모니터링 목적으로만 사용되는 연결 유지(keepalive) 메시지 (예: 장치를 모니터링하는 Haply Hub).

{
"inverse3": [{ "device_id": "049D", "commands": { "probe_position": {} } }]
}
{
"verse_grip": [{ "device_id": "DEF456", "commands": { "probe_orientation": {} } }]
}
아마 필요하지 않으실 겁니다

세션에서 이미 모든 제어 명령을 전송하고 있는 경우 (set_cursor_force, set_cursor_position, 등), 응답이 있을 때마다 장치의 상태가 자동으로 업데이트됩니다. 센서는 읽기 전용 모니터링 세션에서만 유용합니다.