Photon Team Description for RoboCup Humanoid KidSize League 2016

Stepan Gomilko, Darya Zhulaeva, Dmitry Rimer, Dmitry Yakushin, Evgeny Shandarov

Laboratory of Robotics and Artificial Intelligence Tomsk State University of Control Systems and Radioelectronics (TUSUR) Tomsk, Russian Federation


Abstract This paper describes the RoboCup Humanoid KidSize team Photon. We used Robotis DARwIn-OP robot platform and develop own software to create robot soccer team. We discuss about our software implementation of computer vision, communications, movements and main control modules.

Introduction

The Laboratory of Robotics and Artificial Intelligence was established in Tomsk State University of Control Systems and Radioelectronics (TUSUR), Tomsk in May 2010. But the robotics competition activities started in TUSUR in the fall 2008 when the first Roboball championship in TUSUR was held.

Roboball championship is TUSUR own robotics competition focused only on robosoccer. The MiroSot and SimuroSot leagues platforms from FIRA was used for our competition. Since 2008 the Roboball has become annual TUSUR event. Due to Roboball a lot of TUSUR students participated in their first robotics competition.

In February 2013 we met Prof. Gerhard Kraetzschmar and team b-it-bots from Bonn-Rhein-Sieg University of Applied Science and decided to participate in RoboCup.

In 2013-2014 seasons we are focused on RoboCup 3D Simulation Soccer. In May 2013 the team Photon took part in RoboCup Japan Open for the first time and won the first place in 3D Soccer Simulation league.

From 2015 we are going to robot soccer in RoboCup Humanoid League.

Robot hardware

As a robot platform we uses Robotis DARwIn-OP. Our choice was based on DARwIn-OP open architecture, technical specification and high repairability.

DARwIn-OP is an anthropomorphic robot with 455 mm height and 20 DOF. Internal computer based on Intel Atom processor and works on Ubuntu Linux.

Software

The software framework consist of four general modules: walking control, computer vision, communication and main control. The software realized as modular, multithreaded architecture. C++ and bash scripting languages using for implementation.

General architecture

Walking control module

Walking control software module provides for robot omnidirectional adaptive movements on playing field as well as performing pre-programming movements (actions).

Pre-programmed movements (actions) required to perform routine tasks: kick the ball: left foot, right foot; get up after a fall; goal protection: one leg to the side, crouching, falling to the side of the ball and so on. This set of movements created in the RoboPlus software.

Software framework supplied with DARwIn-OP includes basic functions to ensure omnidirectional robot movement on a horizontal surface. The walking controller used allows us to tune robot gait with a large number of parameters. We used "standard" software as a base and develop only the high level functions of motion control ("moving forward", "turn on the spot", "move to the point", "follow the ball" et al.).

RoboCup Humanoid League Rules 2015 edition introduced a new type of field surface: artificial grass. For stable walking on this field we need to tune robot gait parameters. A lot of parameters must be tuned: increase "Foot height", change "Hip pitch offset", increase "Step right/left", reduce "Period time" and so on. This has ensured a steady movement on artificial grass field at lower speed. It should be noted that the setting walking parameters should be carried out for each robot in the team individually.

Computer vison module

Prior to 2015 an orange ball in RoboCup Humanoid Soccer League used. In this case we can used the center of mass method for ball finding. This is stable and high speed algorithm. Since 2015 the FIFA Size 1 ball with 50% white color uses in competition. In this case, the use of the center of mass algorithm does not work, because there are other white objects on the field: field layout, gates, fencing banners, etc. To create a new ball search algorithm we used OpenCV library. The image captured from robot camera (Fig. 1) is converted to the HSV color space.

Then the image is binarized (Fig. 2). On the resulting black and white image we detect contours. Blurring image to get rid of small objects (Fig. 3). To find ball we look for all circuits similar in shape to a circle. The ball is the large round object on the field, among the remaining contours are greatest (Fig. 4).

We using histograms of oriented gradients method for goal detection. The captured from the robot camera image (Fig. 5) is binarized (Fig. 6). Goal color for the current lightning conditions have been used as a binarization threshold value.

Binarized image is divided into 640 vertical stripes. Histogram of oriented gradients created on the number of white pixels in each vertical strip (Fig. 7). The bar chart clearly shows two peaks corresponding to goal post. Using these data, we can find the center of the goal, and robot position relative to goal.

Fig. 1 Captured image
Fig. 1 Captured image
Fig. 2 Binarized image with detected contours
Fig. 2 Binarized image with detected contours
Fig. 3 Blurring image
Fig. 3 Blurring image
Fig. 4 We've got the ball!
Fig. 4 We've got the ball!
Fig. 5 Captured goal image
Fig. 5 Captured goal image
Fig. 6 Binarized image
Fig. 6 Binarized image
Fig. 7 Histogram of oriented gradients over image
Fig. 7 Histogram of oriented gradients over image

Communication module

Open source software GameController used for game control in the RoboCup Humanoid Soccer and Standard Platform leagues. Communication is provided by the transfer of broadcast packets over UDP, using port 3838. The packets contains information about current match time, score, game phase et al. The game is divided into phases: INITIAL - robots cannot move, just stand; READY - must stand up to their original positions; SET - robots cannot change the position of their own; PLAYING - the game starts; FINISHED - the game is over. The module is implemented to obtain information from GameController, send replies and set states which determines the behavior of the robot-player.

Also, communication module provides interaction between team players. Currently we are not realized the full coordination of robot activities, only small amount of information sharing beetwen robots: estimated position, direction, distance to the ball. It is not enough to create a real game strategy, but allows, for example, autonomously make a choice of robot for ball following. Also, based on the information from the goalkeeper on the distance to the ball can be determined at which half the field is part of the game.

Main control module

Since the robot is a collection of a large number of both software and hardware components that work in an independent mode of each other, it was decided to build a model of management of the robot based on an event-oriented approach. Automatabased programming was used to develop the main control module.

We defined a set of states for robot on field as: FINDBALL - find the ball; BALLFOLLOW - following the ball; FINDGOAL - search goal; KICKBALL - hit the ball; STANDUP - robot is fall, need to get up. For the goalkeeper set of states: SEARCH_BALL - find the ball; BALL_TRACKING - tracking of the ball; CATCH_BALL - implementation of protective actions; RETURN_ON_POSITION a return to the position at the goal; STANDUP - robot is fall, need to get up.

Event markers used for change the current state: "receiving a signal from GameController", "loss the ball", "ball is in the strike zone," "the robot has fallen" et al. We used different colors for robot eyes to indicate the current state.

Conclusion

In April 2015 the team Photon took part in Humanoid League competition for the first time on RoboCup German Open in Magdeburg and get 2nd place in league.

We are looking forward to participate in 2016 WorldCup in Leipzig, which is a great opportunity for our team to get more experiences from competition, exchange knowledges with other students and researches from all over the world.

References