Skip to main content

Galaxea A1 Robot for LeRobot

A third-party LeRobot Robot plugin for the Galaxea A1 Runtime.

LeRobot 0.6 Apache-2.0 License

Galaxea A1 follower with a RealSense D405 wrist camera

This package registers the LeRobot Robot type galaxea_a1. It talks to the separately supervised Galaxea A1 Runtime over a local Unix socket; ROS, vendor drivers, cameras, process supervision, and motor publication remain in the Runtime. The transport is an A1 implementation detail, not a generic robot API.

Install

python -m pip install lerobot_robot_galaxea_a1

The Galaxea A1 Runtime must be installed and supervised separately.

LeRobot integration

Convention Value
Distribution lerobot_robot_galaxea_a1
Type galaxea_a1
Config GalaxeaA1Config
Robot GalaxeaA1
Supported LeRobot >=0.6,<0.7

The distribution prefix, module layout, config registration, class names, and package exports follow LeRobot's third-party hardware conventions. LeRobot CLI entrypoints discover the plugin after installation.

GalaxeaA1Config requires an absolute unix:/// Runtime endpoint. Creating the config and Robot does not connect to the service, and both LeRobot feature properties remain available while it is offline.

Device contract

The plugin owns the fixed control feature names below. At connection time it requires the Runtime manifest to match them exactly; the Runtime remains the source of truth for configured joint limits.

joint_1_rad ... joint_6_rad  absolute radians
gripper_normalized           continuous 0..1

connect() opens a Runtime session without moving the arm. send_action() validates and submits six named joint targets plus the gripper target, then returns the action accepted by the Runtime. disconnect() releases the command lease; it does not home the arm or open the gripper.

Only one command session may hold the A1 control lease. Session heartbeats keep the connection alive but do not extend the command-inactivity deadline; an idle or failed command session loses control. If command-resource cleanup fails, the service stops instead of admitting another owner. The endpoint directory and socket are restricted to the Runtime user (0700 and 0600 respectively), and a pre-existing endpoint is never removed implicitly. Calibration and reset remain explicit Runtime workflows and are not remote Robot operations.

Pairing with the A1 SO-Leader

The modified leader reports degrees; the A1 accepts radians. Do not connect them through the identity processors used by the generic LeRobot 0.6 lerobot-teleoperate and lerobot-record commands.

Use make_galaxea_a1_processors() with LeRobot's programmatic APIs, or use the tracked A1 Runtime workflow. The supplied processor anchors leader deltas to the A1 startup pose and applies explicit degree conversion, sign, scale, bias, joint limits, and gripper normalization.

Recording boundary

This plugin exposes control observations: six measured joints and normalized gripper state. It does not reopen Runtime-owned cameras or make joint control depend on EEF tracking.

The A1 Runtime combines this control path with EEF feedback and paired cameras, then commits the canonical LeRobotDataset v3.0 dataset. Synchronization, provenance, atomic episode commit, and safety lifecycle belong there.

Development

uv venv --python 3.12
uv pip install -e . pytest ruff build
uv run --no-project pytest
uv run --no-project ruff check .
uv run --no-project ruff format --check .
uv build

Metadata

Release files for lerobot-robot-galaxea-a1 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lerobot-robot-galaxea-a1 0.3.0
File Size Uploaded
lerobot_robot_galaxea_a1-0.3.0.tar.gz 28.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lerobot-robot-galaxea-a1 0.3.0
File Interpreter ABI Platform
lerobot_robot_galaxea_a1-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 57.0 kB

Release files / lerobot_robot_galaxea_a1-0.3.0.tar.gz

Download URL lerobot_robot_galaxea_a1-0.3.0.tar.gz
Size 28.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4317949acd8f74a6701c273c67c644088fca83f0e17d2213bb8faab391bc178d
BLAKE2b-256 checksum
How to use checksums
4de4605d9b24e2b6a38ee33e78a8e9c61bfce6b6cd155aa00b409e574f99c231
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / lerobot_robot_galaxea_a1-0.3.0-py3-none-any.whl

Download URL lerobot_robot_galaxea_a1-0.3.0-py3-none-any.whl
Size 29.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5dd30ec2d0c67081decb3808b4f3d37b0d4655677eede4df62cf873994fc1642
BLAKE2b-256 checksum
How to use checksums
1fbc88d336fbd57f11b4980ad77e6642eea0b96f5c189f9ec07a0cdacb14b51d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.4.0

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page