LeRobot 策略架构
LeRobot 实现了多种最先进的策略架构,统一在 PreTrainedPolicy 抽象基类下。
策略接口和基类
所有策略继承自 PreTrainedPolicy 抽象基类,提供标准化接口:
- 模型生命周期:初始化、加载预训练权重、保存检查点
- 训练:前向传播计算损失和优化器参数获取
- 推理:通过分块(
predictactionchunk)或单步选择(select_action)预测动作 - Hub 集成:通过
HubMixin推拉模型到 Hugging Face Hub - PEFT 支持:集成参数高效微调(如 LoRA)
策略生命周期
策略的典型生命周期如下:
# 初始化
policy = ACTPolicy(config)
# 训练
loss = policy.forward(batch)
loss.backward()
optimizer.step()
# 推理
action_chunk = policy.select_action(observation)
lerobot.policies.utils 模块提供管理环境和策略之间数据流的关键函数:
buildobsframe:使用数据集的特征配置从原始观测中提取特征makerobotaction:将策略输出的数值张量映射回命名的机器人动作字典
策略类别
模仿学习策略
模仿学习(IL)策略从专家演示中学习:
| 策略 | 特点 |
|---|---|
| ACT (Action Chunking Transformer) | 基于 Transformer 的动作分块,适合高精度任务 |
| Diffusion | 扩散策略,通过去噪过程生成动作序列 |
| VQ-BeT (Vector Quantized Behavior Transformer) | 基于向量量化的行为 Transformer |
| Multitask DiT | 多任务 Diffusion Transformer |
视觉-语言-动作模型
VLA 模型结合视觉和语言理解进行机器人控制:
| 策略 | 特点 |
|---|---|
| Pi0 / Pi0Fast | 预训练视觉-语言-动作模型,支持高效微调 |
| Pi0.5 | 轻量级变体 |
| SmolVLA | 小型 VLA 模型,适合资源受限场景 |
| GR00T | NVIDIA 人形机器人通用基础模型 |
| XVLA | 可扩展 VLA 架构 |
| MolmoAct2 | 基于多模态理解的 VLA 模型 |
强化学习策略
| 策略 | 特点 |
|---|---|
| HIL-SERL | 人类介入的强化学习,结合示教和自主探索 |
| TDMPC | 基于模型预测控制的强化学习 |
实时分块
策略支持实时动作分块,使推理能够在严格的实时约束下进行。这通过分块缓冲区实现,允许异步推理和同步执行。
策略工厂和插件系统
策略通过工厂模式创建,支持插件式注册:
PolicyFactory维护策略类型注册表- 自定义策略可以通过装饰器注册
- 工厂位于
src/lerobot/policies/factory.py - 通过
–policy.type=xxx在 CLI 中选择
评论