This document gives a brief overview of how the worlds were built and then how to configure the World SDF file for Gazebo. Various models of the APRS laboratory are available, with configurable selections for versions, kitting models, robots, flags and the like.
Working with this system setup:
- Gazebo 7
- Ros
- Ubuntu 16.04
Clone the github repository. There is no build.
Using the existing bash script, agilitylab.bash, which
cd bin
./agilitylab.bash
You should see a gnome terminalwith the following two terminals:
and
Gazebo will load slowly and eventually you will see the Agility Lab:
The very first step before creating SDF files was to create all the meshes to be used in our APRS virtual environment. As you know, STL encodes geometry information only, as triangle meshes and does not include material specification. On the other hand, COLLADA can encode 3D geometry as well as physics, shaders, kinematics, etc which was the reason that it was a great choice if we wanted custom material properties such as textures besides geometry. For our APRS simulation, our choice was mainly COLLADA format and we have pretty much used the meshes in the following link for our environment: http://data.nvision2.eecs.yorku.ca/3DGEMS/
For the walls and doors, we have created them in SketchUp and exported them as COLLADA file. For the camera sensor, we have used Gazebo’s built-in camera sensor model for capturing images. We had to set the pose of the sensor accordingly with respect to our camera model,
e.g. <pose>0 -0.06 0 0 0 0</pose>
in which the last three digits are for orientation. Then, we created SDF file in which we incorporated a sensor model and added the following code in the world file:
<model name="motoman_camera">
<include>
<static>true</static>
<uri>model://motoman_camera_test</uri>
</include>
<pose frame=' ' >0.061138 -0.719002 2.005010 0 0 0</pose>
</model>
Last step was to create SDF files in Gazebo database for these virtual world items so that they could be spawned once the world file is launched.
To configure the Gazebo world, navigate to the ./World folder. You should see the following APRS lab world SDF definitions, as well as the configuration bash script world_setup.bash.
Double lick on the world_setup.bash file or invoke the world_setup.bash scriptfrom the command line. Once invoked you will get an simple yad GUI as shownin the figure below to configure the aprs-lab.world file used by the gzaprsros application.
The breakdown of the various configuration variable in shown in the table below.
| Variable |
Description |
| Physics Engine |
This selects the physics engine Gazebo will use. Its default is ODE, but other options are available but have been removed as they did not improve performance. |
| Version |
There are 6 versions of the APRS lab to select from. Version 2 is a simple lightweight robot and kitting object model to lighten the simulation load on Gazebo. Version 6 can contain furniture, safety system, cameras, as part of the Gazebo world file. |
| Debug |
The debug flag set to True will cause the Gazebo plugins to emit debugging messages. |
| Motoman |
If True, the Motoman robot and assisted kitting models will be part of the world. |
| Fanuc |
If True, the Fanuc robot and assisted kitting models will be part of the world. |
| Safety |
If true, the safety curtain will be displayed. |
| Camera |
If True, the cameras |
| Conveyor |
If True, the conveyor model will be included in the model. |
| Furniture |
If True, all the APRS lab furniture, PCs, monitors, etc. models will be included in the SDF world. |
| ROS Plugins |
If true the gazebo-ros plugins for the conveyor, camera and safety system will be incorporated as part of the world SDF file. |
| Gz Vision Sim |
If True, the vision simulator plugin will run which emits the Gazebo model for all kitting models on a given socket port (typically port 5002 but configurable). |




