Ask Your Question

Revision history [back]

This is possible. There are a couple ways to generate the models that represent the office building, but models can be combined in a .world file and fed to Gazebo. The .world file specifies the separate models that you want included, as well as their poses, so this will allow you to align different parts of a building as separate models so long as they are the same scale.

When I've done this in the past, my .world file has looked like this:

</sdf>
     </world>

       ... scene information, etc. here ....

     <model name="building-east">
        <pose>-13.970314 -9.174326 0 0 0 0</pose>
        <include>
          <static>true</static>
          <uri>3e_real</uri>
        </include>
    </model>
    <model name="building-north1">
        <pose>-14.016079 25.839033 0 0 0 0</pose>
        <include>
          <static>true</static>
          <uri>3n_real</uri>
        </include>
    </model>
  </world>
</sdf>

Where the uri names the model resource. By default the model is searched for on the GAZEBO_MODEL_PATH or GAZEBO_RESOURCE_PATH environment variables.

This is touched on in the roslaunch gazebo tutorial.

To generate the models of the office building, you can use Gazebo's building editor, or use other CAD software and export as a mesh (.dae). You can include meshes the same way as models in the above example, and the link above goes over that as well.