- Real Axol robot
- Simulator
Install
The fastest path is the quick install, which installs the Or, from a clone, install with
axol CLI and starts the web control panel as a service:uv and activate the virtual environment so the axol CLI is on your path:Set up CAN (one-time)
Plug in the Axol Hub, then run the one-time CAN setup. This writes udev rules, assigns fixed interface names, and registers a startup script so the interfaces come up automatically on every reboot.After any subsequent replug mid-session (without a reboot), bring the interfaces back up with:
sudo is invoked automatically. You will not need to run this again unless you reinstall the OS or swap the Axol Hub.Verify motors
With the robot powered on and CAN up, read a status snapshot from one motor to confirm communication is working:You should see position, velocity, torque, temperature, and voltage. Any
DISABLED or error status means power or CAN isn’t reaching that motor.Authorize the TLS certificate
The VR app connects over a self-signed HTTPS/WSS connection, so its certificate needs a one-time approval in the headset browser — otherwise the WebSocket handshake is silently rejected.The easiest way is from the app itself: when you press Connect (next step) and the certificate hasn’t been approved yet, the connection fails and an Authorize certificate button appears. Tap it, proceed past the warning in the popup, and the app reconnects automatically.You only need to do this once per headset (the cert is cached in
~/.almond/vr/certs/ on the host). To approve it manually instead, open https://<hostname>.local:8000 or https://<local-ip>:8000 in the headset browser and proceed past the warning.Teleop
teleop CLI reference for the full flag list (stiffness, gripper limits, per-joint gains, config files).
Controller layout

| # | Button | Action |
|---|---|---|
| 1 | Left grip | Press both 1 + 2 to enable arm movement; press either alone to disable |
| 2 | Right grip | Same as above |
| 3 | Left trigger | Actuate left gripper |
| 4 | Right trigger | Actuate right gripper |
| 5 | X | Reset — returns both arms to the rest pose |
| 7 | Y | Exit AR — closes the VR session |
Grip is a toggle, not a hold. Press both grips together to start moving the arms; press either grip on its own to freeze them.
Network tip
If VR tracking feels jittery or arrives in bursts, configure the following on your router or access point:| Setting | Value |
|---|---|
| DTIM interval | 1 |
| Beacon interval | 100 ms |
| WMM APSD (U-APSD) | disabled |
Next steps
Data Collection
Record teleoperation episodes to a LeRobot dataset.
Policy Inference
Run a trained policy autonomously.
