LeRobot 仿真环境
本页面介绍 LeRobot 仿真环境支持的概览:配置类、工厂层、内置环境和通过 EnvHub 从 Hugging Face Hub 加载环境的机制。
架构概览
所有仿真环境通过统一的工厂函数 make_env() 访问,返回嵌套的向量化 gymnasium 环境字典。每个环境由 EnvConfig 数据类描述,工厂根据配置类型实例化正确的 gymnasium 包装器。
EnvConfig:配置基类
EnvConfig(定义于 src/lerobot/envs/configs.py)是一个抽象数据类和 draccus.ChoiceRegistry。所有具体环境配置注册为命名的子类。
| 字段 | 类型 | 默认值 | 用途 |
|---|---|---|---|
task | str / None | None | Gymnasium 任务 ID 或套件名称 |
fps | int | 30 | 目标帧率 |
features | dict | {} | 观测/动作特征规格 |
featuresmap | int | 1 | 最大并发任务数 |
每个子类必须实现抽象属性 gym_kwargs,返回转发给 gym.make() 的关键字参数。
make_env() 工厂
make_env() 是构建环境的单一入口点,接受 EnvConfig 实例或 Hub URL 字符串:
env_dict = make_env("pusht")
# 返回: {"pusht": {"default": <VecEnv>}}
返回结构的外层键是套件名称(如 “pusht”、“libero_10”),内层键是任务 ID。这种结构支持多任务基准测试(如 LIBERO)。
内置仿真环境
| 环境 | 描述 | 用途 |
|---|---|---|
| PushT | 推动 T 形块到目标位置 | 策略开发和测试的基础环境 |
| LIBERO | 桌面操作任务的 10/90/100 任务套件 | 模仿学习和 VLA 基准测试 |
| MetaWorld | 多种元学习任务 | 强化学习基准测试 |
| RoboTwin | 双臂机器人仿真套件 | 高级操作研究 |
EnvHub:从 Hugging Face Hub 加载环境
EnvHub 系统允许使用 repo_id 直接从 Hugging Face Hub 加载仿真环境:
- 从仓库下载
env.py文件 - 执行其
make_env函数 - 支持社区贡献环境的共享和版本控制
env_dict = make_env("https://huggingface.co/spaces/user/my-env")
环境预处理
LeRobot 将环境特定的预处理与策略特定的预处理分离,由 makeenvprepostprocessors() 处理:
- 环境特征映射:将原始环境观测和动作键映射到 LeRobot 策略期望的键
- 预处理流水线:调整图像大小、颜色空间转换和归一化
- 后处理流水线:将归一化的策略输出转回原始电机指令格式
评论