Feb 6, 2026
RoboticsLeRobotSO-100PlaybookChecklist
SO-100 + LeRobot: my pre-run playbook
A short, strict checklist: ports, IDs, calibration, recording, replay, and baseline validation before touching GR00T/π0.
Why this is strict
The most expensive robotics failures are process failures: skipped calibration, unstable ports, noisy demos. This playbook saves days.
Full story and thesis numbers: I Built an SO-100 and Tried to Make It Smart.
1) References (so I do not guess)
- LeRobot docs: https://huggingface.co/docs/lerobot/index
- SO-100 docs: https://huggingface.co/docs/lerobot/so100
- GR00T in LeRobot (N1.5): https://huggingface.co/docs/lerobot/main/groot
- GR00T N1.6-3B model card: https://huggingface.co/nvidia/GR00T-N1.6-3B
2) Pre-flight (every session)
12Vpower and cables: no loose connectors;- motors respond;
- calibration is up to date;
- camera stream is stable.
If any of these is red, I do not record data.
3) Ports and motor setup
lerobot-find-port
lerobot-setup-motors \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem585A0076841
lerobot-setup-motors \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem575E00317514) Calibration
lerobot-calibrate \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem58760431551 \
--robot.id=my_follower
lerobot-calibrate \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem58760431551 \
--teleop.id=my_leader5) Record demonstrations
python -m lerobot.record \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem585A0076841 \
--robot.id=my_follower \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 1280, height: 720, fps: 30}}" \
--teleop.type=so100_leader \
--teleop.port=/dev/tty.usbmodem58760431551 \
--teleop.id=my_leader \
--display_data=true \
--dataset.repo_id=${HF_USER}/so100_pickplace_v1 \
--dataset.num_episodes=50 \
--dataset.single_task="Pick the block and place it into the bin"6) Replay (cheap quality test)
python -m lerobot.replay \
--robot.type=so100_follower \
--robot.port=/dev/tty.usbmodem585A0076841 \
--robot.id=my_follower \
--dataset.repo_id=${HF_USER}/so100_pickplace_v1 \
--dataset.episode=07) Before I touch GR00T/π0
I only proceed if:
- replay is stable;
- thermals are under control;
- the dataset does not drift between sessions.
Playbook file (placeholder)
Local /public file; I will replace it with a real PDF
TXT • ~0.5 KB