Files
lerobot_learn/docs/cli_reference.md
T

3.8 KiB
Raw Blame History

LeRobot CLI 命令参考(SO-101 · 默认在 3080 主家跑;训练命令在 3090)

⚠️ LeRobot 从 v0.3/0.4 的 python -m lerobot.xxx 改成了独立 lerobot-* 控制台命令(v0.5/0.6)。 下列命令基于调研,确切 flag 以装好后 <命令> --help 实测为准——跑完 setup 后先 lerobot-record --help 等核对一遍,把差异记回来。 前置:source ~/robot/.venv/bin/activate && cd ~/robot/lerobot && export HF_ENDPOINT=https://hf-mirror.com

0. 常用准备

pip install pynput            # 采数时用键盘 空格/回车 开始/停止 episode
huggingface-cli login         # HF token(推/拉 数据集、模型)

1. 探测硬件

lerobot-find-port             # 列出 USB 串口,认出手臂(和底盘轮)的 /dev/tty*
lerobot-find-cameras          # 列出 USB 相机及其 index

记住每个设备对应的端口/索引,下面命令要用。多设备时电机 ID 按顺序烧录,别串。

2. 校准(每条臂都要)

# follower(执行从手)
lerobot-calibrate --robot.type=so101_follower --robot.port=<PORT_F> --robot.id=my_follower
# leader(遥操主手)
lerobot-calibrate --robot.type=so101_leader  --robot.port=<PORT_L> --robot.id=my_leader

校准会引导你把每个关节到极限位置、记 min/max/mid。产物存到 --calibration_dir(默认 calibrations/),别丢。

3. 遥操作(验证跟手)

lerobot-teleoperate \
  --robot.type=so101_follower   --robot.port=<PORT_F> --robot.id=my_follower \
  --teleop.type=so101_leader    --teleop.port=<PORT_L> --teleop.id=my_leader

拿 leader 摆位 → follower 应同步跟上。跟手不顺先查 ID/齿轮/校准,别急着采数。

4. 采数(P1 核心)

lerobot-record \
  --robot.type=so101_follower   --robot.port=<PORT_F> --robot.id=my_follower \
  --teleop.type=so101_leader    --teleop.port=<PORT_L> --teleop.id=my_leader \
  --dataset.repo_id=$HF_USER/so101_<task> \
  --dataset.num_episodes=30 \
  --dataset.single_task="put the red brick in a bowl" \
  --robot.cameras="{front:{type:opencv,index_or_path:0,width:640,height:480,fps:30}}"
  • 键盘:空格=开始 episode,回车=保存。
  • 多相机(P2 双臂):--robot.cameras="{front:{...},left_wrist:{...},right_wrist:{...}}"(index 以 find-cameras 为准)。
  • 采完自动 push 到 HF Hub($HF_USER/...),3090 上即可训练。

5. 训练(在 3090 训练机上跑,数据集从 Hub 拉)

# ACT(P1 快速验证)
lerobot-train --policy.type=act    --dataset.repo_id=$HF_USER/so101_<task>
# SmolVLA(主力,24GB 单卡全量微调)
lerobot-train --policy.type=smolvla --dataset.repo_id=$HF_USER/so101_<task>

3090 24GB:SmolVLA 全量、π0-FAST 用 LoRA。GPU 不足时降 batch / 用 --policy.batch_size。

6. 评测 / 部署到真机(在 3080 主家跑,臂插它)

# 两种名字都见过(随版本),用 --help 确认当前是哪个
lerobot-eval    --policy.path=<trained_model_dir> --robot.type=so101_follower --robot.port=<PORT_F> --robot.id=my_follower
# 或
lerobot-rollout --policy.path=<trained_model_dir> --robot.type=so101_follower --robot.port=<PORT_F> --robot.id=my_follower

3090 单机直连 follower,让没被遥操的 follower 独立完成任务 = P1 验收。


P4 分布式(薄边厚芯)命令形态

  • 3080 主家(推理芯):policy server —— 不是官方 lerobot-*,而是我们自写(server/),内部调 LeRobot 的 policy 推理,输入 obs 输出 action chunk;训练仍归 3090。
  • RPi5(机器人):thin client(client/)—— 采 3 相机 + 本体状态 → 推 3080 → 收 chunk → 实时插值下发舵机/底盘 + 断链 fail-safe。
  • 复用:3080 上仍用 lerobot-record(遥操采集);训练丢给 3090 的 lerobot-train。