디바이스 구성
디바이스 구성은 각 디바이스의 configure 맵(WebSocket)에 담아 보내거나, /{device_type}/{id}/config/{key} HTTP 라우트를 통해 전송합니다. 모든 항목은 **지속형(persistent)**입니다. 한 번 설정하면 변경할 때까지 유지됩니다.
구성 사용 가능 여부 매트릭스
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';
| 키 | WS configure | HTTP config/ | 세션 범위 | 비고 |
|---|---|---|---|---|
preset | ✓ | ✓ | ✓ | mount와 상호 배타적 |
basis | ✓ | ✓ | ✓ | 세션 수준 및 디바이스별 |
mount | ✓ | ✓ | ✓ | preset과 상호 배타적 |
damping | ✓ | ✓ | ✓ | 스칼라 및/또는 방향성 |
force_gate | ✓ | ✓ | ✓ | 진동 가드 |
handedness | — | ✓ | — | 디바이스 전역 (right/left) |
torque_scaling | — | ✓ | — | 디바이스 전역 |
gravity_compensation | — | ✓ | — | 디바이스 전역 |
home_return | — | ✓ | — | 펌웨어에서 아직 활성화되지 않음 |
navigation | ✓ | ✓ | ✓ | 모듈 → 별도 페이지 참고 |
preset
마운트, basis, 워크스페이스 원점을 한 번에 설정하는 이름이 지정된 공장 구성을 선택합니다. 전체 목록은 마운트 및 워크스페이스(프리셋)를 참고하십시오.
{ "inverse3": [{ "device_id": "049D", "configure": { "preset": { "preset": "arm_front_centered" } } }] }
curl -X POST "http://localhost:10001/inverse3/049D/config/preset?session=:0" \
-d '{"preset":"arm_front_centered"}'
basis
좌표축 재매핑을 설정합니다. 규칙 및 마이그레이션 참고 사항은 Basis 순열을 참고하십시오.
{ "session": { "configure": { "basis": { "permutation": "XZY" } } } }
디바이스별 basis도 지원됩니다:
{ "inverse3": [{ "device_id": "049D", "configure": { "basis": { "permutation": "XZY" } } }] }
curl -X POST "http://localhost:10001/inverse3/049D/config/basis?session=:0" \
-d '{"permutation":"XZY"}'
mount
물리적 마운트 변환을 재정의합니다. 좌표 파이프라인은 마운트 및 워크스페이스를 참고하십시오.
{
"inverse3": [{
"device_id": "049D",
"configure": {
"mount": {
"transform": {
"position": { "x": 0.0, "y": 0.0, "z": 0.0 },
"rotation": { "w": 1.0, "x": 0.0, "y": 0.0, "z": 0.0 },
"scale": { "x": 1.0, "y": 1.0, "z": 1.0 }
}
}
}
}]
}
curl -X POST "http://localhost:10001/inverse3/049D/config/mount?session=:0" \
-H "Content-Type: application/json" \
-d '{"transform":{"position":{"x":0,"y":0,"z":0},"rotation":{"w":1,"x":0,"y":0,"z":0},"scale":{"x":1,"y":1,"z":1}}}'
경고
mount와 preset은 상호 배타적입니다같은 메시지에서 둘 다 보내지 마십시오. 서비스가 이를 모호한 요청으로 판단하여 거부합니다.
damping
균일 댐핑과 방향성 댐핑을 모두 제어합니다. 최소 하나의 필드가 있어야 합니다.
{ "inverse3": [{ "device_id": "049D", "configure": { "damping": { "scalar": 0.5 } } }] }
방향성:
{ "inverse3": [{ "device_id": "049D", "configure": { "damping": { "vector": { "x": 0.0, "y": 1.0, "z": 0.0 } } } }] }
curl -X POST "http://localhost:10001/inverse3/049D/config/filters/damping?session=:0" \
-d '{"scalar": 0.5}'
force_gate
진동 가드 — 진동이 감지되면 힘 출력을 감쇠합니다.
| 값 | 효과 |
|---|---|
gain = 0.0 | 비활성화 — 힘이 원래 크기 그대로 전달됨 |
gain = 1.0 | 진동 중 최대 감쇠 |
{ "inverse3": [{ "device_id": "049D", "configure": { "force_gate": { "gain": 0.5 } } }] }
curl -X POST "http://localhost:10001/inverse3/049D/config/filters/force_gate?session=:0" \
-d '{"gain": 0.5}'
HTTP 전용 디바이스 구성
다음 설정은 디바이스 전역(세션 범위 아님)이며 HTTP를 통해서만 설정할 수 있습니다:
| 엔드포인트 | 본문 | 설명 |
|---|---|---|
POST /{type}/{id}/config/handedness | "left" 또는 "right" | Inverse3 주 사용 손(handedness) |
POST /{type}/{id}/config/torque_scaling | { "enabled": bool } | 토크 스케일링 활성화/비활성화 |
POST /{type}/{id}/config/gravity_compensation | { "enabled": bool, "scaling_factor": float } | 중력 보상 |
POST /{type}/{id}/config/home_return | { "enabled": bool } | 홈 복귀 (펌웨어에서 아직 활성화되지 않음) |
모든 엔드포인트는 GET(현재 값 조회), POST(설정), DELETE(기본값으로 재설정)를 지원합니다.