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

Uploaded Python 3

File details

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

File metadata

  • Download URL: almond_axol-0.1.24.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.24.tar.gz
Algorithm Hash digest
SHA256 0157c3196ba5aeb8383eca36819dafd71b921955dc6b18c6645f0bc16a75430f
MD5 4d19065ab77472bfbf7a3c101753ddad
BLAKE2b-256 04fe78c86c5d8e0cd12a24fa97a3ea43eb5fd9752a6f497a9af9654db74db308

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: almond_axol-0.1.24-py3-none-any.whl
  • Upload date:
  • Size: 619.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.24-py3-none-any.whl
Algorithm Hash digest
SHA256 1c08695eb0be9908e47fb6bb0ba3d21dc7b9373dfc3b04306321fbeaa7aa7a14
MD5 00396f1eaae4f12947720988671bc258
BLAKE2b-256 9645adf98ac3ea0fcf1665ac2845f3fcc3a474e82ddd68d37621917d68bbbf70

See more details on using hashes here.

Provenance

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