> ## Documentation Index
> Fetch the complete documentation index at: https://docs.generalrobotics.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment Config

`env.yaml` specifies the configuration settings for four essential components of the simulation scene: the environment, the robot, the sensors (on the robot or in the scene), and the assets (obstacles, interaction objects, etc.)

The below provided sample scene configuration file initializes a Unitree Go2 with a set of specified sensors in a standard warehouse environment.

```yaml theme={null}
scene:
  - scene_name:
      type: Asset
      name: Warehouse
      config:
        prim_path: "/World/ground"

  - robot_name:
      type: Robot
      name: Unitree_Go2
      config:
        init_state:
          pos: [0.0, 0.0, 0.0]
          rot: [0.0, 0.0, 0.0, 1.0]
  
  - sensor_name_1:
      type: Sensor
      name: HeightSensor
      config:
        prim_path: "/World/envs/env_.*/robot/base"

  - sensor_name_2:
      type: Sensor
      name: CameraRGB
      config:
        prim_path: "/World/envs/env_.*/robot/base/imu/cam_rgb"
        height: 256
        width: 256
```

You can also set scene specific variables like number of parallel environments, decimation, time step for simulation, episode length (in seconds), etc. using `env.yaml` by adding the following to it.

```yaml theme={null}
num_envs: 1
decimation: 4
episode_length_s: 5
env_spacing: 15

sim: 
  dt: 0.005
```

Finally, the `env.yaml` also configures the ROS2 communcation layer. Please have a look at [this page](/simulation/isaac/comms) to get more detailed information on how to publish simulation data or subscribe to commands.
