v3.5.3
3.5.3 是一个补丁版本。主要变更包括:更智能的自动配对功能;当更换已配对的Inverse3 +握把套装中的其中一台设备时,系统会自动重新配对;修复了有线版Verse Grip的错误电量警告;固件能力检测更准确,不再默认忽略不支持的命令;连接时的状态LED指示更稳定;停止和重启服务时不再导致崩溃。此外,还合并了若干与设备和序列号相关的修复,以及一些字节级通信规范说明。
亮点
- 自动配对:更换一半套装时重新配对。当自动配对的Inverse3 + Verse Grip套装中的某台设备被更换时,SDK现在会丢弃过期的配对关系,并与新连接的设备重新配对。手动配对不受影响。
- 有线版 Verse Grip 不再误报电量警告。低电量和极低电量警告现在仅针对无线连接的 Verse Grip 触发;有线版 Verse Grip 不再产生错误的低电量或极低电量警告。
- 更准确的固件功能检测。 当请求设备执行其固件版本过低而无法运行的触觉功能时(例如,固件版本低于 7.5 时的均匀阻尼或方向性阻尼,以及固件版本低于 7.4 时的归位(return-to-home)功能),现在将返回 HTTP 422 状态码,并附带
device-protocol-unsupported事件,而不是返回具有误导性的 200 状态码并静默丢弃请求。 - 连接时的状态指示灯更加稳定。 Inverse3 的状态LED在每次连接或重新连接时不再闪烁红灯:连接在唤醒后约5秒的稳定期内保持活跃,因此固件的连接看门狗不再被触发。
- 停止和重启服务时不再发生崩溃。停止和重启服务时不再发生崩溃或挂起;已对关闭和重启流程进行了重构,消除了反复开关服务时出现的 panic 和挂起问题。
内部改进
- 离合导航模式(实验性功能,默认关闭)。这是一种新的导航模式,允许操作者在物理设备持续移动的同时,缩小或完全冻结服务导出到场景中的运动——包括用于精细定位的半速“精确”模式,以及用于重新定位工作区的完全冻结模式。松开后,累积的偏移量将折叠到工作区中,因此场景光标不会跳动。力反馈在所有比例下均持续输出。本版本中需主动开启;默认的 wire 格式保持不变。
- 会话级力缩放(预览版)。客户端可将某个仿真会话的触觉输出衰减至接近零(例如在打开饼状菜单时),并将设备交由 Hub 处理,使菜单触觉通过常规控制路径渲染;当会话关闭或菜单关闭时,系统将自动恢复。在此版本中,需通过预览开关启用该功能;默认的 wire 格式保持不变。
- 围绕枢轴点的工作区缩放(实验性功能)。在更新工作区变换时传入一个枢轴点(例如实时光标位置),视图将围绕该点进行缩放,使枢轴点在屏幕上的位置保持不变,即实现即时光标缩放。仅适用于Inverse3;在本版本中,此功能为实验性功能,因此默认的线框格式保持不变。
- 将 JSON 序列化引擎(glaze)升级至 v7.8.4。此次升级仅涉及基础设施,不会改变公共 API 或行为。同时对浮点数文本 wire 格式进行了一项调整,以确保数值保持不变;详情请参见下方的“潜在破坏性变更”。
修复
- 更改或重置设备的安装转换时,不再存在崩溃风险。一段遗留的原型代码路径会在每次安装转换更改时推送固件工作区边界框;该路径现已移除。
- 在 inkwell 底座重新校准后,本体姿态数据将刷新。在 inkwell 中重新对接并校准后,流式传输的本体姿态数据现将从设备刷新,不再在下次重新连接前报告校准前的数值。需要使用当前版本的设备固件;传输格式保持不变。
- Minverse 始终会报告被阻止的校准。 只要固件报告校准被阻止,Minverse 就会立即发出
device-calibration-failed该事件包括此前会静默忽略霍尔振荡边缘失败的情况,因此“设备管理器”现在会始终显示“校准失败”的消息。 - 居中预设将原点置于工作空间的实际可达中心。
arm_front_centered和led_front_centered(Inverse3 / Inverse3x)原本沿手臂关节轴对齐,而该轴并不位于可达包络的中心,因此在原点{0, 0, 0}处调用set_cursor_position会偏离中心;Minverse 的居中原点也向右偏移了约10毫米。目前,每个轴上的偏移量均取可达范围的一半,计算时排除了固件安全弹簧限位区,而非机械上可能达到的范围。(参见“潜在破坏性变更”部分中的原点偏移说明。)
潜在的破坏性变更
- 在 7.5 之前的固件中,
POST/DELETE /config/filters/damping现在返回 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)命令的响应现在以{w,x,y,z}键序列化transform.rotation,不再使用{x,y,z,w},以便与流式state快照的旋转顺序保持一致。仅影响字节层面:数值和键名均保持不变,只有键的顺序发生了变化;三个分量仍会全部显示出来。通过名称访问字段的 JSON 客户端无需进行任何操作;进行严格字节或顺序比较的,应重新确认基准。- 在单设备配置应用时,变更通知的作用域名称。 在应用单个设备的配置时,会话更新的变更通知事件现在会报告配置作用域名称(
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 方向偏移 20 毫米,在 Y 方向偏移 30 毫米。此选项默认启用,并在检测到 Freeform 会话时自动应用minverse_zup。影响范围:当居中预设处于激活状态时,放置在原点处的内容,或相对于原点定位的几何体,都会随原点一起移动。解决方法:重新检查以原点为锚点的几何体,或将之前的偏移量显式写入自定义安装变换中。非居中预设(device_defaults、arm_front、led_front)是恒等变换,因此不受影响。
弃用
- inverse3 控制命令的旧版本
values该输入现已被标记为“已弃用(带警告)”。 将values将数组发送给set_cursor_force、set_cursor_position、set_angular_position或set_angular_torques(而非命令的名称字段vector/position/angles/torques)仍可正常运行,但现在会触发command-deprecated事件(每个命令每 30 秒限速一次),而不再被默认接受。请将values迁移到“名称”字段;旧版输入功能计划在 4.0 版本中移除。 - 本周期内的其他方面均不影响公开的传输接口。