Haply 역 서비스
Inverse Service는 사용자의 컴퓨터에서 백그라운드 프로세스로 실행되며, Haply 햅틱 장치를 사용자의 애플리케이션에 실시간으로 연결해 줍니다. 애플리케이션 코드보다 하위 계층에서 장치 감지, 직렬 통신, 안전 모니터링, 상태 스트리밍을 모두 처리하므로, 사용자는 경험 구축에 집중할 수 있습니다.
요구 사항 및 호환성
이 서비스는 주요 데스크톱 플랫폼에서 실행되며,WebSocket 클라이언트와 JSON 파서를 갖춘 모든 프로그래밍 언어로제어할 수 있습니다:
- 플랫폼: Windows 10 이상(MSVC), Linux(
.deb(패키지), macOS - 언어: Python, JavaScript/TypeScript, C++, C#, Rust, Go, Java, … WebSocket 및 JSON을 지원하는 모든 언어
공식적으로 지원되는 연동
Haply는Haply Inverse Unity Package,Toia,Geomagic Freeform,NVIDIA Isaac Lab을 위한 공식 연동 기능을 제공하고 유지 관리하고 있습니다.
이 외에도 WebSocket 클라이언트와 JSON 파서를 갖춘 플랫폼이나 런타임이라면 이 서비스를 이용할 수 있습니다. 당사는언리얼 엔진(Unreal Engine),터치디자이너(TouchDesigner) 및 기타 실시간·시뮬레이션용 스택과 함께 사용해 작동 여부를 확인했습니다. 사용 중인 환경에서 WebSocket을 열 수 있다면 Inverse 디바이스를 조작할 수 있습니다.
각 언어별 샘플에 대해서는 공개 샘플 저장소를 참조하십시오: C++및Python.
통신 인터페이스
이 서비스는 두 가지 통신 채널을 제공하고 있습니다:
| 채널 | 포트 | 운송 | 용도 |
|---|---|---|---|
| 시뮬레이션 | 10001 | 웹소켓 | 실시간 명령어 / 상태 루프 (메시지 1개 입력 → 상태 1개 출력) |
| 이벤트 | 10020 | WebSocket (읽기 전용) | 시스템 이벤트: 안전, 배터리, 연결, 전송 속도 경고 |
| HTTP | 10001 | REST | 상태 비의존적 설정 쿼리, 설정, 세션 관리, 기기 정보 확인 |
모든 페이로드는 JSON 형식입니다. 표준 엔벨로프, 포트 및 콘텐츠 유형에 대한 규칙은JSON 규약을참조하십시오.
사용 사례
| 목적 | 시작 지점 |
|---|---|
| 힘이나 위치의 목표값을햅틱 장치로전송 | 실시간 제어 |
| 설정: 베이스, 마운트, 프리셋, 필터 | 세션 설정 |
| 장면 이동(속도 제어를 통한 이동) | 네비게이션 모듈 |
| 시스템 이벤트 수신(안전, 배터리, 연결) | 이벤트 및 모니터링 |
| 샘플로 배우기 | 튜토리얼 |
좌표계
Haply의 내부 좌표계는우수계이며, Z축이 위쪽을 향합니다(+X는 오른쪽, +Y는 정면, +Z는 위쪽).단일 기저 변환을 사용하여애플리케이션의 좌표계로 변환할 수 있습니다. 한 번 설정하면 모든 입력과 출력이 자동으로 변환됩니다.
씬 내에서 디바이스의 위치를 결정하는 변환은 두 가지가 있습니다:
- 마운트 — 장치의 물리적 오프셋(프리셋을 통해또는 명시적으로 설정)
- 작업 공간 — 카메라/씬 탐색을 위한 런타임 드리프트(수동 또는탐색 모듈을 통해 설정)
좌표 변환 파이프라인 전체에 대해서는 ‘마운트’와 ‘작업 공간’을참조하십시오.
서비스 실행
Inverse Service는 두 가지 모드로 실행할 수 있습니다:
- Haply Hub에 통합(권장) — Haply Hub에는최신 서비스 버전이 포함되어 있으며, Hub가 열려 있을 때 자동으로 실행됩니다. 수동 설정은 필요하지 않으며, 항상 최신 수정 사항을 이용할 수 있습니다.
- 독립 실행형 — Inverse Installer를 사용하여특정 서비스버전을 Windows 서비스 또는 Unix 데몬으로 설치합니다. CI, 헤드리스 환경으로의 배포, Hub가 실행되지 않는 컴퓨터에서 사용할 때 유용합니다.
독립형 서비스 관리
Windows — 서비스 앱을 엽니다: Win+R을 누르고,services.msc라고 입력한 후, “Haply Inverse Service”를 찾아 마우스 오른쪽 버튼을 클릭하고 “시작”, “중지”, “다시 시작”을 선택합니다.
리눅스 (systemd):
systemctl start haply-inverse-service.service
systemctl stop haply-inverse-service.service
systemctl restart haply-inverse-service.service
systemctl enable haply-inverse-service.service # auto-start on boot
API 참조(전체 버전)
모든 엔드포인트 및 메시지에 대한 기계 판독 가능한 전체 사양은 다음과 같습니다:
- HTTP API 참조 (OpenAPI) — 대화형 Swagger UI
- 시뮬레이션 API 참조 (AsyncAPI) — 대화형 AsyncAPI 뷰어