rdk-embodied-lerobot

Deploy LeRobot ACT and Pi0 VLA policies onto RDK S-series boards via ONNX export and BPU compilation.

3|Updated Aug 6, 2026
One-click install
npx skills add https://github.com/D-Robotics/rdk-skills --skill rdk-embodied-lerobot-d-robotics
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rdk-embodied-lerobot
Source: https://github.com/D-Robotics/rdk-skills/tree/main/skills/rdk-embodied-lerobot
Command: npx skills add https://github.com/D-Robotics/rdk-skills --skill rdk-embodied-lerobot-d-robotics

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Trained robot-control policies (LeRobot ACT, Pi0/openpi VLA) cannot run directly on RDK boards — the BPU only executes OE-compiled .hbm files. This Skill guides the full export → compile → on-board control loop so a trained checkpoint actually drives a robot arm on RDK S100/S600. ## Core Features & Use Cases - ACT deployment (three stages): Export a trained ACT checkpoint to two ONNX submodels with export_bpu_actpolicy.py, compile to .hbm via build_all.sh inside the OE 3.7.0 Docker toolchain, then run bpu_control_robot.py on the board. - Branch/board routing: Picks the correct rdk_LeRobot_tools branch (s100/s600/stable), march (nash-e vs nash-p), and LeRobot version (upstream v0.5.2 vs the legacy D-Robotics fork). - Pi0/openpi VLA on S600: Sets up the client-server runtime — s600_inference_node + piper_node on the board, Pi0 inference on the OE-LLM server (port 8888) — with the correct HBM model and norm_stats.json. - Use Case: You trained an ACT policy on an SO-101 arm and want it running on an RDK S100: the Skill walks you through ONNX export with type: nash-e, OE Docker compilation, building the Python-3.12 bpu_runtime C++ extension, and launching the control loop. ## Quick Start Ask the agent to deploy your trained ACT policy to an RDK S100, providing the checkpoint path and target board, and it will walk you through ONNX export, .hbm compilation, and the on-board control loop.

Frequently Asked Questions about rdk-embodied-lerobot

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a trained ACT policy to an RDK S100 board?▼

Export the checkpoint to ONNX with export_bpu_actpolicy.py (type: nash-e), compile to .hbm by running build_all.sh inside the OE 3.7.0 Docker on an x86 host, then copy bpu_output/ to the board and run bpu_control_robot.py. Use the s100 branch of rdk_LeRobot_tools with upstream huggingface/lerobot v0.5.2.

What march value should I use for ACT on S600 vs S100?▼

S600 uses march nash-p via the s600 branch and bpu_export_config_s600_calfix.yaml, while S100 uses nash-e via the s100 branch. Both compile to .hbm with the OE 3.7.0 toolchain, but the march values are not interchangeable.

Should I use the D-Robotics lerobot fork or upstream huggingface/lerobot?▼

Use upstream huggingface/lerobot v0.5.2 for the current s100 and s600 branches. The D-Robotics/lerobot fork is only for the legacy stable branch when you must load v2.1-format datasets; mixing them causes dataset load errors.

Why does hbm-runtime fail to import on S100 with Python 3.12?▼

The PyPI hbm-runtime wheel is built for Python 3.10 only, so it cannot import under Python 3.12. On the s100 branch, build the bundled bpu_runtime/ C++ pybind11 extension (BPUACTRuntime) instead; bpu_control_robot.py auto-falls back to it.

Does Pi0/openpi run as a single process on the RDK board?▼

No, Pi0/openpi is client-server. The S600 runs the client (s600_inference_node for camera sync and execution) plus piper_node for CAN arm control, while Pi0 inference runs on an OE-LLM server reached on port 8888. Inputs are 3 images, a [14] state, and a text prompt; output is a [50,14] action sequence.

Can I deploy ACT on RDK X5 boards with this workflow?▼

Only S100 (nash-e) and S600 (nash-p) are verified end-to-end for ACT deployment. The export script has a bayes branch for X5, but a compilable .bin is not a verified arm deployment, so X5 is not a supported target.