Nexus3D Team Description Paper

Mahdi Abolfazli Esfahani, Mahdi Alehdaghi, Naser Erfani, Hamed Ghayour, Saeid Askari, Hamid Sajjadi, Soroush Farokhnia

Nexus Simulation and Modeling Lab, Department of Computer Engineering, Ferdowsi University of Mashhad, Iran


Abstract Nexus3D has participated in many soccer simulation competitions from 2003 to now. As in past years, we used this platform as a test bed to verify our recent research results in the field of AI and Robotics. In our current work, we used inverse kinematics for agent's movement control and genetic algorithm for optimizations. In this paper, a brief description of our current and future work is presented.

1. introduction

Robocup soccer simulation is a client-server multiagent platform in which the server communicates with each of the clients about the state of the world while they reply with specific commands. Having a three-dimensional environment makes it a good platform for studying humanoid robot control and strategic decision making. Being cheap and easy-to-use made this platform to gain much more popularity in recent years. The current development of 3D soccer simulation server uses a humanoid robot model known as Nao as soccer playing agents, which can be controlled by a low-level interface. Currently, robot's stability control and movement are our main focus alongside with team strategy and agents' positioning. Our source code is implemented from the scratch and is extended with our latest base release.

2. Localization

Agent's observation is done through the robot's camera, giving the relative position of all observable objects. Not having a GPS makes us use landmark methods for agent's localization. Having 8 landmarks with known positions around the field makes the localization process much easier. So what we need is a map of the relative coordination system to a global one.

Different methods are known for this issue. What we are currently using is a two-flag localization method in which the transforms matrix is created just using two different flags. Having two flags and agent's own position, a plane is achieved and by the use of simple geometric equations, agent's position on the plane can be calculated. The problem here is converting this 2D position to the global 3D one. By estimating robot's height using forward kinematic equations and having heights of the two flags, plane's orientation is achieved and having that, we can calculate its rotation matrix. By the use of reversed rotation matrix, we can map 2D positions on the plane to 3D positions on the global coordination system.

Fig. 1. Localization using two flags
Fig. 1. Localization using two flags

3. Skills and Behaviors

As robot's control is done by controlling its servo motors, low level skills play an important role in team's game play. There are lots of things a soccer player needs to learn in order to play a better game which can be fit in two different levels depending on their complexity.

3.1. Skills

Skills are the most basic actions an agent is able to do. Usually in this category, we do not need info about the environment (like opponents).

Kicking is a skill that kicks the ball to a given position with a given speed. This control is achieved by calculation of inverse kinematic equation using jacobian method. As we use first derivation of forward kinematic equation, we are able to control the speed of the ball. Also by giving a series of velocity vectors, kicking trajectory is calculated which helps us lead the ball to the given position.

Fig. 2. Kicking to a position
Fig. 2. Kicking to a position

3.1.1 Walking System

In our previous studies, we worked on solving kinematic equations of the NAO robot to make it suitable to move joints in a certain trajectory. In the current study, we used a Genetic Algorithm to find out the best optimum speed for each of the joints of NAO robot which makes it able to walk fast and stable.

3.1.1.1 Zero of Moment (ZMP)

Zero of moment is the point which the summation of the vertical forces that are going to the sole of the robot do not have any torque. In another world, the summation of the forces at this point is zero. If this point is in the convex polygon between sole and field, the robot is dynamically balanced.

The ZMP position can be found by using the set of equation (1) where $m_i$ is the mass of each link; $\ddot{x}$, $\ddot{y}$ and $\ddot{z}$ are the acceleration along x, y and z axis; $x_i$, $y_i$ and $z_i$ are the position of each link. $I_{iy}$ is the inertia tensor along y axis and variables $\ddot{\omega}{iy}$ and $\ddot{\omega}{ix}$ are the absolute angular acceleration angular along y and x.

$$\begin{cases} x_{zmp} = \frac{\sum_{i=1}^{n} m_{i}(\ddot{z}+g)x_{i} - \sum_{i=1}^{n} m_{i}\ddot{x}z_{i} - \sum_{i=1}^{n} I_{iy}.\ddot{\omega}{iy}}{\sum{i=1}^{n} m_{i}(\ddot{z}+g)} \ y_{zmp} = \frac{\sum_{i=1}^{n} m_{i}(\ddot{z}+g)x_{i} - \sum_{i=1}^{n} m_{i}\ddot{x}z_{i} - \sum_{i=1}^{n} I_{ix}.\ddot{\omega}{ix}}{\sum{i=1}^{n} m_{i}(\ddot{z}+g)} \end{cases}$$

(1)

3.1.1.2 Center of Polygon (COP)

It is suitable to calculate center of polygon (COP) which is center of force by using forces which go to the sole of the robot from the ground. The center of these forces when the robot is stable is equal to the ZMP which can be calculated by using equation 2

$$COP = \frac{\int PF_n(x, y)dp}{\int F_n(x, y)dp}$$

(2)

where P is each point of the sole and is the vertical force in that point. As we know, Nao robot has four pressure sensors in the sole. Thus, equation 2 would become as equation 3 where pi is the location of the sensor and fi is the value of force in that point.

$$COP = \frac{\sum_{i=1}^{4} p_i \cdot f_i(x_i, y_i)}{\sum_{i=1}^{4} f_i(x_i, y_i)}$$

(3)

3.1.1.3 Fitness Function

To have a stable walking system, fitness function has a significant role. To achieve a stable walking system, ZMP and the center of the supporting polygon (COP) have to be close to each other. Thus, the subtraction of these two values should be lower to have a stable walk. This can be written as follows.

$$Fitness_1 = \sum_{i=0}^{Simulation , Cycle} (Z_i - C_i) , (4)$$

This fitness function used as the input of Genetic Algorithm which uses the kinematic model of NAO robot and tries to optimize that to find the optimized values.

3.2. Behaviors

Behaviors are combination of some skills using information about the environment. For instance, dribble is a behavior which uses walking and kicking skills depending on the environment state. By calling dribble behavior, agent moves towards the ball and kicks it in a desired direction. By repeating this sequence, dribble behavior is achieved.

4. Decision Making

Having 11 players in a team makes team strategies and decision making for handling different situations important.

To determine the best action amongst all possible ones for a given situation, we use two phase decision making method. In this method first we search for best actions in different categories, and after finding them, another search is done to find the best action between them. Comparing different types of actions seem to be difficult, but this is done using common parameters in them. Fig.3 shows the overall work diagram.

Fig. 3. Two phase decision making mechanism
Fig. 3. Two phase decision making mechanism

5. References

  1. A. Ildermi, M. Alehdaghi, I. Kiarazm, M. Niazi, A. Gharib, M. Shokri, "Nexus 2011 3D Soccer Simulation Team Description"
  2. M. Alehdaghi, A.Ildermi, et. al, "Nexus3D Base Code"
  3. V. Salmani, M. Naghibzadeh, F. Seifi, A. Taherinia, "A Two Phase Mechanism for Agent's Action Selection in Soccer Simulation", The Secod World Enformatika Conference, WEC'05, Istanbul, Turkey, pp. 217-220 February 2005
  4. Daniel Joseph Paluska, "Design of a Humanoid Biped for Walking Research", Master's thesis, 2000
  5. Jerry Pratt and Gill Pratt, "Exploiting Natural Dynamics in the Control of a 3D Bipedal Walking Simulation", Conference on Climbing and Walking Robots, 1999
  6. Knight, R, and Nehmzow, U., "Walking Robots, A Survey and a Research Proposal", Technical Report
  7. Krister Wolff and Peter Nordin. "An Evolutionary Based Approach for Control Programming of Humanoids

References

  1. A. Ildermi, M. Alehdaghi, I. Kiarazm, M. Niazi, A. Gharib, M. Shokri, "Nexus 2011 3D Soccer Simulation Team Description"
  2. M. Alehdaghi, A.Ildermi, et. al, "Nexus3D Base Code"
  3. V. Salmani, M. Naghibzadeh, F. Seifi, A. Taherinia, "A Two Phase Mechanism for Agent's Action Selection in Soccer Simulation", The Secod World Enformatika Conference, WEC'05, Istanbul, Turkey, pp. 217-220 February 2005
  4. Daniel Joseph Paluska, "Design of a Humanoid Biped for Walking Research", Master's thesis, 2000
  5. Jerry Pratt and Gill Pratt, "Exploiting Natural Dynamics in the Control of a 3D Bipedal Walking Simulation", Conference on Climbing and Walking Robots, 1999
  6. Knight, R, and Nehmzow, U., "Walking Robots, A Survey and a Research Proposal", Technical Report
  7. Krister Wolff and Peter Nordin. "An Evolutionary Based Approach for Control Programming of Humanoids