본문으로 바로 가기

v3.5.3

3.5.3은 패치 릴리스입니다. 주요 변경 사항으로는, 페어링된 ‘ Inverse3 +Grip’ 세트의 한쪽을 교체할 때 자동으로 재페어링되는 더욱 지능적인 자동 페어링 기능, 유선 연결된 Verse Grip에서 발생하는 잘못된 배터리 경고가 사라진 점, 펌웨어 기능에 대한 보다 투명한 검증(지원되지 않는 명령을 더 이상 묵인하지 않음), 연결 시 더 안정적인 상태 LED 표시, 그리고 서비스 종료 및 재시작 시 더 이상 충돌이 발생하지 않는 점 등이 포함됩니다. 또한 이번 릴리스에는 장치 및 직렬화 관련 여러 수정 사항과 바이트 단위 전송에 대한 몇 가지 참고 사항이 포함되어 있습니다.

주요 변경 사항​

  • 세트의 한 쪽을 교체하면 자동 페어링이 다시 설정됩니다. 자동 페어링된 ‘ Inverse3 + Verse Grip’ 세트의 기기 중 하나가 교체될 경우, SDK는 이제 기존 페어링 연결을 해제하고 새로 연결된 기기와 페어링을 수행합니다. 수동 페어링 설정은 변경되지 않습니다.
  • 유선 연결된 Verse Grip에서는 더 이상 잘못된 배터리 경고가 발생하지 않습니다. 배터리 잔량이 낮거나 위험 수준에 도달했을 때의 경고는 이제 무선으로 연결된 Verse Grip에서만 발생하며, 유선 연결된 Verse Grip은 배터리 잔량이 낮거나 위험 수준에 도달했을 때 더 이상 잘못된 경고를 발생시키지 않습니다.
  • 펌웨어 기능에 대한 보다 투명한 검증. 장치의 펌웨어 버전이 너무 오래되어 지원되지 않는 햅틱 기능(펌웨어 버전 7.5 미만인 경우 균일하거나 방향에 따른 감쇠, 펌웨어 버전 7.4 미만인 경우 초기 위치로 복귀)을 요청하면, 시스템은 이제 HTTP 422 응답과 함께 이벤트를 반환합니다. device-protocol-unsupported, 오해의 소지가 있는 ‘200’이라는 숫자를 사용해 요청을 묵시적으로 기각한 것과는 달리.
  • 연결 시 상태 LED가 더 안정적으로 작동합니다. Inverse3 의 상태 LED는 이제 연결 또는 재연결할 때마다 빨간색으로 깜빡이지 않습니다. 기기가 깨어난 후 약 5초 동안 지속되는 안정화 단계 동안 연결이 유지되므로, 펌웨어의 연결 워치독이 더 이상 작동하지 않습니다.
  • 서비스 종료 및 재시작 시 더 이상 충돌이 발생하지 않습니다. 서비스를 종료하거나 재시작할 때 더 이상 충돌이나 멈춤 현상이 발생하지 않습니다. 서비스 시작 및 종료 시 발생하던 패닉 및 멈춤 현상을 해결하기 위해 종료 및 재시작 프로세스가 개선되었습니다.

내부 개선 사항​

  • 클러치 내비게이션 모드 (실험적 기능, 기본적으로 비활성화됨). 물리적 장치가 계속 움직이는 동안 서비스가 장면으로 내보내는 움직임을 줄이거나 완전히 정지시킬 수 있는 새로운 내비게이션 모드입니다. 정밀한 위치 조정을 위한 반속도 모드(“precise”)와 작업 영역을 재조정하기 위한 완전 정지 모드가 있습니다. 버튼을 놓으면 누적된 편차가 작업 영역으로 반영되므로, 장면 커서가 갑자기 튀는 일이 없습니다. 모든 비율에서 힘 피드백은 유지됩니다. 이 사이클에서는 명시적으로 활성화해야만 이 모드를 사용할 수 있으며, 기본 프로토콜은 변경되지 않습니다.
  • 세션 기반 힘 조정(미리보기). 클라이언트는 시뮬레이션 세션의 햅틱 출력을 0으로 줄일 수 있습니다(예: 파이 메뉴가 열려 있는 동안). 이때 장치를 허브로 넘겨주면, 메뉴 햅틱이 일반적인 제어 경로를 통해 출력됩니다. 세션이 종료되거나 메뉴가 닫히면 출력이 자동으로 복원됩니다. 이 기능은 미리보기 플래그를 통해 활성화되었으며, 표준 프로토콜은 변경되지 않습니다.
  • 회전점을 중심으로 한 작업 영역 확대/축소(실험적 기능). 작업 영역 변환을 업데이트할 때 회전점(예: 활성 커서)을 전달하십시오. 그러면 화면이 해당 점을 중심으로 확대/축소되어 화면상의 위치가 유지됩니다. 즉, 커서를 중심으로 즉시 확대/축소되는 효과입니다. Inverse3 에서만 지원되며, 이번 사이클에서는 실험적 기능으로 제공되므로 기본 프로토콜은 변경되지 않습니다.
  • JSON 직렬화 엔진(glaze)을 v7.8.4로 업데이트했습니다. 인프라 관련 변경 사항만 포함되며, 공개 API나 동작에는 변경 사항이 없습니다. 또한 텍스트 프로토콜 내 부동소수점 숫자의 값을 보존하는 재포맷팅 기능이 추가되었습니다. 자세한 내용은 아래 “발생할 수 있는 호환성 문제” 항목을 참조하십시오.

오류 수정​

  • 장치의 마운트 변환을 변경하거나 초기화해도 더 이상 충돌이 발생하지 않습니다. 남아 있던 프로토타입 코드 경로가 조립이 변경될 때마다 펌웨어의 작업 공간 경계 상자를 이동시켰으나, 이 코드 경로는 제거되었습니다.
  • Inkwell 도크에서 재보정 후 기기 방향 정보가 업데이트됩니다. Inkwell에 다시 도킹하고 보정을 수행하면, 기기는 다음 재연결 시까지 보정 전의 값을 보고하는 대신 스트리밍되는 기기 방향 정보를 실시간으로 업데이트합니다. 이 기능은 기기의 최신 펌웨어가 필요하며, 와이어 포맷은 변경되지 않습니다.
  • Minverse 차단된 보정 작업은 항상 보고합니다. Minverse 이제 이벤트를 전송합니다 device-calibration-failed, 펌웨어가 보정 오류를 감지하는 즉시 — 지금까지는 오류를 묵인해 왔던 홀 신호의 진동과 같은 극단적인 경우를 포함하여 — 장치 관리자에 항상 “보정 실패” 메시지가 표시되도록 합니다.
  • 중심 맞추기 프리셋은 작업 영역에서 실제로 도달 가능한 중심점에 원점을 설정합니다. arm_front_centered 그리고 led_front_centered (Inverse3 / Inverse3x)는 팔 관절의 축에 맞춰져 있었는데, 이 축은 동작 가능 범위 내에서 중심에 위치하지 않았다. 따라서 set_cursor_position 기원 {0, 0, 0} 중심에서 벗어난 위치입니다. Minverse 의 중심에 위치한 원점도 오른쪽에서 약 10mm 정도 벗어나 있었습니다. 이제 각 편차는 각 축에서 도달 가능한 범위의 절반에 해당하며, 이는 펌웨어의 안전 여유를 고려한 한계 영역을 제외하고 측정된 값이며, 기계적으로 가능한 범위를 기준으로 한 것이 아닙니다. (‘호환되지 않을 수 있는 변경 사항’ 항목의 원점 이동에 관한 참고 사항을 참조하십시오.)

호환되지 않을 수 있는 변경 사항​

  • POST/DELETE /config/filters/damping 7.5보다 오래된 펌웨어에서는 이제 HTTP 422를 반환합니다., 특정 이벤트와 함께 device-protocol-unsupported, 200 오류(쓰기 작업을 묵시적으로 취소한 경우) 대신 발생합니다. 7.5 이상 펌웨어는 이 문제의 영향을 받지 않습니다(여전히 200 오류가 발생함). 해결 방법: 기기 펌웨어를 7.5 이상으로 업데이트하거나 422 응답을 처리하십시오.
  • POST/DELETE /home_return 이 명령어가 없는 펌웨어(7.4 이전 버전)에서는 이제 HTTP 422를 반환합니다., 무조건적인 200 대신. 구버전 펌웨어가 설치된 기기만 해당됩니다. 해결 방법: 펌웨어를 7.4 이상으로 업데이트하거나 422 응답을 처리하십시오.
  • 명령어 실행 시 에코 현상 config/mount 그리고 state/transform (GET/POST/PATCH/DELETE) 시리얼라이즈하기 transform.rotation 이제 음계 순서대로 {w,x,y,z} statt {x,y,z,w}, 스트리밍되는 콘텐츠의 재생 순서에 맞춰 state-스냅샷. 바이트 단위에서만 적용됨 — 값과 키 이름은 동일하며, 키의 순서만 변경됩니다. 세 구성 요소 모두 여전히 반환됩니다. 키 이름을 통해 JSON을 분석하는 클라이언트는 별도의 조정이 필요하지 않습니다. 엄격한 바이트 비교나 순서 비교를 수행하는 클라이언트는 참조 데이터를 다시 생성해야 합니다.
  • 개별 기기에 구성을 적용할 때 변경 알림에 표시되는 적용 범위 이름. 이제 'session-updated' 변경 이벤트는 구성의 적용 범위 이름을 알립니다 (config.mount, config.basis, config.preset) 단순한 이름 대신 (mount, basis, preset), 개별 장치의 구성이 적용될 때. 이벤트의 이러한 범위 문자열을 필터링하는 클라이언트는 해당 매핑을 조정해야 합니다.
  • Glaze에서 모든 수치형 와이어 값에 대한 부동소수점 텍스트 표시 형식 재설정, v3.0 및 v3.1 (예를 들어 1.0E-7 -> 1E-7, 16777216 -> 1.6777216E7, -1.0E-37 -> -1E-37). 오직 바이트 수준에서만 해당됩니다. -- 숫자 파서는 동일한 값을 읽으며, 텍스트 형식만 변경되었습니다. 문자열 비교를 사용하는 클라이언트는 피처스트를 다시 생성해야 합니다.
  • 중앙 정렬 프리셋에서 원점 이동. 중앙 정렬 프리셋이 이제 실제로 도달 가능한 중심점을 목표로 하므로, 3.5.2 버전과 비교했을 때 이 프리셋들이 설정하는 원점이 이동합니다: arm_front_centered / led_front_centered 장치의 깊이 축을 따라 25 mm 이동하며, 중심이 맞춰진 ‘ Minverse ’ 프리셋은 X축 방향으로 10 mm, Y축 방향으로 20 mm, Z축 방향으로 20 mm 이동하며, minverse_zup X축 방향으로 20mm, Y축 방향으로 30mm 이동합니다. 이는 기본적으로 활성화된 인터페이스에 적용되며, minverse_zup 인식된 프리폼 세션에 자동으로 적용됩니다. 적용 범위: 중심 정렬 프리셋이 활성화된 상태에서 원점에 배치된 콘텐츠 또는 원점을 기준으로 위치가 지정된 도형은 원점과 함께 이동합니다. 이관: 원점에 정렬된 기하학적 요소를 다시 확인하거나, 기존 오프셋을 사용자 정의 마운트 변환으로 명시적으로 지정하십시오. 중앙 정렬되지 않은 프리셋(device_defaults, arm_front, led_front)는 정체성 변환이므로 영향을 받지 않습니다.

더 이상 지원되지 않는 기능​

  • 레거시 입력 values inverse3 명령어에서 이제 경고가 발생합니다. 배열 전송 values an set_cursor_force, set_cursor_position, set_angular_position 또는 set_angular_torques 명령어의 지정된 필드 대신 (vector / position / angles / torques)는 계속 작동하지만, 이벤트를 발생시킵니다 command-deprecated (30초당 1회, 명령어당 1회로 제한됨)으로, 묵시적으로 허용되는 대신. 마이그레이션하십시오 values 지정된 필드에 입력하십시오. 레거시 입력 방식은 버전 4.0에서 제거될 예정입니다.
  • 그 외에는 이번 주기에서 공개 와이어 인터페이스에 영향을 미치는 사항은 없습니다.