axol collect-data).
Before you start
- Axol installed (one-command install), CAN up, and motors verified.
- At least one ZED camera connected over GMSL (up to three: overhead / left arm / right arm), with their serial numbers on hand. (Camera serials are printed on the camera body, or read them from the Cameras settings tab / Python — see the tip below.)
- The VR TLS certificate authorized once — see Teleoperation.
Run it
- Control Panel
- CLI
1
Connect the robot and assign cameras
Connect the Axol Host and Axol, then open the Cameras settings tab and assign each detected camera to its slot (overhead / left arm / right arm) — at least one is required. Stereo ZED X cameras are detected automatically. See Cameras.
2
Select Collect Data and fill the fields
Pick Collect Data. Set the dataset repo id (e.g.
myorg/pick-place) and the task description — the only per-run inputs. Everything reusable (fps, teleop rate, stiffness, push-to-hub) lives in the Settings tabs.3
Start and record from the headset
Press Start, connect the headset, and drive the arms. Recording is controlled entirely from the VR controllers — see Recording an episode below.
Collect Data has no on-screen episode buttons — takes are driven from the VR controller (A to record/save, X to discard). The session is locked to data collection; there’s no mode toggle.
Controller layout
Episodes are driven entirely from the Quest controllers. The movement controls are the same as in teleoperation; data collection adds the A (record) button. The session is locked to data collection mode, so there’s no mode toggle to worry about.
The camera feeds are relayed to the headset during collection, so you can line up takes from the robot’s point of view.
Recording an episode
1
Drive to the start pose
The session is already in Data Collection — put on the headset, engage tracking, and drive the arms to where you want the take to begin.
2
Start a take
Press A to begin recording — a 3-second countdown runs, then frame capture begins. Press A again during the countdown, or X, to cancel.
3
Finish the take
Stopping is confirmation-gated — the first press arms an in-headset popup instead of stopping immediately, so a fumbled button never loses a take:
- Press A to arm Save episode? — press A again to save, or X to cancel and keep recording.
- Press X to arm Discard episode? — press X again to discard and re-record, or A to cancel and keep recording.
Collection resumes from an existing dataset at
--root; an aborted session that saved no episodes is cleaned up on shutdown.
Saved takes are integrity-checked. If the camera encoder drops frames during a take (a feed-queue overflow under heavy load), the video no longer lines up with its recorded rows — so that episode is discarded instead of saved, with an error explaining why (in the CLI output / control panel log console). Re-record it rather than adding a misaligned episode to the dataset.
The full controller bindings and headset state machine are documented in the VR Interface guide.
Next steps
Run Policy
Run a trained policy autonomously on the same machine.
collect-data reference
Every flag and the dataset capture internals.
