# Entornos

Los entornos de simulación se configuran a través de `EnvConfig` y se construyen mediante `make_env`. Cada subclase declara sus `gym_kwargs` y cómo construir los entornos vectorizados.

Consulte [Entornos desde el Hub](../envhub) para usar entornos publicados y [Añadir una nueva referencia](../adding_benchmarks) para contribuir con uno.

## 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)
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/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)
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/configs.py#L127)

Cree un entorno vectorial local o servido para una tarea; si no se especifica `task_id`, se utilizará la primera tarea del conjunto.

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

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

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/configs.py#L112)

Cree entornos vectoriales locales o servidos, como `&amp;lcub;suite: &amp;lcub;task_id: env}}`.

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

```python
get_env_processors()
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/configs.py#L215)

Return (preprocessor, postprocessor) para este env. Valor predeterminado: identidad.

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

```python
sim_config()
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/configs.py#L108)

Devuelve `sim_settings()` con los valores predeterminados de la simulación, tal como los ejecutan los entornos locales y el servidor de entornos.

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

```python
sim_settings()
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/configs.py#L101)

Devuelve la configuración de simulación, tal como en la sección `sim` de un YAML de servidor; los que faltan usan los valores predeterminados de simulación.

El valor predeterminado es el entorno de Gymnasium `gym_id` con `gym_kwargs` y acciones delta; cámbielo en caso contrario.

## 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)
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/factory.py#L65)

**Parámetros:**

cfg (`EnvConfig | str`) : La configuración del entorno, o un ID de repositorio de Hugging Face Hub (p. ej. `"username/repo"`) cuyo `env.py` construye los entornos.

n_envs (`int`, *opcional*, valor predeterminado `1`) : Número de entornos en cada vector env.

use_async_envs (`bool`, *opcional*, valor predeterminado `False`) : Ejecutar cada entorno en su propio proceso de worker.

hub_cache_dir (`str`, *opcional*) : Carpeta para cachear el `env.py` descargado. Solo se usa con un ID de repositorio.

trust_remote_code (`bool`, *opcional*, valor predeterminado `False`) : Consentir la ejecución del código de un repositorio de Hub, necesario para un ID de repositorio o una configuración de EnvHub.

**Devuelve:** `dict[str, dict[int, gym.vector.VectorEnv]]`

Los entornos vectoriales, como `{suite: {task_id: env}}`. Un entorno de una sola tarea tiene un solo suite, con ID de tarea 0.

**Excepciones:** ``ValueError`` o ``RuntimeError`` o ``ModuleNotFoundError``

- ``ValueError`` -- Si `n_envs` es inferior a 1.
- ``RuntimeError`` -- Si el código de un repositorio de Hub se ejecutaría sin `trust_remote_code`.
- ``ModuleNotFoundError`` -- Si el simulador, o un paquete que necesita el `env.py` del repositorio, no está instalado.

Construye los entornos vectoriales de una configuración o del `make_env` de un repositorio de 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)
```

[Fuente](https://github.com/huggingface/lerobot/blob/main/src/lerobot/envs/factory.py#L27)

