6 февр. 2026 г.
RoboticsLeRobotSO-100PlaybookChecklist

SO-100 + LeRobot: мой playbook перед каждым запуском

Короткий и жесткий чеклист: порты, ID, калибровка, запись, replay и минимальная валидация перед тем как трогать GR00T/π0.

Полная история, мотивация и цифры из диплома: Я собрал SO-100 и попытался сделать его умным.

1) Источники (чтобы не гадать)

Временное фото из open-source репозитория (позже заменю на свое)

2) Pre-flight (я делаю это каждый раз)

  • питание 12V и кабели: без люфтов в разъемах;
  • моторы видны и отвечают на команды;
  • калибровка актуальна;
  • камера дает стабильный фрейм.

Если хотя бы один пункт красный, я не записываю данные.

3) Порты и моторы

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.usbmodem575E0031751

4) Калибровка

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_leader

5) Запись демонстраций

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 (быстрый тест качества)

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=0

7) Если я трогаю GR00T/π0

Я делаю это только если:

  • replay стабилен;
  • контур не перегревается;
  • датасет не "плывет" от сессии к сессии.

Playbook file (placeholder)

Локальный файл в /public, позже заменю на PDF

TXT~0.5 KB