Skip to main content

Almond Axol SDK

Axol dual-arm robot

Command-line interface and Python SDK for the Almond Axol dual-arm robot. CLI invoked as axol <command> [flags].

The browser front-ends live under web/: a VR teleoperation interface (WebXR, hosted at axol.almond.bot), a web control panel that drives the robot from a browser via axol serve, and a diagnostics dashboard for live motor telemetry and health. See web/README.md for the front-end details.

The full documentation is hosted at docs.almond.bot. The sources live under docs/, and the pages below link to them.

New here? See Teleoperation to go from installation to a live session, or the Web Control Panel guide to drive Axol from a browser.

Requirements

  • Linux
  • Python 3.13+
  • (Optional) NVIDIA Jetson (e.g. a ZED Box) — required for the GMSL-attached ZED cameras (data collection / policy inference).

Installation

One-command install (recommended)

One command installs uv, the axol CLI (from PyPI, with every extra), and a root systemd service that keeps axol serve running at boot:

curl https://axol.almond.bot/install -fsS | bash

Then open axol.almond.bot and connect to the machine. The install tracks releases: when a newer release exists, the control panel shows an update banner, and pressing Update reinstalls at the new release and restarts the server once idle.

Development install

Install the package from a clone using uv — every dependency resolves from PyPI (kinematics comes through our published forks, almond-pyroki and almond-jaxls):

uv sync

Then activate the virtual environment so the axol CLI is on your path (or prefix every command with uv run):

source .venv/bin/activate

Install optional dependency groups as needed:

Extra Contents When to use
lerobot LeRobot (from PyPI, >= 0.6.1) collect-data, run-policy
sim viser teleop --sim
uv sync --extra lerobot --extra sim   # everything

The ZED Python bindings (pyzed) are not on PyPI and must be installed separately after the ZED SDK is installed:

axol zed.install

Streaming the ZED cameras to the headset (teleop --cameras, collect-data) encodes on the Jetson's NVENC via GStreamer and sends over WebRTC with aiortc. The encode path needs the system GStreamer NVENC tools plus the patched ZED source plugins, so it isn't a dependency extra. Install it once (and, on a Jetson, pin the NVENC/VIC clocks for low-latency encode):

axol gst.install
axol gst.build-zed   # build the patched ZED source plugins (needs the ZED SDK)
axol jetson.setup    # Jetson only; no-op elsewhere

Before using any motor or robot commands, initialize the CAN hardware:

axol can.setup

To drive Axol from a browser instead of the terminal, build the web UI once (it's served by axol serve):

cd web
npm install
npm run build --workspace=packages/axol-vr-client   # client package first
npm run build --workspace=app                        # → web/app/dist

See the installation guide for the full walkthrough.

Sitemap

Get Started

Operations

Each operation can be driven from the web control panel or the CLI:

Remote Teleop

  • Remote Teleop — drive over the internet by sideloading Tailscale on a Meta Quest

Web Interfaces

  • Web Control Panel — drive the robot from a browser via axol serve
  • Diagnostics Dashboard — live motor telemetry, health tiles, and diagnostics scripts, served by axol serve
  • VR Interface — the in-repo WebXR teleop app (web/)
  • Quest over USB — low-latency wired controller transport (poses over a USB adb tunnel; camera stays on the LAN)

Advanced

CLI Reference

Python API

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

almond_axol-0.1.26.tar.gz (5.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

almond_axol-0.1.26-py3-none-any.whl (634.7 kB view details)

Uploaded Python 3

File details

Details for the file almond_axol-0.1.26.tar.gz.

File metadata

  • Download URL: almond_axol-0.1.26.tar.gz
  • Upload date:
  • Size: 5.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for almond_axol-0.1.26.tar.gz
Algorithm Hash digest
SHA256 f06760a98dce5ad266d1bd125a78d10597e60839c92c82c3e2f113148737c481
MD5 d632ab90a849686186a749d5650dd617
BLAKE2b-256 3121b4dfbe7dac95abdf29c9182ba1216c4e01c03f410493b61ffcb23c5577c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for almond_axol-0.1.26.tar.gz:

Publisher: publish.yml on almond-bot/axol

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file almond_axol-0.1.26-py3-none-any.whl.

File metadata

  • Download URL: almond_axol-0.1.26-py3-none-any.whl
  • Upload date:
  • Size: 634.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for almond_axol-0.1.26-py3-none-any.whl
Algorithm Hash digest
SHA256 de61d7a43d64de22a5cb7ec32373fa66116d3c9d07a8db12da6d2000728c33eb
MD5 eacef997f9138797f4a5b93dac857669
BLAKE2b-256 42857501f2372a629bc9840f222e418e24e8e20dbc4f560ec300e008bf4aada8

See more details on using hashes here.

Provenance

The following attestation bundles were made for almond_axol-0.1.26-py3-none-any.whl:

Publisher: publish.yml on almond-bot/axol

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page