{{htmlmetatags>metatag-robots=(index,follow)
metatag-keywords=(LeRobot,仿真环境,PushT,LIBERO,EnvHub,MetaWorld,gymnasium)
metatag-description=(LeRobot 仿真环境支持:环境配置、make_env 工厂、内置环境和 EnvHub Hub 环境加载机制)
}}
====== LeRobot 仿真环境 ======
本页面介绍 LeRobot 仿真环境支持的概览:配置类、工厂层、内置环境和通过 EnvHub 从 Hugging Face Hub 加载环境的机制。
[[机器人:lerobot:home|返回概述]]
===== 架构概览 =====
所有仿真环境通过统一的工厂函数 ''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 | {} | 观测/动作特征规格 |
| ''features_map'' | dict | {} | 原始环境键到 LeRobot 策略键的映射 |
| ''max_parallel_tasks'' | int | 1 | 最大并发任务数 |
每个子类必须实现抽象属性 ''gym_kwargs'',返回转发给 ''gym.make()'' 的关键字参数。
===== make_env() 工厂 =====
''make_env()'' 是构建环境的单一入口点,接受 ''EnvConfig'' 实例或 Hub URL 字符串:
env_dict = make_env("pusht")
# 返回: {"pusht": {"default": }}
返回结构的外层键是套件名称(如 ''"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 将环境特定的预处理与策略特定的预处理分离,由 ''make_env_pre_post_processors()'' 处理:
* **环境特征映射**:将原始环境观测和动作键映射到 LeRobot 策略期望的键
* **预处理流水线**:调整图像大小、颜色空间转换和归一化
* **后处理流水线**:将归一化的策略输出转回原始电机指令格式
===== 相关页面 =====
* [[机器人:lerobot:home|LeRobot 框架概述]]
* [[机器人:lerobot:训练与评估|训练与评估]]
* [[机器人:lerobot:中心集成|Hugging Face Hub 集成]]