LeRobot 实战:从 SO100 机械臂到端到端策略训练的 5 步保姆级指南
2026/9/20 5:14:49 网站建设 项目流程

LeRobot 实战:从 SO100 机械臂到端到端策略训练的 5 步保姆级指南

【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot

LeRobot 是 Hugging Face 开源的 PyTorch 机器人学习库,把真实机器人上的数据采集、策略训练与部署推理放进同一套接口里,底层代码都在src/lerobot/下。读完这篇指南,你会装好环境、用一条 SO100 机械臂跑通「遥操作 → 采集 → 训练 ACT 策略」的完整链路,并知道卡住时该查哪些地方。

🎯 适合谁:用一条 SO100 机械臂做端到端机器人学习

想象你桌上有一条几百块的 SO100 机械臂和一台相机:你想让它学会「把杯子推到指定位置」。传统做法是你要自己写串口通信、标定、存储、训练循环,每一块都可能踩坑。LeRobot 的做法是把这些统一成一套命令:你只管--robot.type=so100_follower这样的参数,标定、遥操作、录制、训练各是一个lerobot-*子命令。

一句话定位:LeRobot 是一个硬件无关的 Python 接口,让你「用统一命令操控不同机器人、用统一格式存数据、用统一脚本训练策略」。它原生支持的硬件从 SO100、LeKiwi 这类低成本臂,到 Reachy2、Unitree G1 这种人形/移动平台,列表在 docs/source/il_robots.mdx 里能查到。硬件不够时也不用改源码——社区用lerobot_robot_<name>前缀的插件包即可自动被发现(见src/lerobot/robots/下的 Robot 接口)。

📦 最小上手:三步装好 LeRobot 并验证

第 1 步:准备环境。官方要求 Python ≥ 3.12、PyTorch ≥ 2.7,建议用 conda 建独立环境,避免和别的依赖打架。视频解码默认走 TorchCodec,需要系统里装ffmpegconda install ffmpeg -c conda-forge即可)。

第 2 步:安装并验证。基础包故意做得很轻,只装核心 ML 依赖;按你要做的活儿再补上「extra」。下面这条命令一次装齐「采集 + 训练」所需的组合:

pip install "lerobot[core_scripts,training]" lerobot-info

lerobot-info会打印你的系统配置和已检测到的 ffmpeg 版本,能正常输出就说明装好了。各 extra 的组合如下,按你的工作流挑一个:

Extra 组合额外提供对应工作流
core_scripts数据集 + 硬件 + 可视化依赖记录 / 回放 / 标定
training数据集 + accelerate + wandb训练策略
core_scripts,training以上全部采集后直接训练

第 3 步:跑通第一个示例。不想接硬件的话,直接打开 examples/notebooks/quickstart.ipynb:在 Configuration 单元格里填好参数后 Run All,它会把标定、遥操作、录制、训练、推理每一步现成的终端命令打印出来,照抄即可。想读源码的,硬件与遥操作示例在 examples/ 下按平台分目录(如examples/so100_to_so100_EE/)。

🗺️ 能力地图:核心模块一览

LeRobot 的能力大致分成四块,各自对应src/lerobot/下的一个子目录,按下表对号入座:

模块(目录)作用适用场景
robots/+teleoperators/统一的 Robot/Teleoperator 接口,屏蔽串口与电机差异操控 SO100、LeKiwi、Reachy2 等硬件
datasets/LeRobotDataset 格式:MP4 视频 + Parquet 状态/动作,支持流式读写与增删合并采集、存储、可视化机器人数据
policies/纯 PyTorch 实现的策略模型(ACT、Diffusion、Pi0、GR00T N1.7、SmolVLA 等)模仿学习 / 强化学习 / VLA 训练与部署
scripts/一组lerobot-*命令行:record、train、eval、replay、calibrate把上面三块串成端到端流程

上这张图是 VLA(Vision-Language-Action,视觉-语言-动作模型)的策略结构:相机图像和自然语言指令一起喂进 Transformer,输出动作。它对应policies/下 GR00T、Pi0、XVLA 这类模型;而 ACT、Diffusion 这类模仿学习模型则更轻量,适合先在一条机械臂上跑通。

🔄 完整实战流程:从遥操作到训练 ACT 策略

下面走一遍最有代表性的「低成本机械臂学推杯子」链路,共五步。前四步都是现成命令,最后一步是核心。

  1. 找端口lerobot-find-port列出串口,lerobot-find-cameras opencv列出相机索引。
  2. 标定lerobot-calibrate --robot.type=so100_follower --robot.port=<端口>,每条臂首次使用前做一次。
  3. 遥操作lerobot-teleoperate,加--display_data=true可实时看到画面,确认主臂带动从臂动作顺滑。
  4. 采集lerobot-record --robot.type=so100_follower --teleop.type=so101_leader --dataset.repo_id=<用户>/my-data --dataset.num_episodes=50 --dataset.single_task="push the cup",数据按 LeRobotDataset 格式落盘,可加--resume=true断点续采。
  5. 训练:这一步是整条链路的「核心命令」,直接对采集到的数据集训练一个 ACT(Action Chunking with Transformers,动作分块 Transformer)策略:
lerobot-train \ --policy.type=act \ --dataset.repo_id=<用户>/my-data

训练完成后,用lerobot-rollout --strategy.type=base --policy.path=<checkpoint> --robot.type=so100_follower让机器人在真机上执行策略,或在仿真里用lerobot-eval跑 LIBERO、MetaWorld 等基准打分。想换策略,只改--policy.typeact/diffusion/pi0/smolvla…),其余流程不变,各策略的依赖 extra 和显存需求见 docs/source/ 下的硬件指南。

🛠️ 高频排障:三个最常见的问题

  • 现象ImportError/ 装了却没反应。原因只装了基础pip install lerobot,没带对应 extra,或系统缺ffmpeg导致视频解码失败。解法按工作流补装pip install "lerobot[core_scripts,training]",并conda install ffmpeg -c conda-forge,再用lerobot-info复核。
  • 现象lerobot-find-port没列出预期端口、连不上机器人。原因串口线松、端口被占用,或当前用户对/dev/tty*没有读写权限。解法重新插拔并lerobot-find-port确认端口,检查该端口的访问权限,WSL 下还需按 docs/source/installation.mdx 补装evdev
  • 现象训练时报CUDA out of memory原因相机分辨率高且batch_size偏大,显存被图像张量吃满。解法降低相机分辨率或减小 batch,也可把--policy.device临时设成cpu先跑通流程,再逐步调参。

📚 资源与行动清单

  • 文档:docs/ 目录按主题组织,从 docs/source/installation.mdx(安装)到 docs/source/il_robots.mdx(各硬件采集与训练)再到各策略 README(如 docs/source/policy_act_README.md),是排障和深入的第一入口。
  • 示例:examples/ 下的教程(如 examples/tutorial/act/)给出从训练到调用的最小可运行代码;examples/notebooks/quickstart.ipynb则把全流程命令一次性生成。
  • 社区:加入官方 Discord 与 X(@LeRobotHF)跟踪更新;问题与需求走 GitHub Issues。

接下来你可以做:

  • 打开 quickstart notebook,把 Configuration 单元格改成你自己的端口与任务描述,Run All 生成你的专属命令。
  • 先不接硬件:用 Hub 上的现成数据集跑一条lerobot-train --policy.type=act,熟悉训练与 checkpoint 结构。
  • 接上你的 SO100,走完标定 → 遥操作 → 录制 → 训练 → rollout 的五步闭环,再按 docs/source/ 换--policy.type试一个 VLA 模型。
  • src/lerobot/robots/src/lerobot/policies/的接口,了解如何为自己的机器人或策略写一个插件。

【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询