第一阶段:会跑 跑通 LeRobot + 一个现成 dataset + 一个 policy

第二阶段:会看 看懂 dataset / obs / action / policy / eval

第三阶段:会改 改一个 observation 或 action,理解哪里会报错

第四阶段:会换 把 MetaWorld 或已有环境换成自己的 SO-ARM101 Env

第五阶段:会比较 知道 SmolVLA、ACT、Diffusion Policy、LLM-Agent 技能库的接口区别

读出:

Dataset
  ↓
Dataloader
  ↓
Batch
  ↓
Policy.forward()
  ↓
Loss
  ↓
Checkpoint
  ↓
Policy.select_action()
  ↓
Env / Robot.step()
  ↓
Episode result

1、跑通

器人学习时,一般会遇到这些东西:

机器人/仿真环境 -> 采集 observation -> 存成 dataset -> 训练 policy -> 加载 policy -> 输入 observation -> 输出 action -> 机器人执行 action -> 评估 success / reward

组成 作用
dataset 存机器人数据,比如图像、状态、动作、任务语言
policy 机器人策略模型,比如 ACT、Diffusion Policy、SmolVLA
env 仿真环境接口,比如 MetaWorld、LIBERO
robot 真机机器人接口,比如 SO-100、SO-101 等
eval 评估 policy 在环境或机器人上的表现
train 用数据训练 policy
record 采集机器人数据
replay

回放数据或动作

env + policy + eval==MetaWorld 环境 + SmolVLA 模型 + LeRobot 评估流程

SmolVLA 本身主要是“模型 / policy”,不是一整套完整机器人系统,所以它需要 LeRobot 来补齐很多工程功能。

每一个 VLA 项目都必须自己解决一套 robot learning pipeline。

LeRobot 是其中一套通用 pipeline。

OpenVLA 有 OpenVLA pipeline。

OpenPI 有 OpenPI pipeline。

SmolVLA 借助 LeRobot pipeline。

MetaWorld:仿真任务环境
SmolVLA:VLA 模型 / policy
LeRobot:把环境和模型接起来的框架

即:

LeRobot 创建 MetaWorld 环境

MetaWorld 给出 observation

LeRobot 把 observation 送给 SmolVLA

SmolVLA 输出 action

LeRobot 把 action 送回 MetaWorld

MetaWorld 执行动作并返回结果

LeRobot:Hugging Face 做的机器人学习框架。

克隆:git clone https://github.com/huggingface/lerobot.git

创建conda环境:conda create -y -n lerobot python=3.12

安装LeRobot本体:pip install -e .

         1. 让 Python 能找到 lerobot
         2. 安装 LeRobot 需要的依赖
         3. 注册 lerobot-train、lerobot-record 等命令

验证是否安装成功:lerobot-info,输出信息

有什么?本体 /lerobot/src/lerobot

整体结构

  src/lerobot/
  ├── scripts/          # 命令行入口:训练、采集、评估、遥操作等
  ├── configs/          # 配置系统
  ├── policies/         # 各种策略模型
  ├── datasets/         # 数据集读写、视频、统计
  ├── processor/        # 数据处理流水线
  ├── robots/           # 机器人本体抽象和具体机器人
  ├── teleoperators/    # 遥操作设备
  ├── motors/           # 电机驱动
  ├── cameras/          # 相机驱动
  ├── envs/             # 仿真环境 / benchmark 环境
  ├── rl/               # 强化学习相关
  ├── rewards/          # 奖励模型
  ├── rollout/          # 策略执行 / rollout
  ├── async_inference/  # 异步推理服务
  ├── optim/            # 优化器和学习率调度
  ├── transforms/       # 图像/数据变换
  ├── utils/            # 通用工具
  ├── common/           # 训练/控制共享工具
  ├── transport/        # gRPC 通信协议
  ├── jobs/             # 远程任务 / HF job
  ├── templates/        # 模型卡模板
  └── types.py          # 全局类型定义

SmolVLA:VLA Policy

Hugging Face 的轻量机器人 foundation model,输入多相机视角、当前 sensorimotor state 和自然语言指令,然后生成 action chunk。

安装依赖:进入/lerobot,激活conda环境,pip install -e ".[smolvla]"

验证:python - <<'PY'
from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy
from lerobot.policies.smolvla.configuration_smolvla import SmolVLAConfig

print("SmolVLA import ok")
print(SmolVLAPolicy)
print(SmolVLAConfig)
PY

安装Hugging Face Hub::pip install -U huggingface_hub

下载权重:python - <<'PY' from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy policy = SmolVLAPolicy.from_pretrained("lerobot/smolvla_base") print("loaded policy:", type(policy)) PY

下载MetaWorld 的 checkpoint:python - <<'PY' from lerobot.policies.smolvla.modeling_smolvla import SmolVLAPolicy policy = SmolVLAPolicy.from_pretrained("lerobot/smolvla_metaworld") print("loaded metaworld policy:", type(policy)) PY

MetaWorld:一个机械臂桌面操作仿真任务集

安装依赖:进入/lerobot,激活conda环境,pip install -e ".[metaworld]"

验证:find . -iname "*metaworld*"

跑最小eval:lerobot-eval \

--policy.path=lerobot/smolvla_metaworld \     #使用 MetaWorld 版本 SmolVLA policy

--env.type=metaworld \   #让 LeRobot 创建 MetaWorld 仿真环境

--env.task=assembly-v3 \   #选择 MetaWorld 里的 assembly-v3 单任务

--eval.batch_size=1 \   #一次只跑一个环境

--eval.n_episodes=1  #跑一个 episode

(可能会遇到问题:policy期待3路相机observation.images.camera1 observation.images.camera2 observation.images.camera3 observation.state,但实际MetaWorld只提供observation.image observation.state,使用--rename_map='{"source_key": "policy_key"}'进行桥接,如果 policy 期待更多相机,可以用 --policy.empty_cameras=N 添加空相机占位)

lerobot-eval \
  --policy.path=lerobot/smolvla_metaworld \
  --env.type=metaworld \
  --env.task=assembly-v3 \
  --eval.batch_size=1 \
  --eval.n_episodes=1 \
  --rename_map='{"observation.image": "observation.images.camera1"}' \
  --policy.empty_cameras=2

如果运行成功可以看到:

Overall Aggregated Metrics:                                                    
{'avg_sum_reward': 973.9444728312349, '   #一个 episode 内累计 reward

avg_max_reward': 7.30171012878418,    #episode 中达到过的最大单步 reward

'pc_success': 0.0,     #成功率,0表示这一次没成功

'n_episodes': 1, '    #跑了几个 episode

eval_s': 6.379422426223755,    #总评估耗时

'eval_ep_s': 6.379422664642334,   #平均每个 episode 耗时

'video_paths': ['outputs/eval/2026-07-09/20-06-00_metaworld_smolvla/videos/assembly-v3_0/eval_episode_0.mp4'], 'predicted_video_paths': []}   #评估视频保存路径

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐