 |
| Tapia World |
The document that follows gives background on the qualification
procedures and use of the Player/Stage/Gazebo simulation
environment.
 |
 |
Figure 1: View from the robot's camera |
Figure 2: Robot approaches marker |
The qualification task involves writing a robot client that searches for
and visits survivors in a simulated world. The simulated world exists in
Gazebo with some unknown number of survivors in a unknown locations.
Survivors are represented as a cylindrical marker with three colors
arranged vertically. The arrangement of the colors uniquely identifies
each survivor. A survivor will be considered visited when the robot is
within the survivors proximity (indicated by the green circle underneath
each marker) and announces the visit. The announcement can be a simple
print statement followed by a new line that identifies the colors of the
marker. For instance, in Figure 1, the robot would print (Yellow,
Purple, Blue is here).
An example layout for the qualification arena is shown in Figure 3.
The map of the world will remain the same as shown. However, the
locations of the survivor markers will change for each test trial.
 |
| Figure 3:Sample Placement of Markers |
Using Player and Gazebo
The qualification materials include several files (in tapia_qual.tgz) that enable
you to get up and running. Assuming Player/Stage has been installed
correctly or you have the Tapia Robotics DVD working, you can
follow these quick start instructions for using each file:
 |
| Figure 4: Screenshot of simulator in action |
- tapia.world, tapia.gzb: the Gazebo world and terrain files. You can
execute the command
wxgazebo tapia.world to see the Gazebo
qualification world in action with 2 robots. This will bring up a
command GUI that can be used open windows for directly viewing the
robot's sensor values and controlling the robot without using Player.
 |
| Figure 5: Screenshot of interactive graphical
server (wxgazebo) |
- tapia.cfg, colors.txt: the Player configuration file and color calibration
file. You can execute
player tapia.cfg to start the server for both
robots at port 6665 on the local computer. The server can then be
accessed through a variety of methods. You can run playercam to view
images coming from the robots cameras. The playerv command will
spawn a GUI that allows you to view other robot proxy information,
such as color blobs and laser range information. You will need to
subscribe to each proxy using through the Devices menu as shown in
Figure 6. You can also subscribe and command the robot using
the position proxy for each robot. The blobfinder used by Player
will look for colors specified in the colors.txt file. This file is
currently calibrated to find green, red, and blue. You will need to
add additional calibration for the yellow and purple colors, which is
done by determining the proper YUV (an alternative color space to
RGB) values for these colors and adding entries in colors.txt.
 |
 |
| Figure 6: playerv: sensor data visualization from player server |
- client.c, Makefile: a simple Player robot client and makefile. You can
build this example client using the make command. The client can
then be run with the command
./client 6665 0 3. This command tells
the client to connect to the robot server at port 6665 with device
(robot) index 0, running with a speed multiplier of 3. The robot
server will provide access to two robots with indexes 0 and 1. You
can the same client to drive the other robot with the command
./client 6665 1 3. client.c is not very smart, but you can tinker
with it to improve it and maybe use it as the starting point for your
code.
The basic information provided above should allow you to get started. If you want to get fancy,
you can play with the other files in the qualification materials:
Feedback Please refer to the Wiki
or send mail to robotics@richardtapia.org with questions,
corrections, and concerns. We will post instructions on how to submit
your code for qualification closer in late July.
Good luck and happy hacking!
|