# Окружения

Среды симуляции настраиваются через `EnvConfig` и создаются с помощью `make_env`. Каждый подкласс объявляет свои `gym_kwargs` и способ построения векторизованных сред.

См. [Окружения из Hub](../envhub) для использования опубликованных окружений и [Добавление нового бенчмарка](../adding_benchmarks) для внесения своего.

## EnvConfig[[lerobot.envs.EnvConfig]]

#### lerobot.envs.EnvConfig[[lerobot.envs.EnvConfig]]

```python
lerobot.envs.EnvConfig(task: str | None = None, fps: int = 30, features: dict[str, PolicyFeature] = <factory>, features_map: dict[str, str] = <factory>, max_parallel_tasks: int = 1, disable_env_checker: bool = True, server: EnvClientConfig | None = None)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/configs.py#L71)

#### create_env[[lerobot.envs.EnvConfig.create_env]]

```python
create_env(task_group: str | None = None, task_id: int | None = None, n_envs: int = 1, use_async_envs: bool = False)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/configs.py#L127)

Создайте один локальный или обслуживаемый векторный env для одной задачи; отсутствие `task_id` означает первую задачу набора.

#### create_envs[[lerobot.envs.EnvConfig.create_envs]]

```python
create_envs(n_envs: int, use_async_envs: bool = False)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/configs.py#L112)

Создавайте локальные или обслуживаемые векторные среды в формате `&amp;lcub;suite: &amp;lcub;task_id: env}}`.

#### get_env_processors[[lerobot.envs.EnvConfig.get_env_processors]]

```python
get_env_processors()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/configs.py#L215)

Return (preprocessor, postprocessor) для этой среды. По умолчанию: identity.

#### sim_config[[lerobot.envs.EnvConfig.sim_config]]

```python
sim_config()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/configs.py#L108)

Возвращает `sim_settings()` с параметрами по умолчанию симуляции, как это делают локальные окружения и сервер окружений.

#### sim_settings[[lerobot.envs.EnvConfig.sim_settings]]

```python
sim_settings()
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/configs.py#L101)

Возвращает настройки симуляции, как в разделе `sim` YAML-файла сервера; отсутствующие значения заменяются значениями по умолчанию для симуляции.

По умолчанию используется среда Gymnasium `gym_id` с `gym_kwargs` и дельта-действиями; при необходимости переопределите эти параметры.

## make_env[[lerobot.envs.make_env]]

#### lerobot.envs.make_env[[lerobot.envs.make_env]]

```python
lerobot.envs.make_env(cfg: EnvConfig | str, n_envs: int = 1, use_async_envs: bool = False, hub_cache_dir: str | None = None, trust_remote_code: bool = False)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/factory.py#L65)

**Параметры:**

cfg (`EnvConfig | str`) : Конфигурация окружения или ID репозитория Hugging Face Hub (например, `"username/repo"`), в котором `env.py` создаёт окружения.

n_envs (`int`, *необязательный*, по умолчанию `1`) : Количество сред в каждом векторном окружении.

use_async_envs (`bool`, *необязательный*, по умолчанию `False`) : Запускать каждую среду в собственном рабочем процессе.

hub_cache_dir (`str`, *необязательный*) : Папка для кэширования загруженного `env.py`. Используется только с идентификатором репозитория.

trust_remote_code (`bool`, *необязательный*, по умолчанию `False`) : Согласие на выполнение кода из репозитория Hub, требуется для ID репозитория или конфигурации EnvHub.

**Возвращает:** `dict[str, dict[int, gym.vector.VectorEnv]]`

Векторные среды, в формате `{suite: {task_id: env}}`. Одиночная среда содержит один набор с идентификатором задачи 0.

**Исключения:** ``ValueError`` или ``RuntimeError`` или ``ModuleNotFoundError``

- ``ValueError`` -- если `n_envs` меньше 1.
- ``RuntimeError`` -- если код репозитория на Hub мог бы выполняться без `trust_remote_code`.
- ``ModuleNotFoundError`` -- если симулятор или пакет, необходимый для `env.py` репозитория, не установлен.

Создайте векторные среды для конфигурации или для `make_env` репозитория на Hub.

## make_env_config[[lerobot.envs.make_env_config]]

#### lerobot.envs.make_env_config[[lerobot.envs.make_env_config]]

```python
lerobot.envs.make_env_config(env_type: str, **kwargs)
```

[Источник](https://github.com/huggingface/lerobot/blob/v0.7.0/src/lerobot/envs/factory.py#L27)

