Skip to content

almond-bot/axol

Repository files navigation

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) and a web control panel that drives the robot from a browser via axol serve. 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 the Teleoperation quickstart to go from installation to a live teleoperation session, or the Web Control Panel guide to drive Axol from a browser.

Requirements

  • Linux
  • Python 3.13+
  • (Optional) NVIDIA Jetson — if ZED cameras are used.

Installation

Quick install (recommended)

One command installs uv, the axol CLI (from GitHub, with every extra except cuda/dev), 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 keeps itself in sync with main: when the control panel connects, the server upgrades in the background and restarts onto the new version once idle.

Development install

Install the package from a clone using uv. pyroki and lerobot are sourced from Git and are resolved automatically:

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 GitHub) collect-data, run-policy
sim viser teleop --sim
video aiortc Streaming the ZED camera feeds to the headset over WebRTC (teleop --zed_host, collect-data)
cuda JAX with CUDA 13 support GPU-accelerated JAX (IK solver used by teleop); note that CPU is usually faster for the JAX IK solver
dev OpenCV (headless) Development / debugging
uv sync --extra lerobot --extra sim --extra video   # teleoperation + data collection
uv sync --extra lerobot --extra cuda                # policy execution on GPU
uv sync --extra lerobot --extra sim --extra video --extra cuda   # everything

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

axol zed.install

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

Quickstart

Web Interfaces

CLI Reference

Python API

About

Python SDK and CLI for Axol. Includes a bimanual IK solver, low-level CAN motor interface, VR teleoperation pipeline, ZED camera streaming, LeRobot bindings, and a joint tuning toolkit. All open source.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors