# 환경

시뮬레이션 환경은 `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)

`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}}` 형식으로 로컬 또는 서빙된 벡터 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)

서버 YAML의 `sim` 섹션과 동일한 형식으로 시뮬레이션 설정을 반환합니다. 누락된 항목은 시뮬레이션 기본값을 사용합니다.

기본값은 `gym_kwargs`와 델타 액션을 사용하는 Gymnasium 환경 `gym_id`입니다. 다른 경우를 오버라이드하십시오.

## 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`) : env config 또는 `env.py`로 envs를 빌드하는 Hugging Face Hub repo ID(예: `"username/repo"`)

n_envs (`int`, *선택 사항*, 기본값 `1`) : 각 벡터 환경의 환경 수.

use_async_envs (`bool`, *선택 사항*, 기본값 `False`) : 각 env를 자체 워커 프로세스에서 실행합니다.

hub_cache_dir (`str`, *선택 사항*) : 다운로드한 `env.py`를 캐시할 폴더. 리포지토리 ID와 함께만 사용됩니다.

trust_remote_code (`bool`, *선택 사항*, 기본값 `False`) : Hub 저장소의 코드를 실행하는 데 동의합니다. 저장소 ID 또는 EnvHub 설정에 필요합니다.

**반환값:** `dict[str, dict[int, gym.vector.VectorEnv]]`

벡터 envs는 `{suite: {task_id: env}}` 형식입니다. 단일 태스크 env는 하나의 suite를 가지며, task ID는 0입니다.

**예외:** ``ValueError`` 또는 ``RuntimeError`` 또는 ``ModuleNotFoundError``

- ``ValueError`` -- `n_envs`가 1 미만인 경우.
- ``RuntimeError`` -- Hub 저장소의 코드가 `trust_remote_code` 없이 실행될 수 있는 경우.
- ``ModuleNotFoundError`` -- 시뮬레이터 또는 저장소의 `env.py`가 필요한 패키지가 설치되어 있지 않은 경우 발생합니다.

설정 또는 Hub 저장소의 `make_env`에 대해 벡터 envs를 빌드합니다.

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

