Skip to main content
Run Policy executes a trained policy on the robot autonomously: it streams the robot’s joint positions and camera frames to the policy, which returns action chunks that drive the arms. It runs on the same machine as data collection — the computer wired to the robot with the ZED cameras attached. By default, inference runs locally on that machine. Optionally, it can be offloaded to a more powerful machine on the network (e.g. a desktop with a discrete GPU): the robot machine sends observations over gRPC and receives actions back. You can launch a rollout from the web control panel or the CLI (axol run-policy).

Before you start

  • Axol installed (one-command install), CAN up, and motors verified.
  • The ZED cameras the policy was trained on connected (at least one), with their serials on hand — see the Data Collection tip for listing them.
  • A trained checkpoint (local path or HuggingFace repo) and its policy type (act, smolvla, pi0, …). Assign the same cameras, and use the same camera resolution, stereo setting, and fps the policy was trained on.
  • For local GPU inference, a CUDA-capable PyTorch install — or offload to a remote server (below).

Run it

1

Connect the robot and assign cameras

Connect the Axol Host and Axol, then assign the cameras the policy was trained on in the Cameras settings tab (at least one). See Cameras.
2

Select Run Policy and fill the fields

Pick Run Policy. Set the policy path, policy type, and task description — the per-run inputs. Remote inference (server host/port), aggregation, and chunking now live in the Settings Inference tab.
3

Start and control rollouts

Press Start, then use the Episode control box that appears:To end the run, press Stop in the card header.
--episode_time_s is a safety cap (default 120 s) that falls back to the same save / discard / quit prompt if no key is pressed. If a dataset repo is supplied, each saved episode is appended to a LeRobot-format dataset. Between episodes the arms return to the rest pose via a collision-aware IK trajectory.

Offload inference to a remote server (optional)

1

Start the inference server on the GPU machine

The inference server runs on the GPU machine from the CLI — it isn’t one of the control panel’s operations. With the lerobot extra installed there:
Listens on 0.0.0.0:8765 until Ctrl+C. See inference-server.
2

Point Run Policy at it

On the robot machine, run Run Policy exactly as above but pointed at the server’s address:
In the Settings Inference tab, set the server host to the GPU machine’s address (e.g. 192.168.1.99) and Save, then press Start in the Run Policy panel.
The server downloads the policy itself, so --policy_path must be reachable from it (e.g. a HuggingFace Hub repo ID).

Next steps

Data Collection

Record more episodes to improve the policy.

run-policy reference

Every flag, aggregation strategy, and threading detail.