Treat a LeRobot human-in-the-loop episode as a sequence of control handoffs, with a separate record of elapsed pauses. Recorded actions can include both policy execution and operator intervention. A continuous episode identifier therefore does not establish uninterrupted autonomous control or complete coverage of session time.
The current LeRobot HIL guide, checked October 13, 2026, describes pause, takeover, recovery, correction and return to the policy without resetting solely because an intervention occurred. It explicitly says that pause frames are not recorded. This review concerns the source-install main documentation; the collection script and dataset were not run here.
Write the handoff times beside the episode
The following timeline uses invented times to show what an event record adds. It is not a saved LeRobot session, and these event labels are a proposed sidecar rather than guaranteed dataset columns.
| Session time | Proposed event | How to label the segment |
|---|---|---|
| 0 s | Policy starts | Policy-controlled actions until the next handoff |
| 2 s | Pause entered | Unrecorded pause begins under the documented protocol |
| 7 s | Operator takes over | Recovery actions under operator control |
| 9 s | Correction begins | Operator demonstration, separate from recovery |
| 12 s | Control returns | Policy continues from the corrected state |
In this example, the pause lasted 5 seconds. The recorded trajectory alone should not be used to invent observations for that interval. Link the event record to the same episode and clock reference, preserve the actual takeover/return boundaries, and check what your installed implementation already records. A final successful outcome after the operator’s correction remains an assisted completion.
The guide treats pause, takeover and return as conceptual inputs; concrete key or pedal mappings can differ. Use the running script’s printed controls rather than assuming that another setup’s binding is yours. No control input was sent to a robot for this example.
Command rate is not recording rate
The guide's interpolation_multiplier=N sends N interpolated commands per policy action. Control runs at dataset FPS multiplied by N, while policy inference and dataset recording remain at the declared FPS. Preserve those two rates separately when inspecting an episode.
For an illustrative setting of 30 dataset frames per second and interpolation_multiplier=4, the documented control-rate formula gives a nominal 120 commands per second while the configured inference and recording rate stays at 30 Hz. Counting 30 dataset rows does not expose every interpolated command. Actual timing still needs a command trace; no such trace or robot run was collected for this example.
Score the policy separately from the rescued episode
For an evaluation report, retain the final task outcome and the intervention history together. A completed episode rescued by an operator answers a different question from completion without takeover. Define your intervention criterion before comparing checkpoints, and keep the unassisted rollout population visible.
For training, retain the state before takeover and after return so that a recovery target has usable context. The teleoperation-data guide covers synchronized observation/action records. This HIL-specific check adds who controlled each segment and which parts of elapsed time the recorded trajectory cannot reconstruct.