# 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. 常用准备 ```bash pip install pynput # 采数时用键盘 空格/回车 开始/停止 episode huggingface-cli login # HF token(推/拉 数据集、模型) ``` ## 1. 探测硬件 ```bash lerobot-find-port # 列出 USB 串口,认出手臂(和底盘轮)的 /dev/tty* lerobot-find-cameras # 列出 USB 相机及其 index ``` > 记住每个设备对应的端口/索引,下面命令要用。多设备时**电机 ID 按顺序烧录**,别串。 ## 2. 校准(每条臂都要) ```bash # follower(执行从手) lerobot-calibrate --robot.type=so101_follower --robot.port= --robot.id=my_follower # leader(遥操主手) lerobot-calibrate --robot.type=so101_leader --robot.port= --robot.id=my_leader ``` > 校准会引导你把每个关节到极限位置、记 min/max/mid。产物存到 `--calibration_dir`(默认 `calibrations/`),**别丢**。 ## 3. 遥操作(验证跟手) ```bash lerobot-teleoperate \ --robot.type=so101_follower --robot.port= --robot.id=my_follower \ --teleop.type=so101_leader --teleop.port= --teleop.id=my_leader ``` > 拿 leader 摆位 → follower 应同步跟上。**跟手不顺先查 ID/齿轮/校准**,别急着采数。 ## 4. 采数(P1 核心) ```bash lerobot-record \ --robot.type=so101_follower --robot.port= --robot.id=my_follower \ --teleop.type=so101_leader --teleop.port= --teleop.id=my_leader \ --dataset.repo_id=$HF_USER/so101_ \ --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 拉) ```bash # ACT(P1 快速验证) lerobot-train --policy.type=act --dataset.repo_id=$HF_USER/so101_ # SmolVLA(主力,24GB 单卡全量微调) lerobot-train --policy.type=smolvla --dataset.repo_id=$HF_USER/so101_ ``` > 3090 24GB:SmolVLA 全量、π0-FAST 用 LoRA。GPU 不足时降 batch / 用 `--policy.batch_size`。 ## 6. 评测 / 部署到真机(在 3080 主家跑,臂插它) ```bash # 两种名字都见过(随版本),用 --help 确认当前是哪个 lerobot-eval --policy.path= --robot.type=so101_follower --robot.port= --robot.id=my_follower # 或 lerobot-rollout --policy.path= --robot.type=so101_follower --robot.port= --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`。