概览
采集与标定的分工、什么时候由 SDK 引导,以及这次该用哪条入口。
当前版本 · 1.4.0
概览
先读:设备发现与连接(设备连接成功后才能开始采集) · 读完你能:判断这次走默认流程、外部接管还是分阶段流程
采集(Capture)和标定(Calibration)是两个连续但用途不同的阶段:
- Capture 按算法包声明的动作提示收集手套原始帧;同一份满足要求的采集可以供兼容的本次选择的算法包使用。
- 设备连接成功后,Calibration 使用已经完成的采集,为选定算法包和 target 计算、保存并应用标定结果;需要标定的 retargeting 算法在此之后才能产生有效的目标关节输出。
- 算法包决定动作、采样要求和计算方式;应用不需要另外选择 calibration 算法。
选择算法包后默认不用自己编排:SDK 会检查当前佩戴者是否已有兼容结果,缺少时在正常的 start() → run_forever() → stop() 生命周期里组织所需步骤、显示动作提示,并按 引导式采集交互 执行。“自动”表示流程由 SDK 编排,不表示整个过程无人参与:佩戴者仍需要完成对应动作,并在需要时确认。
常见需求对应的入口如下:
| 需求 | 应使用的行为 |
|---|---|
| 首次运行或当前操作员缺少兼容结果 | SDK 按需引导采集与标定,再继续 retargeting |
| 当前操作员已有兼容采集和标定结果 | 默认自动复用,不重复采集或计算 |
| 保留已有原始帧,只重新计算标定 | 设置 config.algorithms.calibration.force = true |
| 忽略可复用原始帧,完整重新采集 | 设置 config.algorithms.capture.force = true;两阶段流程在 start_capture() 中传入 force = true |
| GUI、ROS2 或远程程序展示自动流程的提示和按钮 | 使用 external 交互并映射 confirm()、skip()、cancel() |
| 应用把采集与目标标定分成两个业务阶段 | 使用下面的分阶段流程 |
已有标定记录不完整、损坏或不兼容时,SDK 会重新引导标定;已经保存且仍然有效的标定结果不受影响。
本文中的“外部交互标定”不是让应用自行实现标定算法。SDK 仍负责阶段顺序、采样、计算、保存和应用;应用只显示 SDK 提供的 prompt 和进度,并把当前 request_id 原样交回控制接口。需要把采集和目标标定拆成两个业务阶段时,才使用独立的两阶段 API。