Robotic soccer is a common task in artificial intelligence and robotics research.
This task permits the evaluation of various theories, the design of algorithms
and agent architectures (Pratomo et al., 2010).
Robot Soccer was introduced in 1994 with the theoretical background to develop
multi-robots adaptive, co-operative, autonomous systems solving common tasks
(Asada and Kitano, 1999). A group of robots shall interact
and self-organize autonomously in order to achieve a common goal. Further technical
aspects besides co-operative and coordinated behavior are miniaturization of
a complex electro-mechanical system, precise movement and optimal power efficiency
(Kim et al., 1997a). There are several categories
in robot soccer: Simurosot, MiroSot, Narosot and HuroSot, classified by the
size of the robots and the number of playing robots. SimuroSot consists of a
server which has the soccer game environments (playground, robots, score board,
etc.) and two client programs with the game strategies (Kim
et al., 1997b).
In this study, we implement several algorithms for robot soccer strategies. We create a strategy which makes the robot dribbles a ball while avoids obstacles and moves towards a passing position before makes the ball passing. Simultaneously, another robot avoids an opponent robot to move to the shooting area, receives the ball and shoots the ball to the goal. The robot shooter has to beat the opponent's goal keeper to score a goal.
MATERIALS AND METHODS
Figure 1 shows the development steps. We develop and test numerous strategies using the prototyping approach in the Laboratory of Computational Intelligence, Faculty of Information Science and Technology, Universiti Kebangsaan Malaysia. We adopt the best strategy in the robot soccer game to complete the required task.
Task: A pictorial scenario based on several tasks as mentioned earlier,
is shown in Fig. 2. We need to analyze and understand the
situation to identify the best movements for the robots as depicted in Fig.
|| Development steps
|| Scenario of the game
Briefly, the R1 robot must avoid the RD robot that acts
as an obstacle, chase and shoot the ball into the goal. At the same time, the
R2 robot dribbles the ball along the bottom field and passes the
ball through two RD robots as shown in Fig. 2.
The RG robot must stop the ball from enter the goal. In our scenarios
all the RD robots are the defender in the static positions. These
robots act as the obstacles.
Approach: The code of robot soccer strategy is developed using Microsoft Visual C++. We divide the scenario into two parts, Part A and Part B as shown in Fig. 3 (refer to Fig. 4 and Fig. 5 for the detailed version).
|| Strategy plan
|| The part A strategy
|| The part B strategy
The task of part A is to assign movement for the R2 robot to dribble the ball along the bottom field and to shoot the ball through two RD robots. On the other hand, the part B is to assign movement for the R1 robot to avoid RD robot, chase the ball that moves towards it and shoot the ball straight to the goal. Those scenes are divided in such away to facilitate the source code development.
Development of the part A strategy: First, we assign a movement to the R2 robot to move forwards slowly until x1. Then, the robot changes its direction to point A which is located below the RD robot. The distance between the R2 robot and the RD robot is shown in Fig. 4. Our vision system used 640x480 image resolution that makes 2,67 pixels equivalent to 1 cm in real measurement. When the R2 robot arrives at x2, it makes a half circle turn approaching the field obstacles and hits the ball through two RD robots. We fix the coordinate of x1 and x2 according to the Fig. 4.
Development of the part B strategy: We assign the movement for the R1 robot as the followings. The R1 robot avoids the RD robot and then chases the ball that moves towards it. Then, the R1 robot shoots the ball into the goal. The R1 robot only starts moving when the R1 robot and the R2 robot are in parallel of each other in its way to x4-axis. The R1 robot will approach x3-axis and B point. At x3-axis, the R1 robot makes a turn slightly to avoid the third RD robot, and gradually approaches the x4-axis. From x4-axis, the R1 robot chases the ball using a predict ball function and shoots it into the goal. We fix the x3 and x4 -coordinates according to Fig. 5.
Algorithms: We develop algorithms of strategy part A and B based on flow chart as depicted in Fig. 6 and 7 subsequently.
|| The part A plan
|| The part B plan
Testing: We conducted several tests and then we recorded the number of success goal and the percentage of successfully performed the required tasks. We checked the unsuccessful task by replaying the simulator. We noted down the problems and improved them by changing the algorithms and setting parameters such as robots position, turning point, speed of the robot and velocity for turning.
Optimization: To optimize the performance and to produce the acceptable results in this task, we try out many methods and change the setting parameters to increase the number of success goal. First, we adjusted the constant value that indicates the robot passing time. Second, we initialized the position of the three robots in this task. The position must be exactly the same as the given scenario in order to get more accurate movement.
In this task, we used fuzzy algorithm. The position and predict algorithms
are included in mathematical functions such as method to calculate angle, distance
and position prediction of the ball and desired position of the robot (Egly
et al., 2005; Huang, 2009).
The R2 dribbles the ball: The ball dribbling is a technique
to control the ball and to bring it to the desired location (Liu
et al., 2004). We used the best method and strategy to control the
ball. In the robot soccer, each player has its own velocity coefficient to chase
or shoot the ball. From the algorithm, we set the velocity of the robot into
a consistent value during ball dribbling. We also set the robots speed
into a constant value to ensure that both wheels are in balance. The speed will
only change when it meets the RD obstacle. The R2 robot
changes its position when it meets the RD obstacle and automatically
tries to pass the ball to the R1.
The R2 avoids the obstacles to the R2 position and then passes the ball to the shooting area: Figure 8 shows a scenario when the R2 dribbles the ball and changes its action after it meets the obstacles and passes through the center line.
Here, we employ the two techniques. First, we use the Cartesian plane (coordinates) concept when the ball is near to the RD obstacles. Second, we use obstacle avoiding strategy when the R1 faces both the RD robots. By using these two strategies, the R2 can pass the ball through the two RD robots and move forward to the shooting area as shown in Fig. 9.
The R1 moves to the R1 position and avoids the robot opponent defender RD: As shown in the Fig. 10, after the R1 meets the RD obstacles, it will shoot the ball to the shooting area (refers to the circle in the Fig. 10).
In this situation we provide two attacking strategies. In the first strategy, the simulator has FBOT (field bottom) and FTOP (field top) values to determine the center line. After the ball crosses the center line, the R1 starts to move forward and will try to avoid the RG obstacle. In the second strategy, after the ball moves through the center line and meets the RD obstacle, the R2 takes the action to shoot the ball. We combine both of the strategies to make the R1 and the R2 move simultaneously. The R1 and R2 share their own positions values in order to move to the shooting area and finally to make a goal.
The R1 receives or chases the ball: Figure 11 shows the robot receives and chases the ball. In this situation, we try to find the best strategy. Based on the previous scenario strategy, the basic concept of the ball chasing as well as the obstacles avoidance is known. We create the codes to detect how far is the RGs obstacles. The R1 will try to catch the ball and kick the ball towards goal regardless of the ball position. The ball might not exactly at the desired location because of human errors during the ball and robots setting before the game.
The R1 shoots the ball to the goal in A or B position: Basically,
the attacker will try to make a goal as fast as possible with a high kicking
speed. It is the same situation as shown in Fig. 12. The
R1 will shoot the ball immediately after the ball is received. When
the attacker reached the goalie area, we increase the R1 speed immediately.
|| The R2 dribbles the ball
||The R2 dribbles the ball and changes its action
||The R2 shoots the ball and the R1 starts
||The R1 avoids the RG obstacles and the
ball closed to shooting area
||The R1 shoots the ball in A or B position
||Goalie defends the goal
|| Tasks definition
If the ball is very near to GTOPY or GBOTY corner (goal line or goal box),
we set or give more velocity to the R1.
Goalkeeper robot, RG, defends the goal: The attacker will always try to make a goal and the goalie will defend the goal area. In this situation, we increase the attacker velocity to shoot the ball regardless whether the goalie is ready or not. The implementation of the idea into the robot soccer simulator is shown in Fig. 13.
The developed ball control techniques based on predefined scenarios were successfully tested. The tasks are defined as shown in Table 1.
The experiment shows that almost all T1 tasks are successfully implemented. It can be observed that T2 task has correlation to the achievement of T3 and T4 tasks. The shooting accuracy in T3 task depends on the performance of T1 task. Besides, T3 task determined by the accuracy of the ball prediction as well. Furthermore, T4 task will be achieved when the T3 task is successfully done.
Many possible strategies and techniques can be applied to the robot soccer. The programmer can implement their own idea into the code regardless of the code structure. The important idea is the programmers must have a basic knowledge in robot soccer and know the related strategies and techniques in robot soccer. In this case, we applied our ideas into robot soccer game simulation. The first idea is using the Cartesian concept. Second, we calculated the area in simulator. Third, we used an existing strategy of robot soccer. Finally, we modified the robot soccer parameters such as increases the attacker speed, obstacles avoiding in near position, and dribbling with controlled velocity. Furthermore, we combined all the strategies and techniques to get the optimum result.
After the task completed, we then applied a variety of interesting ideas of the robot soccer movement. We combined all possible techniques such as dribbling, chasing, and shooting. The results show the strategies and techniques had been successfully implemented. The position and prediction algorithms have proved can be applied in the real robots.
The authors would like to thank Faculty of Information Science and Technology, University Kebangsaan Malaysia for providing facilities and financial support under Research University Operation Project No. UKM-OUP-ICT-36-186/2010 and Fundamental Research Grant Scheme No. UKM-TT-03-FRGS0131-2010. Besides, thanks to Muhammad Nuruddin Sudin, Muhamad Syafiq Shohaimi, and Dwi Yanuar Panji Tresna for their contribution in this research.