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

# Adding objects to the Gazebo simulation world

> How to download and insert 3D models into your Gazebo environment

This guide explains how to add 3D objects from the [Gazebo Fuel model database](https://app.gazebosim.org/OpenRobotics/fuel/models/) into your TurtleBot Maze simulation environment.

## Download models

Browse and download models from the Gazebo Fuel database. Place downloaded model folders into the `models` directory of your workspace:

<Frame>
  <img src="https://mintcdn.com/aegeanaiinc/L1SRT9O-msofX82J/blog/tutorials/gazebo-objects-guide/images/models-folder.png?fit=max&auto=format&n=L1SRT9O-msofX82J&q=85&s=2c8e9625e17364822e897696924e9b68" alt="Models folder in the TurtleBot Maze workspace showing downloaded Gazebo models" width="1008" height="1431" data-path="blog/tutorials/gazebo-objects-guide/images/models-folder.png" />
</Frame>

## Edit the world file

Manually edit the `sim_house_enhanced.sdf.xacro` file located at:

```
tb_worlds/worlds/sim_house_enhanced.sdf.xacro
```

<Frame>
  <img src="https://mintcdn.com/aegeanaiinc/L1SRT9O-msofX82J/blog/tutorials/gazebo-objects-guide/images/world-file-location.png?fit=max&auto=format&n=L1SRT9O-msofX82J&q=85&s=d6c67faf0d947823550618583d25a2b8" alt="File explorer showing the tb_worlds/worlds directory with sim_house_enhanced.sdf.xacro highlighted" width="521" height="1477" data-path="blog/tutorials/gazebo-objects-guide/images/world-file-location.png" />
</Frame>

## Insert objects into the world

Add `<include>` blocks to the SDF file for each object you want to place. Each object needs:

* A `<uri>` pointing to the model (e.g., `model://AirportBench`)
* A unique `<name>` (duplicate names cause errors)
* A `<pose>` specifying position (`x y z roll pitch yaw`)

<Frame>
  <img src="https://mintcdn.com/aegeanaiinc/L1SRT9O-msofX82J/blog/tutorials/gazebo-objects-guide/images/sdf-xacro-inserts.png?fit=max&auto=format&n=L1SRT9O-msofX82J&q=85&s=82d55f488c49a6e28e4422539228a86b" alt="SDF xacro file showing include blocks for AirportBench, beer, and cricket ball models with pose coordinates" width="1268" height="1021" data-path="blog/tutorials/gazebo-objects-guide/images/sdf-xacro-inserts.png" />
</Frame>

**Positioning tips:**

* Benches are inserted at `z = -0.29` to make them low enough to be visible
* Adjust the `z` coordinate so objects are at a sufficient height to be seen by the robot's camera
* Every object must have a unique name or the simulator will throw an error

## Model folder structure

Each downloaded model must have the correct directory structure inside the `models` folder:

<Frame>
  <img src="https://mintcdn.com/aegeanaiinc/L1SRT9O-msofX82J/blog/tutorials/gazebo-objects-guide/images/model-structure.png?fit=max&auto=format&n=L1SRT9O-msofX82J&q=85&s=1bef4a4ba6cf6b64f7714af565882de5" alt="Model directory structure showing meshes, thumbnails, model.config, and model.sdf files" width="353" height="275" data-path="blog/tutorials/gazebo-objects-guide/images/model-structure.png" />
</Frame>

A valid model folder contains:

* `meshes/`, 3D mesh files
* `thumbnails/`, preview images
* `model.config`, model metadata
* `model.sdf`, model definition

<Note>
  Some models from the Fuel database may not be compatible with your Gazebo version. If a model fails to load, try a different one from the database rather than spending time debugging compatibility issues.
</Note>

***

<Callout icon="pen-to-square" iconType="regular">
  [Edit this page on GitHub](https://github.com/aegean-ai/eaia/edit/main/src/blog/tutorials/gazebo-objects-guide/index.mdx) or [file an issue](https://github.com/aegean-ai/eaia/issues/new/choose).
</Callout>
