本页面介绍 LeRobot 仿真环境支持的概览:配置类、工厂层、内置环境和通过 EnvHub 从 Hugging Face Hub 加载环境的机制。
所有仿真环境通过统一的工厂函数 make_env() 访问,返回嵌套的向量化 gymnasium 环境字典。每个环境由 EnvConfig 数据类描述,工厂根据配置类型实例化正确的 gymnasium 包装器。
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() 是构建环境的单一入口点,接受 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 系统允许使用 repo_id 直接从 Hugging Face Hub 加载仿真环境:
env.py 文件make_env 函数
env_dict = make_env("https://huggingface.co/spaces/user/my-env")
LeRobot 将环境特定的预处理与策略特定的预处理分离,由 makeenvprepostprocessors() 处理: