# Ambientes

Os ambientes de simulação são configurados por meio de `EnvConfig` e construídos por `make_env`. Cada subclasse declara seus `gym_kwargs` e como construir os ambientes vetorizados.

Veja [Environments from the Hub](../envhub) para usar ambientes publicados e [Adding a New Benchmark](../adding_benchmarks) para contribuir com um.

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

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

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

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

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

Crie {suite: {task_id: VectorEnv}}.

Padrão: ambiente de tarefa única via gym.make(). Benchmarks multitarefa sobrescrevem. AsyncVectorEnv é o padrão para n_envs > 1; é rebaixado automaticamente para Sync quando n_envs=1.

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

```python
get_env_processors()
```

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

Return (preprocessor, postprocessor) para este env. Padrão: identity.

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

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

**Parâmetros:**

cfg (EnvConfig | str) : Um objeto `EnvConfig` descrevendo o ambiente a ser construído localmente, ou um identificador de repositório do Hugging Face Hub (por exemplo, `"username/repo"`). No segundo caso, o repositório deve incluir um arquivo Python (geralmente `env.py`).

n_envs (int, opcional) : O número de env paralelizados a retornar. O padrão é 1.

use_async_envs (bool, opcional) : Se deve retornar um AsyncVectorEnv ou um SyncVectorEnv. O padrão é False.

hub_cache_dir (str | None) : Caminho opcional do cache para arquivos de hub baixados.

trust_remote_code (bool) : **Consentimento explícito** para executar código remoto do Hub. Padrão False — deve ser definido como True para importar/executar o `env.py` do hub.

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

Um mapeamento de nome de suíte para ambientes vetorizados indexados.
- Para benchmarks de múltiplas tarefas (por exemplo, LIBERO): uma entrada por suíte e um vec env por task_id.
- Para ambientes de tarefa única: uma única entrada de suíte (cfg.type) com task_id=0.

**Exceções:** ``ValueError`` ou ``ModuleNotFoundError``

- ``ValueError`` -- se n_envs < 1
- ``ModuleNotFoundError`` -- Se o pacote de ambiente solicitado não estiver instalado

Cria um ambiente vetorial de ginásio de acordo com a configuração ou a referência do 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)
```

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

