OpenArm LeRobot Policy Server
LeRobot policy servers for OpenArm inference with dora-rs.
They serve a pretrained LeRobot policy over a Unix domain socket to the policy server nodes used in dora-openarm-evaluation:
| Command | dora node | Description |
|---|---|---|
openarm-lerobot-policy-server-local |
dora-openarm-local-policy-server | Runs on the host and listens on the socket. |
openarm-lerobot-policy-server-docker |
dora-openarm-docker-policy-server | Runs in the Docker image and connects to the socket. |
Setup
git clone git@github.com:enactic/openarm_lerobot_policy_server.git
cd openarm_lerobot_policy_server
uv sync
source .venv/bin/activate
# uv pip install --torch-backend=cu128 --reinstall torch torchvision # for CUDA 12.8
Policy
The policy is
enactic/act-openarm-2-cell-pick_up_cube_mujoco
by default. To use another one, pass a Hugging Face Hub repository ID or a local
directory with --policy, or set it to the OPENARM_LEROBOT_POLICY
environment variable. The policy must take observation.state and the
observation.images.{ceiling,head_left,head_right,wrist_left,wrist_right}
camera images as its inputs.
Local inference
openarm-lerobot-policy-server-local /dev/shm/policy-server.socket
# openarm-lerobot-policy-server-local /dev/shm/policy-server.socket --policy ${POLICY}
Then run dataflow-local-inference.yaml in
dora-openarm-evaluation
with the same SOCKET.
Docker inference
Pull a released Docker image for your PyTorch backend:
| Tag | PyTorch backend |
|---|---|
latest, cpu-latest |
CPU |
cu130-latest |
CUDA 13.0 |
cu128-latest |
CUDA 12.8 |
cu126-latest |
CUDA 12.6 |
docker pull ghcr.io/enactic/openarm_lerobot_policy_server:latest
${BACKEND}-${VERSION} such as cu128-1.0.0 is also available for each
release. main and ${BACKEND}-main are built from the main branch.
Or build the Docker image:
docker build -t ghcr.io/enactic/openarm_lerobot_policy_server:latest .
The policy and its weights are downloaded at build time, so the container runs
offline. Use --build-arg POLICY=${POLICY} to bake another policy into the
image:
docker build \
--build-arg POLICY=${POLICY} \
-t ghcr.io/enactic/openarm_lerobot_policy_server:latest \
.
PyTorch for CPU is installed by default. Use --build-arg TORCH_BACKEND=${BACKEND} to install PyTorch for another backend such as
cu128 (CUDA 12.8). Make sure to match the CUDA version with your host
machine:
docker build \
--build-arg TORCH_BACKEND=cu128 \
-t ghcr.io/enactic/openarm_lerobot_policy_server:latest \
.
Then run dataflow-docker-inference.yaml or
dataflow-docker-evaluation.yaml in
dora-openarm-evaluation.
Tests
uv run pytest
License
Licensed under the Apache License 2.0. See LICENSE for details.
Copyright 2026 Enactic, Inc.
Code of Conduct
All participation in the OpenArm project is governed by our Code of Conduct.
Metadata
Release files for openarm-lerobot-policy-server 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openarm_lerobot_policy_server-0.1.0.tar.gz | 11.7 kB | Details |
Release files / openarm_lerobot_policy_server-0.1.0.tar.gz
| Download URL | openarm_lerobot_policy_server-0.1.0.tar.gz |
|---|---|
| Size | 11.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
80ad1dcc37fe3bab3feea7a4b6c50280a1458bb10e396f62e83351502fe32bcc
|
|
BLAKE2b-256 checksum How to use checksums |
666f141abe799977fe737ebaae36defe096ac9569420c60eab5178a653f6687b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.
Transparency log