RoboCup SSL Webots simulation environment

RoboCup SSL robot model

I’ve finished designing a proper RoboCup SSL robosoccer robot model in Webots simulation environment.

This model contains sensors, such as gyro (for angular speed), accelerometer (acceleration in x and y axis), light sensor (detection of the ball if it can be kicked). It includes actuators such as a three-wheeled omni-like base, kicker, chip-kicker and a dribbler.

Webots <-> ssl-vision integration

I’ve also added “capture simulator” feature to the ssl-vision software. Now we can easily assess geometric calibration and robot detection performances of ssl-vision by streaming in the images from the webots simulator through boost::asio tcp sockets . Besides, we can obtain a more real-like simulation.

Large field and four cameras

While designing the simulation environment, I also considered the possibility that starting from this year, new field size can be enlarged to twice the current size. Hence, a large field (9.45×6.05 m^2), containing four overhead cameras, is also added to the environment.

However, ssl-vision integration apparently suffered from 4-camera usage. I’ve tried a single process and four threads to get images from webots simulation environment, but it could reach at most 17fps refresh rate. Using four processes (single threaded) also resulted in a similar performance, 18-19fps. My rough guess is grabbing images from the simulation invironment ( 780×580 ) requires considerable amount of processing in the main webots simulation process.

During this study, I’ve tried several other wheel placement alternatives and real-like omniwheels, but three wheeled symmetrical placement gave the best result.

To mention what sort of tools used:

  1. Solidworks 2011 to draw bounding boxes, and some parts (cover, chipkicker, base etc.). These parts are then saved as in .wrl format to be imported in Webots .wbt files or proto files.
  2. Inkscape is used to edit .dxf files (robot pattern drawing in Solidoworks) and convert them to svg/png files for both ssl-vision and webots.
  3. boost::asio and boost::thread are used to connect ssl-vision to Webots.

Sample controllers are coming soon 🙂