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에 가깝게 낮추고, 장치를 허브로 넘겨 메뉴 햅틱이 일반 제어 경로를 통해 렌더링되도록 할 수 있습니다. 세션이 닫히거나 메뉴가 닫히면 자동으로 복원됩니다. 이번 릴리스에서는 미리보기 기능으로만 제공되며, 기본 와이어 형식은 변경되지 않았습니다.
- 피벗 기준 작업 공간 확대/축소(실험적). 작업 공간 변환을 업데이트할 때 피벗 지점(예: 실시간 커서)을 전달하면, 뷰가 해당 지점을 중심으로 확대/축소되어 피벗의 화면상 위치가 그대로 유지됩니다. 즉, 커서 위치로 즉시 확대/축소됩니다. Inverse3에서만 지원되며, 이번 릴리스에서는 실험적 기능이므로 기본 와이어 형식은 변경되지 않았습니다.
- JSON 직렬화 엔진(glaze)을 v7.8.4로 업그레이드했습니다. 이번 업데이트에는 인프라 변경 사항만 포함되어 있으며, 공개 API나 동작에는 변경 사항이 없습니다. 값을 보존하는 부동소수점 텍스트 와이어 재포맷 기능이 함께 포함되어 있습니다. 아래의 잠재적인 호환성 문제 변경 사항을 참조하십시오.
수정 사항
- 장치의 마운트 변환을 변경하거나 재설정하더라도 더 이상 충돌 위험이 없습니다. 마운트가 변경될 때마다 펌웨어에 워크스페이스 경계 상자를 전달하던 프로토타입 코드 경로가 남아 있었으나, 해당 코드 경로는 제거되었습니다.
- 잉크웰 도크 재보정 후 본체 방향이 갱신됩니다. 잉크웰에서 재도킹 및 재보정을 완료한 후에는, 스트리밍되는 본체 방향 값이 다음 재연결 시까지 보정 전 값을 보고하는 대신 장치의 최신 값으로 갱신됩니다. 최신 장치 펌웨어가 필요하며, 와이어 포맷은 변경되지 않았습니다.
- Minverse는 차단된 보정을 항상 보고합니다. 펌웨어가 차단된 보정 결과를 보고할 때마다 Minverse는 이제
device-calibration-failed이벤트를 발생시킵니다. 이전에는 실패를 조용히 처리하던 진동 홀(oscillating-hall) 에지 케이스도 포함되므로, 이제 장치 관리자에는 항상 “보정 실패” 메시지가 표시됩니다. - 중앙 프리셋은 원점을 작업 공간에서 실제로 도달 가능한 중심에 배치합니다.
arm_front_centered와led_front_centered(Inverse3 / Inverse3x)는 팔 관절 축을 기준으로 정렬되어 있었지만, 이 축은 도달 가능한 범위의 중심이 아닙니다. 따라서 원점{0, 0, 0}에서set_cursor_position을 호출하면 중심에서 벗어난 위치에 도달했습니다. Minverse 중앙 원점도 약 10mm 정도 오른쪽에 위치해 있었습니다. 이제 각 오프셋은 축별로 도달 가능한 범위의 절반이며, 기계적으로 가능한 범위가 아니라 펌웨어 안전 스프링 제한 영역을 제외하고 측정합니다. (아래 “잠재적인 호환성 변경 사항”의 원점 이동 안내를 참조하십시오.)
잠재적인 호환성 변경 사항
POST/DELETE /config/filters/damping7.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_zupX축 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 버전에서 제거될 예정입니다. - 이번 릴리스에서는 공개 와이어에 영향을 미치는 다른 변경 사항은 없습니다.