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.25.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.25-py3-none-any.whl (617.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: almond_axol-0.1.25.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.25.tar.gz
Algorithm Hash digest
SHA256 bd7528f580aed4b957fd67fb5e6806e173ee0907932ac78bae375e18dad1cb04
MD5 94d9c5eebbc83627c46a5a276809a265
BLAKE2b-256 19ceedb5c8917382e740b7c30ac552659b400651888099d23af9528b79391599

See more details on using hashes here.

Provenance

The following attestation bundles were made for almond_axol-0.1.25.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.25-py3-none-any.whl.

File metadata

  • Download URL: almond_axol-0.1.25-py3-none-any.whl
  • Upload date:
  • Size: 617.8 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.25-py3-none-any.whl
Algorithm Hash digest
SHA256 8ff495c5bfee6f4693661bf0d738d93981d47371b7dda83c1b5e96e0acf71e44
MD5 3683c7275afc92fe509fff92cd8e0863
BLAKE2b-256 38661a82748c559cc9759d692675b98b6fc59c8cfe7609d331c45face025d0e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for almond_axol-0.1.25-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