Skip to main content
This guide assumes you have a physical SO-101 arm connected over USB serial. For a no-hardware run, see the simulation guide.

1. Setup (one-time)

From the repo root:

2. Check environment and ports

Verifies:
  • Python / uv availability
  • Detected serial ports
  • torch, yaml, rfx, and native rfx._rfx extension imports

3. Setup motor IDs and baud (first time)

1

Normalize IDs and set baud

2

Fallback if uv is unstable

4. Run the demo

The demo connects to the SO-101 through the core robot primitive, resets to home, runs a gentle sinusoidal motion, and returns home on exit.

Bimanual setup (two arms)

Default bimanual config: rfx/configs/so101_bimanual.yaml.
Override the config directly:

Export formats during teleop

Minimal Python API

Dataset collection

Collect directly into a LeRobot dataset: