본문으로 건너뛰기

v3.5.3

3.5.3은 패치 릴리스입니다. 주요 변경 사항은 쌍을 이룬 Inverse3 + 그립 세트의 한쪽을 교체할 때 다시 페어링되는 더 스마트해진 자동 페어링, 유선 Verse Grip에서 발생하던 잘못된 배터리 경고 제거, 지원되지 않는 명령을 조용히 버리지 않는 명확해진 펌웨어 기능 검사, 연결 시 더 안정적인 상태 LED, 그리고 충돌 없는 서비스 중지 및 재시작입니다. 또한 여러 장치 및 직렬화 수정 사항과 바이트 수준의 와이어 포맷 관련 참고 사항 몇 가지도 포함되어 있습니다.

주요 내용​

  • 세트의 한쪽을 교체하면 자동 페어링이 다시 수행됩니다. 자동으로 페어링된 Inverse3 + Verse Grip 세트에서 장치 하나가 교체되면, SDK는 오래된 페어링을 제거하고 새로 연결된 장치와 다시 페어링합니다. 수동 페어링은 변경되지 않습니다.
  • 유선 Verse Grip에서 잘못된 배터리 경고가 더 이상 발생하지 않습니다. 배터리 부족 및 배터리 위험 알림은 이제 무선으로 연결된 Verse Grip에 대해서만 발생합니다. 유선 Verse Grip은 더 이상 잘못된 배터리 부족 또는 배터리 위험 경고를 발생시키지 않습니다.
  • 펌웨어 기능 검사가 명확해졌습니다. 펌웨어가 너무 오래되어 실행할 수 없는 햅틱 기능을 장치에 요청하면 -- 7.5 이전 펌웨어의 균일 또는 방향성 댐핑, 7.4 이전 펌웨어의 홈 복귀 -- 이제 요청을 조용히 무시하면서 200을 반환하는 대신, HTTP 422 응답과 함께 device-protocol-unsupported 이벤트가 발생합니다.
  • 연결 시 상태 LED가 더 안정적입니다. Inverse3 상태 LED는 연결하거나 다시 연결할 때마다 빨간색으로 깜빡이지 않습니다. 연결은 웨이크업 후 약 5초간의 안정화 구간 동안 유지되므로, 펌웨어의 연결 워치독이 더 이상 트리거되지 않습니다.
  • 서비스 중지 및 재시작 시 충돌이 없습니다. 서비스를 중지하고 재시작해도 더 이상 충돌하거나 멈추지 않습니다. 서비스를 켜고 끌 때 발생하던 패닉 및 멈춤 현상을 없애기 위해 종료 및 재시작 경로를 재작업했습니다.

내부 개선 사항​

  • 클러치 내비게이션 모드(실험적, 기본적으로 꺼짐). 실제 장치가 계속 움직이는 동안 운영자가 서비스가 장면으로 내보내는 움직임을 축소하거나 완전히 고정할 수 있는 새로운 내비게이션 모드입니다. 미세 위치 지정을 위한 절반 속도의 "정밀" 모드와 작업 공간 재배치를 위한 완전 고정 모드를 제공하며, 해제 시 누적된 오프셋을 작업 공간에 반영하여 장면 커서가 점프하지 않도록 합니다. 힘 피드백은 모든 비율에서 계속 전달됩니다. 이번 릴리스에서는 옵트인 방식으로만 제공되며, 기본 와이어 포맷은 변경되지 않았습니다.
  • 세션 단위 힘 스케일링(미리보기). 클라이언트는 예를 들어 파이 메뉴가 열려 있는 동안 하나의 시뮬레이션 세션의 햅틱 출력을 0에 가깝게 낮추고, 장치를 Hub에 넘겨 메뉴 햅틱이 일반 제어 경로를 통해 렌더링되도록 할 수 있습니다. 세션이 닫히거나 메뉴가 닫히면 자동으로 복원됩니다. 이번 릴리스에서는 미리보기 기능으로 제한되며, 기본 와이어 포맷은 변경되지 않았습니다.
  • 피벗 기준 작업 공간 확대/축소(실험적). 작업 공간 변환을 업데이트할 때 피벗 지점(예: 실시간 커서)을 전달하면, 뷰가 그 지점을 중심으로 확대/축소되어 피벗의 화면상 위치가 그대로 유지됩니다. 즉, 커서 위치로 즉시 확대/축소됩니다. Inverse3에서만 지원되며, 이번 릴리스에서는 실험적 기능이므로 기본 와이어 포맷은 변경되지 않았습니다.
  • JSON 직렬화 엔진(glaze)을 v7.8.4로 업그레이드했습니다. 인프라 변경만 포함되며 공개 API나 동작은 변경되지 않았습니다. 값을 보존하는 부동소수점 텍스트 와이어 재포맷이 함께 포함되어 있습니다. 아래 잠재적 호환성 깨짐 변경 사항을 참조하십시오.

수정 사항​

  • 장치의 마운트 변환을 변경하거나 재설정해도 더 이상 충돌 위험이 없습니다. 마운트가 변경될 때마다 펌웨어에 워크스페이스 경계 박스를 전달하던 프로토타입 코드 경로가 남아 있었으며, 해당 코드 경로는 제거되었습니다.
  • 잉크웰 도크 재보정 후 본체 방향이 갱신됩니다. 잉크웰에서 재도킹 및 재보정을 마친 후에는, 스트리밍되는 본체 방향 값이 다음 재연결 전까지 보정 이전 값을 보고하는 대신 장치의 최신 값으로 갱신됩니다. 최신 장치 펌웨어가 필요하며, 와이어 포맷은 변경되지 않았습니다.
  • Minverse는 차단된 보정을 항상 보고합니다. 펌웨어가 차단된 보정을 보고할 때마다 Minverse는 이제 device-calibration-failed 이벤트를 발생시킵니다. 이전에는 실패를 조용히 삼키던 진동 홀(oscillating-hall) 엣지 케이스도 포함되므로, Device Manager에는 이제 항상 "Calibration failed" 메시지가 표시됩니다.
  • 중앙 프리셋은 원점을 작업 공간의 실제 도달 가능한 중심에 배치합니다. arm_front_centered와 led_front_centered(Inverse3 / Inverse3x)는 팔 관절 축을 기준으로 정렬되어 있었지만, 이 축은 도달 가능한 범위의 중심이 아닙니다. 따라서 원점 {0, 0, 0}에서 set_cursor_position을 호출하면 중심에서 벗어난 위치에 도달했습니다. Minverse 중앙 원점도 약 10mm 너무 오른쪽에 위치해 있었습니다. 이제 각 오프셋은 축마다 도달 가능한 범위의 절반이며, 기계적으로 가능한 범위가 아니라 펌웨어 안전 스프링 제한 영역을 제외하고 측정합니다. (아래 "잠재적인 호환성 변경 사항"의 원점 이동 안내를 참조하십시오.)

잠재적인 호환성 변경 사항​

  • POST/DELETE /config/filters/damping을 7.5 이전 펌웨어에서 호출하면 이제 HTTP 422를 반환합니다. 이때 device-protocol-unsupported 이벤트가 함께 발생합니다. 이전에는 쓰기 작업이 조용히 누락되면서도 200을 반환했습니다. 7.5 이상 펌웨어는 영향을 받지 않으며 여전히 200을 반환합니다. 마이그레이션: 장치 펌웨어를 7.5 이상으로 업그레이드하거나 422 응답을 처리하십시오.
  • 해당 명령이 없는 펌웨어(7.4 이전)에서 POST/DELETE /home_return을 호출하면 이제 HTTP 422를 반환합니다. 이전에는 무조건 200을 반환했습니다. 구버전 펌웨어를 사용하는 장치에만 영향이 있습니다. 마이그레이션: 펌웨어를 7.4 이상으로 업그레이드하거나 422 응답을 처리하십시오.
  • config/mount 및 state/transform(GET/POST/PATCH/DELETE)의 명령 에코에서 이제 transform.rotation이 {x,y,z,w}가 아닌 {w,x,y,z} 키 순서로 직렬화됩니다. 이는 스트리밍되는 state 스냅샷의 회전 순서와 맞추기 위한 변경입니다. 바이트 수준에서만 변경되며, 값과 키 이름은 동일하고 키 순서만 바뀝니다. 세 가지 구성 요소는 모두 계속 에코됩니다. 키 이름으로 접근하는 JSON 클라이언트는 조치가 필요하지 않습니다. 엄격한 바이트 또는 순서 비교를 사용하는 경우에는 기준 데이터를 다시 생성해야 합니다.
  • 단일 장치 구성 적용 시 변경 알림 범위 이름이 바뀝니다. 단일 장치의 구성이 적용되면 세션 업데이트 변경 알림 이벤트는 이제 접두사 없는 이름(mount, basis, preset) 대신 구성 범위 이름(config.mount, config.basis, config.preset)을 보고합니다. 이 이벤트의 범위 문자열을 필터링하는 클라이언트는 매칭 로직을 업데이트해야 합니다.
  • v3.0 및 v3.1에서 모든 숫자 와이어 값의 Glaze 부동소수점 텍스트 재포맷팅 (예: 1.0E-7 -> 1E-7, 16777216 -> 1.6777216E7, -1.0E-37 -> -1E-37). 바이트 수준의 변경만 있으며, 숫자 파서는 동일한 값을 읽습니다. 텍스트 형식만 변경되었습니다. 문자열 동등 비교를 사용하는 소비자는 기준 데이터(fixture)를 다시 생성해야 합니다.
  • 중앙 프리셋의 원점 이동. 중앙 프리셋이 이제 실제 도달 가능한 중심을 대상으로 하므로, 설치되는 원점이 3.5.2 대비 이동합니다. arm_front_centered / led_front_centered는 장치 깊이 축을 따라 25mm, Minverse 중앙 프리셋은 X축 10mm, Y축 20mm, Z축 20mm 이동하며, minverse_zup은 X축 20mm, Y축 30mm 이동합니다. 이는 기본적으로 켜져 있는 영역이며, minverse_zup은 감지된 Freeform 세션에 자동으로 적용됩니다. 영향 범위: 중앙 프리셋이 활성화된 동안 원점에 배치된 콘텐츠나 원점을 기준으로 위치가 정해진 지오메트리는 원점과 함께 이동합니다. 마이그레이션: 원점에 고정된 지오메트리를 다시 확인하거나, 이전 오프셋을 사용자 정의 마운트 변환으로 명시적으로 기입하십시오. 중앙이 아닌 프리셋(device_defaults, arm_front, led_front)은 항등(identity)이므로 영향을 받지 않습니다.

사용 중단 예정 항목​

  • inverse3 제어 명령의 레거시 values 입력은 이제 경고가 표시되는 사용 중단 항목입니다. set_cursor_force, set_cursor_position, set_angular_position, set_angular_torques에 명령의 이름이 지정된 필드(vector / position / angles / torques) 대신 values 배열을 보내는 방식은 여전히 동작합니다. 다만 이제는 조용히 수락되지 않고 command-deprecated 이벤트가 발생합니다(명령당 30초에 한 번으로 빈도 제한). values를 이름이 지정된 필드로 마이그레이션하십시오. 레거시 입력은 4.0에서 제거될 예정입니다.
  • 이번 릴리스에서 공개 와이어에 영향을 미치는 다른 변경 사항은 없습니다.