axol run-policy.
For LeRobot policies, inference runs on the robot’s computer by default. You can move it to a more powerful computer on the network instead. Custom policies connect to an endpoint you run, through the custom policy interface.
Before you start
- Install Axol with the one-command install. Bring up CAN and check the motors.
- Connect at least one of the ZED cameras the policy was trained on, and have their serial numbers ready. See the Data Collection tip for how to list them.
- Have a trained checkpoint and its policy type (
act,smolvla,pi0and so on). The checkpoint can be a local path or a HuggingFace repo. - Use the same cameras, camera resolution, stereo setting and recording rate the policy was trained on.
- For GPU inference on the robot’s computer, you need a PyTorch build with CUDA. Otherwise, use a remote server (below) or pass
--device cpu.
On a Jetson, the hosted install comes with the CPU-only PyTorch build. For GPU inference, install a JetPack-compatible Torch and Torchvision yourself. Axol’s updater doesn’t replace a build you installed.
Run it
- Control Panel
- CLI
1
Connect the robot and assign cameras
Connect the Axol Host and Axol. Under Axol settings → Cameras, assign at least one of the cameras the policy was trained on. See Cameras.
2
Select Run policy and fill in the fields
Pick Run policy and fill in Policy path, Policy type and Task. The remote server’s host and port, and the chunk settings, are in the Inference tab of Settings.
3
Start and run episodes
Press Start, then use the Episode control box:
To end the run, press Stop at the top of the card.
Episodes
--episode_time_slimits each episode, 120 s by default. When it runs out, you get the same save, discard or quit choice.- If you set a dataset repo ID, each saved episode is added to a LeRobot dataset.
- Discard makes the arms go limp first, because a failed episode often leaves them in a bad spot. Move them clear by hand, then return to rest.
Contact stops
Between episodes, the arms return to the rest pose along a path that avoids collisions. The return is guarded. If an arm meets resistance, such as a held object or a person, the move stops and the arms go limp.- Move the arms clear by hand.
- Press Enter in the terminal or Return to rest in the panel. Axol plans a new return from where the arms are.
--reset_torque_threshold (default 6.0 Nm, 0 turns it off).
You can also stop an episode when the arms push hard while the policy drives them. This check is off by default, because a policy often pushes on the scene on purpose. Set Policy contact stop in the panel, or --policy_torque_threshold. The panel suggests 16 Nm.
When it trips, the episode is dropped without saving and the arms go limp. Move them clear, then return to rest and start the next episode.
Smooth motion
Axol limits joint speed and acceleration on every command the policy sends. For LeRobot policies, Axol also blends overlapping chunks (--ensemble_blend_s, --align_fade_s). A custom policy’s server does any blending itself, and Axol runs its plan as sent.
Smooth motion still needs consistent targets and fast enough inference. See run-policy and custom policy timing.
Offload LeRobot inference to a remote server (optional)
1
Start the inference server on the GPU computer
Start the server from the CLI. The control panel doesn’t run it. Install the Replace the address with the GPU computer’s LAN IP. Leave out
lerobot extra on the GPU computer, then run:--host to listen on all interfaces (0.0.0.0). The server listens on port 8765 until you press Ctrl+C. See inference-server.2
Point Run Policy at it
On the robot’s computer, run Run Policy as above with the server’s address:The server downloads the policy, so it must be able to reach
- Control Panel
- CLI
In the Inference tab of Settings, set the server host to the GPU computer’s address, such as
192.168.1.99, and press Save. Then press Start in the Run policy panel.--policy_path. A HuggingFace Hub repo ID works.Next steps
Config Parameters
Every setting for run policy, with its default.
Data Collection
Record more episodes to improve the policy.
run-policy reference
Every flag and aggregation strategy.
Run Your Own Policy
Drive the arms from a model that isn’t a LeRobot checkpoint.
