본문으로 바로 가기

v3.5.1

3.5.1은 안정화 및 품질 개선 릴리스입니다. 주요 내용은 다음과 같습니다: Inverse3 및 Griff를 사용한 1대1 설정 시 자동 페어링, 최신 동작 데이터 제공 GET /devices/{id} WebSocket 세션을 열지 않아도 되며, 힘 모드와 위치 모드 간 전환 시 발생하는 삐걱거리는 소리가 사라지고, 지속 부하 상태에서 서비스 틱을 위한 자동 조정 스케줄러가 제공됩니다.

주요 내용​

  • Inverse3 와 손잡이를 사용한 1↔1 설치용 자동 페어링. Inverse3 와 그립이 준비되면 SDK가 자동으로 페어링을 감지합니다. pen_attached 또한, 다중 장치 설정에서 Minverse 보정 기능의 활성화가 더 이상 오작동하지 않습니다.
  • 최신 스냅샷 보기 GET /devices/{id} 공개 회의 없이. Inverse3, Inverse3x 및 Minverse 모델에서 펌웨어 v7.5 이상을 사용할 경우, WebSocket 활동 여부와 관계없이 이제 20 Hz 주기로 동작 상태가 조회됩니다. v7.5 이전 펌웨어의 경우 이 조회를 건너뛰고 한 번만 경고 메시지를 표시합니다.
  • 토크와 위치 조절 시 더 이상 삐걱거리는 소리가 나지 않습니다. ~ 간의 전환 set_cursor_force ↔ set_cursor_position 슬롯 전용입니다: 두 틱 사이에는 장치당 가장 최근의 명령어만 유지됩니다. HARP 에 제시된 200 ms 유휴 시간에 대한 해결 방법은 더 이상 유효하지 않습니다.
  • 자동 조정형 틱 스케줄러. 메인 루프는 부하에 따라 전송 속도를 조절하여, 틱이 느려져도 명령 대기열이 무한정 늘어나지 않도록 합니다.
  • 부하 상태에서의 스트리밍 응답을 ‘1-in-1-out’ 원리에 따라 처리합니다. WS 메시지당 스트리밍 응답은 세션당 1/ms로 제한됩니다. 이 제한이 적용되면 이전 버퍼가 다시 재생되므로 시뮬레이션 루프가 절대 recv() 차단하다.

내부 개선 사항​

기기​

  • Inverse3 ↔ VerseGrip 기기별 페어링 등록 정보. GET|POST|DELETE /devices/{sel}/paired_with 이는 장치별 1:1 대응 관계입니다. POST 양측의 갈등을 해소하고; DELETE 선택한 항목을 삭제합니다. 선택기는 정확히 하나의 ID로 지정되어야 합니다.
  • 펌웨어 v7.5 이상에서 20 Hz 주기로 동작 상태 조회. GET /devices/{id} 50 ms마다 최신 값을 제공합니다. cursor_position, cursor_velocity, angular_position 그리고 angular_velocity; 진행 중인 세션에는 영향을 미치지 않습니다.
  • set_extension_data 무선으로 제어되는 속도 조절 기능을 갖춘 VerseGrip용. 파이프라인은 오래된 값을 버리고, 유휴 상태에서는 마지막 값을 반복하며, 서비스 틱이 발생하면 비워집니다. 전송 빈도가 너무 높으면 무선 연결이 더 이상 포화 상태가 되지 않으며, 전송 빈도가 너무 낮으면 더 이상 오래된 값이 남지 않습니다.

회의​

  • 순수 제어 배치(힘/위치)를 위한 새로운 WS 수신 빠른 경로는 구성에 민감한 파이프라인을 건너뜁니다. configure / set_profile 그리고 사용자 정의 명령은 계속해서 Race-Fix를 통해 실행됩니다.

가시성​

  • 인식 로깅 주기는 포트별로 제어되며, 메시지의 지속 시간을 고려합니다. 차단 목록에 포함된 각 포트는 개별적으로 대역폭이 제한되며, 반복되는 행은 "...blacklisted: skipping" 이제 ~을 착용한다 (×N) 두 번의 트리거 사이에서 억제된 틱에 대해.
  • WVG 기기가 아닌 기기를 조회할 때 VerseGrip의 무선 감지 기능이 더 이상 로그를 과도하게 채우지 않습니다.

오류 수정​

  • POST /device.config.preset MIT defaults 또는 arm_front 이제 기기의 마운트를 공장 초기 설정으로 재설정합니다(이전에는 아무 작업도 수행하지 않음). basis 앱에서 설정한 기본값이 유지되도록 하여, 마운트 기본 설정의 변경 사항이 적용되지 않도록 합니다.
  • force_render_full_state 더 이상 누락된 스냅샷을 제공하지 않습니다. config-차단, 해당 구성 정보가 동일한 WS 메시지로 수신된 경우 – 구성 경로는 스냅샷 처리 전에 동기식으로 처리됩니다.
  • 여러 회의에 걸친 force_render_full_state 대상에 대한 완전한 스냅샷을 제공합니다. 이제 A와 B 모두 완전한 페이로드를 수신하게 됩니다(이전에는 A가 스트리밍 데이터만 수신했습니다).
  • 알 수 없는 매개변수를 사용하는 세션 간 명령어 target_session_id 더 이상 요청-응답 루프를 차단하지 않습니다. 질문자는 자신만의 스냅샷과 이벤트 하나를 받게 됩니다. session-command-dropped (cross-session-unknown-target).
  • Minverse 의 활성화 및 여러 기기를 통한 보정 기능이 더 이상 오작동하지 않습니다. Minverse A의 보정 시 Minverse B가 더 이상 활성화되지 않으며, inkwell-success의 헤딩 브로드캐스트에도 동일한 수정 사항이 적용됩니다.
  • HTTP의 장치 선택기 수락됨 #1234 그리고 1234 장치 ID; 선택기 클래스 (inverse3, verse_grip)는 인덱스와 함께 작동하며, 404 오류 메시지는 원래의 선택자 표현식을 그대로 유지합니다.
  • Das ready-VerseGrip을 통한 무선 신호 이제 초기 장치 정보 핸드셰이크가 끝난 후에야 설정됩니다. 이전에는 장치가 완전히 로그인되기 전에 특정 재연결 경로에서 이 값이 변동될 수 있었습니다.
  • 키드 레이트 게이트(keyed-rate-gate) 기반 설정에 대한 실행 시간 변경 사항은 이제 다음 액세스 시 적용됩니다 (이전에는 첫 번째 emplace 시점에 고정되어 있었으며, 새로운 세션에서만 변경 사항이 반영되었습니다).

발생할 수 있는 호환성 변경 사항​

  • HTTP의 404 오류 메시지 표준화 über basis, preset, mount, transform, force_gate hinweg: "{type} device #{id} not found" → "no device matches selector '{expr}'". 세션에 대한 404 오류 메시지도 이에 맞춰 수정되었습니다.
  • 설정-전역 devices/inverse*/... → devices/*inverse/... 힘 스케일링 강화, 힘 게이트 강화, 제어 타임아웃 및 safeties/expose_in_snapshot. 3.5.0 버전의 설정 파일에서 사용된 구식 리터럴은 바인딩 시 오류가 발생합니다.
  • 설정: 직렬화 전역 변수가 다음 위치로 이동되었습니다. session/serialization/* (explicit_fields, force_complete_transforms, preview/*). 알테 serialization/*- 경로는 구식 별칭을 통해 계속 해결됩니다. 4.0 버전에서 제거될 예정입니다.
  • 동작: 메시지당 WS 응답을 틱 동기화 핸드셰이크로 사용하는 클라이언트는 지속적인 부하 조건에서 세션당 초당 최대 1개의 응답만 수신합니다. 구성 변경 시 생성되는 전체 스냅샷에는 영향을 미치지 않습니다.

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

3.5.1 버전에는 없습니다. ‘Preview’ 메인 스위치는 3.6 버전에서 도입될 파이프라인을 위한 인프라로, 이 파이프라인은 ‘silent’ 알림을 경고로 변환합니다. 첫 번째 사용 중단(deprecation) 일정은 3.5.2 버전으로 예정되어 있습니다.