# Docs > Command-line interface and Python SDK for the Almond Axol dual-arm robot. ## Docs - [Almond Axol](https://docs.almond.bot/index.md): Command-line interface and Python SDK for the Almond Axol dual-arm robot. - [Hardware Guide](https://docs.almond.bot/hardware.md): Overview and setup guide for Axol. - [Installation](https://docs.almond.bot/installation.md): Install Axol on the robot machine with one command, then open the web control panel. - [Teleoperation](https://docs.almond.bot/operations/teleop.md): Drive Axol live from a VR headset — from the web control panel or the CLI, on real hardware or in sim. - [Gravity Compensation](https://docs.almond.bot/operations/gravity-comp.md): Hold the arms weightless so you can move them by hand — from the web control panel or the CLI. - [Data Collection](https://docs.almond.bot/operations/data-collection.md): Record VR teleoperation episodes to a LeRobot dataset — from the web control panel or the CLI. - [Replay Dataset](https://docs.almond.bot/operations/replay-dataset.md): Replay a recorded LeRobot dataset episode on the arms — from the web control panel or the CLI. - [Train a Policy](https://docs.almond.bot/operations/train-policy.md): Train a model on your recorded Axol data using the standard LeRobot training pipeline. - [Run Policy](https://docs.almond.bot/operations/run-policy.md): Run a trained policy autonomously — from the web control panel or the CLI, locally or on a remote server. - [Remote Teleop](https://docs.almond.bot/guides/remote-teleop.md): Drive Axol over the internet from anywhere — put the Quest and the robot machine on the same Tailscale network. - [Web Control Panel](https://docs.almond.bot/guides/control-panel.md): Drive Axol from a browser — connect the Axol host and robot, assign the cameras, then run any operation without touching the terminal. - [Diagnostics Dashboard](https://docs.almond.bot/guides/diagnostics-dashboard.md): Live motor telemetry, health status, and diagnostics scripts in the browser. - [VR Interface](https://docs.almond.bot/guides/vr-interface.md): The WebXR teleop app that streams Quest controller pose to the Axol SDK — now hosted in this repo under web/. - [Quest over USB](https://docs.almond.bot/guides/quest-over-usb.md): Stream Quest controller poses to the robot over a USB cable instead of Wi-Fi for a low-latency teleop link. - [Quest Without Wearing It](https://docs.almond.bot/guides/quest-headless.md): Keep the Quest awake with nobody wearing it — disable the proximity sensor so headless teleop and data-collection sessions keep running. - [Development install](https://docs.almond.bot/advanced/development-install.md): Install Axol from a clone with uv for working on the SDK — optional extras, the headset-video stack, and building the web UI. - [Command configuration](https://docs.almond.bot/cli/configuration.md): How the teleop, gravity-comp, waypoints, collect-data, replay-dataset, run-policy, and inference-server commands are configured with draccus. - [serve](https://docs.almond.bot/cli/serve.md): Run the Axol web control panel — drive the robot from a browser instead of the terminal. - [can.setup](https://docs.almond.bot/cli/can-setup.md): One-time CAN bus setup for the Almond Axol Hub. - [can.enable](https://docs.almond.bot/cli/can-enable.md): Manually re-run the CAN interface bring-up. - [can.driver](https://docs.almond.bot/cli/can-driver.md): Build and install the gs_usb kernel driver when the kernel lacks it. - [lift.home](https://docs.almond.bot/cli/lift-home.md): One-time calibration (homing) of the telescoping lift. - [lift.goto](https://docs.almond.bot/cli/lift-goto.md): Move the telescoping lift to a target height. - [motor.info](https://docs.almond.bot/cli/motor-info.md): Read and print a full status snapshot from one motor or every motor on a bus. - [motor.health](https://docs.almond.bot/cli/motor-health.md): Probe every motor on both arms and report which responded. - [diag.rom-enable](https://docs.almond.bot/cli/diag-rom-enable.md): Range-of-motion soak test: sweep every joint for two hours. - [diag.rom-disable](https://docs.almond.bot/cli/diag-rom-disable.md): Open the grippers left clamped by the ROM test and power down. - [diag.zed-cable](https://docs.almond.bot/cli/diag-zed-cable.md): Verify a ZED camera cable by capturing and validating frames. - [motor.set-can-id](https://docs.almond.bot/cli/motor-set-can-id.md): Change a motor's CAN ID and persist it to flash. - [motor.set-zero-pos](https://docs.almond.bot/cli/motor-set-zero-pos.md): Set a motor's zero-position reference to its current mechanical position. - [motor.dump-config](https://docs.almond.bot/cli/motor-dump-config.md): Read every configuration parameter from one or all motors and save a snapshot. - [motor.set-config](https://docs.almond.bot/cli/motor-set-config.md): Read or write a single motor configuration parameter. - [motor.restore-config](https://docs.almond.bot/cli/motor-restore-config.md): Write a saved configuration snapshot back to motors. - [motor.flash](https://docs.almond.bot/cli/motor-flash.md): Flash a firmware image to a MyActuator motor over CAN. - [teleop](https://docs.almond.bot/cli/teleop.md): Launch a VR teleoperation session on the robot or simulator. - [collect-data](https://docs.almond.bot/cli/collect-data.md): Record teleoperation episodes to a LeRobot-format dataset. - [replay-dataset](https://docs.almond.bot/cli/replay-dataset.md): Replay a recorded LeRobot dataset episode on the robot. - [run-policy](https://docs.almond.bot/cli/run-policy.md): Run a trained policy autonomously on the robot with async inference. - [inference-server](https://docs.almond.bot/cli/inference-server.md): Serve policy inference on a separate, more powerful machine for run-policy. - [provision](https://docs.almond.bot/cli/provision.md): Install or refresh the non-PyPI and system pieces — adb, pyzed, GStreamer/PyGObject, and the patched zed-gstreamer plugins. - [zed.driver](https://docs.almond.bot/cli/zed-driver.md): Upgrade the ZED Box Duo camera driver (stereolabs-zedbox-duo) to the pinned known-good release. - [zed.install](https://docs.almond.bot/cli/zed-install.md): Install the pyzed Python wheel matching the installed ZED SDK version. - [gst.install](https://docs.almond.bot/cli/gst-install.md): Install the host-side GStreamer + PyGObject support for the GPU-resident ZED camera pipeline. - [gst.build-zed](https://docs.almond.bot/cli/gst-build-zed.md): Build and install the patched zed-gstreamer plugins (sensor-accurate timestamps) on a Jetson. - [jetson.setup](https://docs.almond.bot/cli/jetson-setup.md): Pin the Jetson NVENC/VIC and CPU clocks for the real-time loops. - [tune.pid](https://docs.almond.bot/cli/tune-pid.md): Tune Kp/Kd gains for a single joint via sinusoidal or step-response tracking. - [tune.friction](https://docs.almond.bot/cli/tune-friction.md): Identify the friction-model parameters for one joint via a velocity sweep. - [tune.repeatability](https://docs.almond.bot/cli/tune-repeatability.md): Measure how reliably the left arm returns to the same pose after many motions. - [gravity-comp](https://docs.almond.bot/cli/gravity-comp.md): Hold both arms in gravity-compensation mode so you can move them by hand. - [waypoints](https://docs.almond.bot/cli/waypoints.md): Teach poses by hand in gravity comp, then replay them as straight-line moves. - [Core Concepts](https://docs.almond.bot/api/concepts.md): Async context managers, joint arrays, and telemetry — shared conventions across the Axol SDK. - [almond_axol.robot](https://docs.almond.bot/api/robot.md): Hardware controller (Axol), simulator (Sim), configuration, and gravity compensation. - [almond_axol.kinematics](https://docs.almond.bot/api/kinematics.md): Bimanual inverse kinematics solver using pyroki and JAX/jaxls. - [almond_axol.teleop](https://docs.almond.bot/api/teleop.md): Connect a VR headset to the robot (or simulator) for teleoperation. - [almond_axol.vr](https://docs.almond.bot/api/vr.md): Secure WebSocket server that receives VRFrame messages from the VR app. - [almond_axol.zed](https://docs.almond.bot/api/zed.md): Enumerate locally connected ZED cameras and manage the ZED X daemon. - [almond_axol.motor](https://docs.almond.bot/api/motor.md): Low-level async SocketCAN interface for individual motors. - [almond_axol.lerobot](https://docs.almond.bot/api/lerobot.md): LeRobot-compatible Robot, Teleoperator, and Camera wrappers for the Axol hardware.