news 2026/9/17 10:37:28

LeRobot 仿真实战:如何 30 分钟跑通策略训练并落到真机

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeRobot 仿真实战:如何 30 分钟跑通策略训练并落到真机

LeRobot 仿真实战:如何 30 分钟跑通策略训练并落到真机

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

面向能跑 bash 的读者:在仿真环境里完成 LeRobot 策略训练完整闭环——录演示数据、训 ACT 策略、仿真评估、真机部署。前提:Python 3.12+,Linux/macOS,50GB 磁盘。

整体流水线速览:录数据、训练、评估、部署一张图

闭环共四步,评估指标不达标时回到数据环节改造再训:

命令职责
lerobot-record遥操作机器人录出演示 episode,存成 LeRobot 数据集
lerobot-train用数据集微调策略,输出 checkpoint 权重
lerobot-eval让策略在仿真环境中自主跑若干集,输出成功率指标

问题一:LeRobot 仿真环境怎么搭(10 分钟装好并验证)

环境要求不高:Python 3.12+、Linux 或 macOS、16GB 内存、约 50GB 磁盘(装依赖与缓存数据集)。NVIDIA GPU 可明显提速;没有也能用 CPU 跑,只是数据量大时慢一些。

git clone https://gitcode.com/GitHub_Trending/le/lerobot cd lerobot conda create -y -n lerobot python=3.12 && conda activate lerobot conda install ffmpeg -c conda-forge # 视频解码依赖 pip install -e ".[aloha,pusht,training]" # 两个仿真环境 + 训练依赖

安装后用一行命令验证环境可用:

python -c "import gym_aloha, gym_pusht, lerobot; print(lerobot.__version__)"

打印出版本号,依赖即齐了,后续所有命令都在这个环境内执行。

避坑:首次安装要下载大量依赖,速度取决于网络,中途失败就重跑同一条pip install,不要手动删环境。

问题二:模仿学习数据录制从哪来(遥操作录制与质量自查)

遥操作(teleop)即人手动驱动机器人完成任务的过程:你用手推主臂(leader),从臂(follower)跟随,lerobot-record同步存下每帧画面、关节角与动作指令。一个 episode 指从开始到结束完整做完一次任务。

录制组参数,需要改的只有五个:

  • --robot.type/--robot.port:从臂型号与串口
  • --teleop.type:遥操设备(主臂型号)
  • --dataset.repo_id:数据集 ID,形如“用户名/数据集名”,<你>替换为你的值
  • --dataset.num_episodes:录制集数,建议 50 集起步
  • --dataset.single_task:一句话任务描述,如 "Grab the cube"
lerobot-record \ --robot.type=so100_follower --robot.port=/dev/ttyACM0 \ --teleop.type=so100_leader \ --dataset.repo_id=<你>/pick_cube \ --dataset.num_episodes=50 \ --dataset.single_task="Grab the cube"

没有真机也可以起步:直接用 Hub 上的公开数据集(如lerobot/aloha_insertion)替换--dataset.repo_id,跳过录制。

录完做两步自查:

  1. 每集录完,程序提示 "Reset the environment",把物体摆回初始位姿后下一集才开始。
  2. lerobot-dataset-viz --repo_id <你>/pick_cube打开可视化页,抽查几集:视频帧与动作曲线要对得上,动作忽大忽小的坏集用lerobot-edit-dataset移除。

避坑:录制起不来的最常见原因是串口被占用,上一轮录制残留进程或别的终端占着端口时,先关掉旧进程再试。

问题三:ACT 策略怎么选型与训练

策略选型取决于数据量,按下表对号入座:

策略数据量需求推理速度适合场景
Diffusion100+ 集较慢动作分布多模态、精细抓取
ACT约 50 集新手首选,单臂/双臂操作
TDMPC20~50 集低维状态观测、无相机的小任务

新手选 ACT:50 集通常出效果,单卡 GPU 训练 10 万步几小时完成,默认超参不用动,源码见 src/lerobot/policies/act/。

训练组参数,最小可跑版命令:

lerobot-train \ --dataset.repo_id=<你>/pick_cube \ --policy.type=act \ --policy.device=cuda \ --output_dir=outputs/train/act_pick \ --wandb.enable=true

逐行说明:

  • --dataset.repo_id:要训练的数据集,替换为你的数据集 ID
  • --policy.type:策略类型,本例为 ACT
  • --policy.device:训练设备,有 GPU 用cuda,否则cpu
  • --output_dir:checkpoint 与日志输出目录
  • --wandb.enable:开启 wandb 记录,实时盯loss曲线

loss稳定下降即在学习。训练结束后,从outputs/train/act_pick/checkpoints/目录取最新权重,就是最终产物。

避坑:无 GPU 的机器也能用 CPU 训练,但同等步数耗时数倍,先跑几百步的短程试跑验证流程正确,再上完整训练。

问题四:LeRobot 评估结果怎么看

评估即把训好的策略放回仿真环境自主跑若干集。评估组参数只有三个:

  • --policy.path:训练好的 checkpoint 路径,<step>替换为你的最新 checkpoint 步数
  • --env.type/--env.task:仿真环境与具体任务
  • --eval.n_episodes:评估集数
lerobot-eval \ --policy.path=outputs/train/act_pick/checkpoints/<step>/pretrained_model \ --env.type=aloha --env.task=AlohaInsertion-v0 \ --eval.n_episodes=20 \ --policy.device=cuda

输出目录里的eval_info.json,三个数决定成败:

  • pc_success(成功率):核心判据,20 集成功 15 集即 75%
  • avg_sum_reward(平均累计奖励):反映完成质量与步数效率,成功率相近时,值更高说明完成得更稳
  • eval_ep_s(单集耗时):关联真机实时性,推理太慢的模型上真机会掉帧

指标不达标时,补数据优先于调参:给每集换一种物体初始位姿,场景多样性直接决定泛化能力;之后才轮到--batch_size与学习率。

避坑:判断成败只看 pc_success,成功率拉开差距前不必纠结奖励值的细微波动。

问题五:策略怎么部署到真机

仿真 90% 成功率不等于真机 90%,部署前逐项对齐三处差异:

差异对齐方法注意
动作空间维度不同对齐相机数量、关节角/末端位姿表示维度错一位,动作全乱
控制频率不同--fps与训练数据集保持一致真机常见 10~30Hz
观测维度不同lerobot-info核对数据集特征训练用过的观测项必须都在

部署走lerobot-rollout。部署组参数:--strategy.type执行策略、--policy.path权重路径、--robot.type/--robot.port真机型号与串口、--task任务描述(与训练一致)、--duration单次运行秒数。

lerobot-rollout \ --strategy.type=base \ --policy.path=outputs/train/act_pick/checkpoints/<step>/pretrained_model \ --robot.type=so100_follower --robot.port=/dev/ttyACM0 \ --task="Grab the cube" --duration=30

两条实操建议:首跑加--display_data=true,在 Rerun 窗口盯动作曲线,确认夹爪与关节平滑;动作卡顿开--use_torch_compile=true提升推理速度。

常见问题速查:四类排障表

现象可能原因处理
import 验证报缺模块ffmpeg 或 extras 未装全重跑conda install ffmpeg -c conda-forge与 extras 安装命令
录制打不开串口串口被占用或端口名错误核对端口名,关闭占用端口的旧进程后重试
某几集动作曲线混乱物体未摆回初始位姿 / 录制中碰撞lerobot-dataset-viz抽查,lerobot-edit-dataset移除坏集
评估成功率偏低数据场景多样性不足每集变换物体初始位姿补数据,数据够再调参
仿真流畅真机卡顿动作维度或控制频率不一致lerobot-info核对三项对齐,--fps与训练一致
训练进度过慢使用 CPU 训练切换--policy.device=cuda,无 GPU 先短程试跑

下一步去哪:延伸阅读

你的方向直达入口
深入各策略原理与训练配方docs/source/api/policies.mdx 与 src/lerobot/policies/
多卡分布式训练docs/source/multi_gpu_training.mdx
结合强化学习继续进化docs/source/hilserl.mdx 与 src/lerobot/rl/

更多参数说明见 docs/source/,卡住先查文档再动手。

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/17 10:35:33

电动车路径优化:MOPGA-NSGA-II混合算法在Matlab中的实现

1. 项目背景与核心挑战电动车路径规划问题在近年来越发受到学术界和工业界的关注。不同于传统燃油车&#xff0c;电动车在行驶过程中需要额外考虑充电站布局、充电时间、电池衰减等特殊因素。特别是在复杂城市环境中&#xff0c;路况变化、天气影响以及充电设施分布不均等问题&…

作者头像 李华
网站建设 2026/9/17 10:34:51

嵌入式Linux学习路线:从裸机到驱动的硬核闭环

1. 这条学习路线不是“学完就能上岗”&#xff0c;而是帮你避开三年才醒悟的弯路我带过27个嵌入式Linux方向的新人&#xff0c;从应届生到转行程序员&#xff0c;平均入职前自学时长14.6个月。其中19个人在第8~12个月卡住——不是不会写代码&#xff0c;而是根本不知道自己该学…

作者头像 李华
网站建设 2026/9/17 10:33:13

内存态匿名段分析实战:绕过DexProtector检测并还原Dex

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华