5 条命令跑通 LeRobot:从安装到真机部署的落地路径
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
LeRobot 是 Hugging Face 开源的端到端机器人学习框架,用一套统一的 Python 接口把硬件控制、数据采集、策略训练和真机部署串成一条流水线,目标人群是从第一台低成本机械臂起步、想把手头机器人真正"教会"任务的人。
它解决了什么
- 硬件接口碎片化:SO100、LeKiwi、Koch、Unitree G1 各有各的串口协议和电机 SDK,换个平台就得重写一遍控制代码。场景:你刚把 SO100 遥操作跑通,想换成 HopeJR 复现同样的任务,却发现控制逻辑一行都不能复用。
- 数据格式各做各的:每个实验室存的数据结构都不一样,别人拿不走你的数据,你也训不了别人的数据。场景:想用社区里一个推箱子数据集微调策略,结果它和自家采集的字段对不上,只能重采。
- 仿真到真机没有桥梁:在仿真里调好的策略,部署到真机还要再写一套推理循环。场景:策略在 LIBERO 上 9 成了,上真机却卡在相机读取和动作频率的适配上。
LeRobot 用三样东西对应这三个问题:统一的Robot接口、标准化的LeRobotDataset格式,以及从lerobot-record到lerobot-rollout的完整 CLI 工具链。
多种机器人硬件的统一控制演示
安装环境与最小上手路径
当前版本 0.6.2 要求 Python ≥ 3.12(pyproject.toml 中明确声明),建议按下面 5 条命令走:
conda create -y -n lerobot python=3.12 && conda activate lerobot pip install 'lerobot[core_scripts,training]' # 数据采集/回放 + 训练依赖 conda install ffmpeg -c conda-forge # 视频解码依赖 lerobot-info # 验证安装然后接到 SO100 之类的机械臂上,记录第一批数据(20 集即可开始试训):
lerobot-record --robot.type=so100_follower \ --teleop.type=so100_leader \ --dataset.repo_id=yourname/my-dataset --episodes=20跨平台差异只需注意这几点:
| 平台 | 额外操作 | 说明 |
|---|---|---|
| Ubuntu 20.04+ | sudo apt install ffmpeg | TorchCodec 视频解码可用 |
| macOS | brew install ffmpeg | Apple Silicon 无额外配置 |
| Windows/WSL | conda install evdev -c conda-forge | WSL 下遥操作设备需要 evdev |
装完先跑通数据读取,确认数据集可用:
from lerobot.datasets import LeRobotDataset dataset = LeRobotDataset("lerobot/aloha_mobile_cabinet") print(dataset[0]) # 取第一帧:视频帧 + 状态 + 动作 print(dataset.meta.total_episodes)用统一接口控制任意机器人
场景:你手上不止一台机器人,但每台的连接方式、观测结构都不同。LeRobot 把控制逻辑抽象成get_observation()/send_action()两个方法,硬件细节藏在具体子类里:
from lerobot.robots.so_follower import SOFollower from lerobot.utils.robot_utils import send_policy_action_to_robot robot = SOFollower(port="/dev/ttyACM0", cameras={"top": {"type": "opencv", "index_or_path": 0}}) robot.connect() obs = robot.get_observation() action = policy.select_action(obs) robot.send_action(action)原生支持 SO100、LeKiwi、Koch、HopeJR、OMX、EarthRover、Reachy2、OpenARM、Unitree G1、reBot B601 等硬件,外加游戏手柄、键盘、手机这类遥操作设备。你的机器人不在列表里?实现Robot接口即可接入同一套工具链。
SO100 在实际抓取任务中的表现
管理标准化数据集
场景:数据采了几百个小时,想删掉几集失败的、按 8:2 切分、再合并两次采集的结果。LeRobotDataset 格式用 MP4 存视频、Parquet 存状态和动作,二者按帧同步,LeRobotDataset按索引取帧时自动处理视频解码。配套 CLI 覆盖常用操作:
lerobot-dataset-viz --repo_id=yourname/my-dataset # 浏览器可视化 lerobot-edit-dataset --repo_id=yourname/my-dataset # 删集/切分/改特征视觉-语言-动作模型的架构示意
训练策略与部署到真机
场景:数据有了,接下来是选算法、训练、部署。策略库覆盖模仿学习(ACT、Diffusion、VQ-BeT、Multitask DiT)、强化学习(HIL-SERL、TDMPC)和 VLA 模型(Pi0、Pi0Fast、GR00T N1.7、SmolVLA、XVLA、EO-1、MolmoAct2 等),训练只需一条命令:
lerobot-train --policy.type=act \ --dataset.repo_id=yourname/my-dataset从实验到生产分三步走:
- 本地验证:先在仿真基准上量化策略表现,不用碰真机——
lerobot-eval --policy.path=lerobot/pi0_libero_finetuned \ --env.type=libero --env.task=libero_object --eval.n_episodes=10 - 边缘部署:
lerobot-rollout是部署到真机的统一入口,一条命令接管控制循环:lerobot-rollout --strategy.type=base \ --policy.path=${HF_USER}/my_policy --robot.type=so100_follower \ --robot.port=/dev/ttyACM0 --task="pick up cube" --duration=60 - 长期运行:换
--strategy.type=sentry,策略持续自主运行并自动录制新数据、按 episode 切分后上传 Hub,数据闭环不用人工盯着。
专业建议:不同策略的 GPU/显存需求和训练时长差异很大,部署前先在 docs 的 Hardware Guide 里查清自己机器的预算,避免训练到一半才发现显存不够。
高频坑点
- 现象:
pip install lerobot后跑lerobot-record报电机/硬件相关 ImportError →根因:基础包只含核心 ML 依赖,硬件功能在 extras 里 →解法:装lerobot[core_scripts](记录/回放)或lerobot[hardware](接真机)。 - 现象:加载数据集时视频帧解码失败 →根因:TorchCodec 依赖系统 ffmpeg 缺失 →解法:
conda install ffmpeg -c conda-forge,PyTorch < 2.10 时系统级 ffmpeg 不生效,必须用 conda 装。 - 现象:Linux 下连机械臂提示串口无权限 →根因:当前用户不在 dialout 组 →解法:
sudo chmod 666 /dev/ttyACM0(临时)或把用户加进 dialout 组。 - 现象:Python 3.10/3.11 环境
pip install lerobot报 Requires-Python →根因:0.6.x 起要求 Python ≥ 3.12 →解法:重建 3.12 虚拟环境,旧环境直接弃用。 - 现象:VLA 类模型训练时 CUDA OOM →根因:Pi0 等大模型显存占用高 →解法:先按 Hardware Guide 核对预算,再降分辨率/批量,或改用 SmolVLA 这类轻量模型。
生态与下一步
硬件侧原生支持 13 类机器人和多种遥操作设备,社区还以lerobot_robot_*插件形式覆盖 xArm、UR5e、Franka 等第三方平台;数据侧 Hugging Face Hub 上有数千个机器人数据集可直接拉取;算法侧从 ACT 到 VLA 的谱系基本齐全,每个策略都附 GPU 需求说明。
- 新手:组装一台 SO-100,跑通遥操作与记录
- 研究者:选一个策略在 LIBERO 上复现基线
- 工程师:用 lerobot-rollout 部署策略做 A/B 评测
【免费下载链接】lerobot🤗 LeRobot: Making AI for Robotics more accessible with end-to-end learning项目地址: https://gitcode.com/GitHub_Trending/le/lerobot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考