Overview
How capture and calibration divide the work, when the SDK guides them, and which entry to use.
Overview
Read first: Device discovery & connection (capture starts once a device is connected) · You will be able to: tell whether this run needs the default flow, an external takeover, or a two-stage flow
Capture and Calibration are two consecutive stages with different purposes:
- Capture collects raw glove frames according to the action prompts declared by the algorithm package; one capture that meets the requirements can be used by the compatible algorithm packages selected this time.
- Once the device is connected, Calibration uses an already completed capture to compute, save, and apply the calibration result for the selected algorithm package and target; retargeting algorithms that require calibration produce valid target joint output only after this stage.
- The algorithm package determines the actions, sampling requirements, and computation method; the application does not need to select a calibration algorithm separately.
After selecting an algorithm package, the default flow needs no orchestration of your own: the SDK checks whether the current wearer has a compatible result and, when it does not, organizes the required steps, shows the motion prompts and runs through guided capture interaction inside the normal start() → run_forever() → stop() lifecycle. "Automatic" means the flow is orchestrated by the SDK, not that the process is unattended: the wearer still has to complete the motions and confirm when asked.
Choose the behavior for each need below:
| Need | Behavior to use |
|---|---|
| First run or no compatible result for the current operator | The SDK guides capture and calibration as needed, then continues retargeting |
| Compatible capture and calibration results exist for the current operator | Reused automatically by default; no repeated capture or computation |
| Keep the existing raw frames and only recompute the calibration | Set config.algorithms.calibration.force = true |
| Ignore reusable raw frames and capture everything again | Set config.algorithms.capture.force = true; in the two-stage flow, pass force = true to start_capture() |
| A GUI, ROS2, or remote program displays the prompts and buttons of the automatic flow | Use external interaction and map confirm(), skip(), cancel() |
| The application splits capture and target calibration into two business stages | Use the staged flow below |
If an existing calibration record is incomplete, corrupted, or incompatible, the SDK guides calibration again; previously saved calibration results that remain valid are unaffected.
"External interaction calibration" in this document does not mean that the application implements
the calibration algorithm itself. The SDK still handles the stage order, sampling, computation,
saving, and applying; the application only displays the prompts and progress provided by the SDK
and passes the current request_id back to the control interface unchanged. Use the separate
two-stage API only when capture and target calibration need to be split into two business stages.