SBCe-Wolves 2011 Soccer Simulation Team Description Paper

Dr. Eslam Nazemi, Behrooz shafiee, Amir Ghanbari Bavarsad, Behzad Nikbin

Robocup Lab, Shahid Beheshti University, Evin, Tehran, Iran


Abstract This paper describes the research efforts, put into the design of SBCe-Wolves agent software for Robocop 2011 Soccer Simulation 3D competition. These efforts have been concentrated on developing a powerful base code, group skills and primary physical skills such as walking, kicking and gate generation. Our main emphasis is on developing an architecture in which agents communicate with each other and think as a group and collaborate. Our experiments have shown promising results in the field of AI and group reasoning.

Introduction

SBCe-Wolves was established in Shahid Beheshti University Robotics lab in 2009. The only previous competition we took part was Iran Open 2010 and we look forward to participate in Iran Open 2011 and world cup competitions. One of the main challenges that researchers are faced is the problem of walking, since it requires precise 3D calculations and a thorough knowledge of Kinematics. There have been a lot of methods proposed for this problem and we employed several methods such as Genetic Algorithm and managed to overcome this problem. Moreover, there are some other methods such as Dynamic Gate Generation and Inverse and Forward Kinematics that are used by other teams and we are taking them into account either. For the past years, researchers focus has been on walking and stability issues and since it hasn't been too long that the Robocup server has employed a humanoid robot, still much effort is required to cover all the issues. Due to what's been said, one of the main challenges of robotics have been left out; the AI. We thought that it's about time that we started working in this field either. For start, we implemented an algorithm that uses a cooperative method in order to make robots collaborate. In this paper, we describe the work done in our team in order to be ready to participate in Iran Open 2011 competitions held in Tehran, Iran and we elaborate on the issues introduced and further describe our methods and efforts employed.

Base Code

An important factor for a team to be successful is to have a powerful base code. Previously, we used C++ as our programming language, but due to difficulties of C++ and hardships to debug the code, we decided to migrate to java, since it is much simpler and portable compared to C++. During development of the base code a lot of attention was paid to software engineering aspects such as reusability, readability and etc.

One of the features supported in our base code is the ability to localize the position of the robot according to the information provided by the server. The server provides the agent with the distance of each seen flag with which we can calculate proximity of the agent's position, However, It is not sufficient enough since we need the position to be more accurate; Particle filtering is a mean which guarantees that our position is accurate. In our code we use a Second-Order Auto regressive function which considers not only previous position, but current heading of the robot, which has a great deal of impact on its accuracy. In each cycle where seen flags are reported, we calculate an estimated position of the robot (using circle intersection) and give it to the particle filtering module. There are a static number of particles and every time we have a new position to calculate, these particles are being resampled and better ones are chosen. Then a transition will be made based on current particles and calculated position and then the weighted mean of the particles will be calculated and used as the new accurate position. In our method, the accuracy of filtered position for X-Axis is 0.06 and for Y-Axis is 0.04.

Individual Skills

One of the main challenges of Robocup league is walking. Many methods have been proposed in order to make robots walk in a stable manner. One of them is mentioned in [2] and is used by some teams participating in Robocup competitions and seems stable.

Our team has used a combination of Genetic algorithm and Geometric calculations. At first we used a sample of human walking as an initial generation for genetic algorithm and using geometric calculations we calculate the angles of joints. Then using software we have developed, we are able to run the genetic algorithm and test it in the Simspark simulator. The results showed to be fast, however further effort is required to make it more stable.

Walking Loop

As it is clear from the figure below, the loop phase can be divided to two half-loops:

Half-loop 2(Right Leg) = Half-loop 1 (Left Leg)

Half-loop 2(Left Leg) = Half-loop1 (Right Leg)

So one half-loop is enough to make the whole loop. In order to make a complete gait three phases is required:

  • Start
  • Loop
  • End

Here half-loop construction is described. Start and end phase can be built in a similar manner.

World coordination system is imagined as in the figure above, movement across the Y axis is omitted. In order to calculate the half-loop, Start and End phases 6 variables and 3 constants must be considered, including:

Variables:

  1. Hip's height: Hip's up and down movements are omitted so hip's height is fixed always.

  2. Hip's offset: It is the horizontal distance (across the X axis) of hip to the leg which is behind the hip at the beginning of half-loop.

In order to reduce undesirable rotation of robot, rising of leg at time 0 and lowering the leg at time n-1 are just vertically. During the movement, ankle's position, changes around a circle.

  1. Vertical height: It is the height at which, legs can move vertically.

  2. Circular height: It is the height between vertical height and maximum ankle height. Circular height can be calculated easily as following:

Circular Height = Maximum ankle height – vertical height

  1. Number of steps during Half-Loop: This parameter divides half-loop duration to n parts, as shown in figure.

  2. Step's length: This parameter determines the distance traversed during half-loop, which is calculated as below: Step length = X n-1Ankle– X0Ankle

Constants:

In this section the required constants for calculating parameters of different phases of walking are presented. The values of these constants are different for various robots.

  1. Thigh's length: This constant represents the length of robot's thigh.

  2. Shank's length: This is the length of robot's shank.

  3. Time of one step: This parameter is the time of one step during half-loop, as an example if the duration of halfloop is t then the time of one step is t/n where n is number of steps during half-loop.

These constants during any kind of movements are same and there is no need to change them.

World coordination system for walking
World coordination system for walking
Figure 1 HipOffset = X0Hip-X0Ankle
Figure 1 HipOffset = X0Hip-X0Ankle
Circular height illustration
Circular height illustration
Figure 3: Steps during Half-Loop
Figure 3: Steps during Half-Loop

Calculating Walk Parameters

Due to variety of parameters, using regular mechanical equation to calculate parameters is difficult and unwise. Therefore Genetic algorithm was used to calculate values of different parameters. In order to obtaining good results from genetic algorithm in a reasonable time, appropriate initial values are required. Thus, to gain suitable initial values we developed a visual application to modify parameters and watching the results quickly. Therefore through using this tool we could find proper initial values for Genetic Algorithms. The figure below shows the main window of this tool.

Figure 4-Tool Developed by SBCe-Wolves for walking
Figure 4-Tool Developed by SBCe-Wolves for walking

Walking Procedure

In order to move the robot, the angles of hip, ankle and knee should be known at each step, for both right and left leg. Therefore, in the first place, position of these points must be found then, angles are calculated accordingly. After calculating position of hip, ankle and knee at each step, calculation of their angles at each step is also possible. After calculation of angles of hip, ankle and knee at each step for each leg, the only remaining point is sending these values at each interval (Time of one step constant) to robot

Team Architecture

The purpose of Robocup simulation league is to provide a platform for researchers to work independent of hardware restrictions and implement algorithms in an environment where laws of physics apply. For the past years a lot of effort has been put into individual skills such as walking and gate generation; we have decided to further these efforts and work on collaborative skills such as communication and team strategy. Due to communication problems we experienced during Iran Open 2010, we decided to employ a technique that would guaranty safety of our transmitted data and ensure that other teams wouldn't be able to interrupt our communications. So we encrypt the message when we send it and decrypt it on the other side with a shared key among our agents. For the team architecture we used proposed method in [1]. This method implements a team of cooperative agents playing soccer.

31 26 21 16 11 6 1
32 27 22 17 12 7 2
33 28 23 (18) 13 8 3
34 28 24 19 14 9 4
35 30 25 20 15 10 5

Figure 5: Soccer field divided into regions

The main idea of this method is to compare the current situation of the game with a set of predefined game situations and choose the closest one. In order to reach this goal, we used a weighted function to evaluate the current situation in respect of every predefined game state. This function gives a similarity score to each predefined game state and the one with the highest similarity is chosen to be used for decision making process. In order to create this set, we assumed some game situations such as: defensive, offensive, idle and etc. these situations are determined by the number of players, their positions in the field and ball position. When dealing with high level decision making, the exact position of each player and the ball is not necessary and a rough approximation of positions suffices. Therefore, we divided the field in 35 regions and each region is represented by a number. An agent has to be chosen to coordinate these tasks and each time the game state changes, a new coordinator has to be chosen to choose a new strategy and broadcast it to others. In order to choose the coordinator, all agents broadcast a message containing their distance to the ball and the one with the farthest distance is selected as the coordinator. After a strategy is broadcasted by the coordinator, each player knows its role according to the strategy expressed in the predefined set and employs a chain of action in correspondence with that strategy.

Future Work

A lot of work can be done in both Agent and Team Architecture. Walking algorithms need to be improved and the need for a running algorithm is obvious. Also Team Architecture requires much attention; for instance weighted function can be developed so that it would respond to different situations. Also defined game states can be further defined in order to correspond with different situations that may arise in the game.

Conclusion

Robocup is an amazing test bench for AI, control and mechanic systems and there are lots of challenges to be fulfilled. For AI, there are agent systems that are cooperative and need to work in a system together. In the field of control and mechanical systems, biped walking and motor control systems always remains a challenge for designers and developers. In our team, we used Genetic Algorithm alongside Geometric calculation in order to achieve an stable walking gait. Also we have put a lot of effort in AI and our agent are able to communicate with each other and work as a team.

References

[1] Myriam Arias Ruiz, Jorge Ramirez Uresti.Team Agent Behavior Architecture in Robot Soccer: IEEE Latin American Robotic Symposium, 2008. [2] Qiang Huang, Kazuhito Yokoi, ShuujiKajita, Kenji Kaneko,Hirohiko Arai, NorihoKoyachi, Kazuo Tanie.Planning Walking Patterns for a Biped Robot, IEEE Transactions on Robotics and Automation, VOL 17, NO. 3, June 2001. [3] Jungho Lee and Jun Ho Oh ,Biped Walking Pattern Generation Using Reinforcement Learning. [4] Simspark Manual. [5] Apollo 3D soccer simulation team description. In Robocup 2010, Singapore, June 2010.