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 a varieties of soccer simulation competitions since 2003. These competitions are a platform in which we test and enhance our research in the field of AI and robotics and also compare our results and achievements to the state of the art. In this paper, we present a brief description for our current work on Nexus3D team. We have used inverse kinematics for walking and movements of robot and both CMA-ES and genetic algorithm for our optimization.

1 Introduction

Robocup soccer simulation, is a client-server multi agent platform. In this platform, server communicates with each of the clients by sending the state of the world to them, and they reply to it with specific commands at each cycle. Being cheap and easyto-use made this platform to gain much more popularity in recent years. Moreover, having a three-dimensional environment makes it a good platform for studying humanoid robot control and strategic decision making. 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. Hence, teams can improve and develop robot's control decisions.

Currently, robot's stability control and movement are our main focus alongside with team strategy and team positioning. Our source code is implemented from the scratch and is extended with our latest base release. In this paper, first we explain our localization in section 2, and after that we speak about our agent's skill in section 3. Finally, we speak about decision making in section 4.

2 Localization

Robots get relative positions of all observable objects through their cameras. Knowing the position of 8 landmarks around the field, we can use landmark methods for agent's localization. All we need is to map the relative coordination system to a global one.

From different methods available for this purpose, we use a two-flag localization method in which the transform matrix is generated by using two different flags. We can easily calculate the position of agent on a plane which is created by the position of two flags and the agent itself. Then, we need rotation matrix of this plane to map 2D positions on it. By using forward kinematics, we can estimate the height of agent and with having the height of agent and two flags, we can calculate the orientation of plane. Therefore, we can find its rotation matrix. By using reversed rotation matrix, we can map 2D coordination on plane to the global 3D coordination.

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

3 Skills and Behaviors

3.1 Shoot

Shooting skill should be able to kick the ball to a given position which can be far away from the shooting position. To achieve a desirable shoot, two factors should be considered, precision and power. We focused on the power of the shoot and tried to optimize it in a way that the maximum power is reached. To that, CMA-ES method is used.

As the initial state for optimization, the robot is standing on one foot as stance foot and the other foot is ready to swing and kick the ball, shown in fig. 2. Then, the optimization process is performed on a basic and inefficient joint movements to enhance the velocity and angles of them.

Fig. 2. Initial state for optimizing shoot
Fig. 2. Initial state for optimizing shoot

3.2 Walk

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 CMA-ES 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 Point (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}$$

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 $p_i$ is the location of the sensor and $f_i$ is the value of force in that point

$$COP = \frac{\sum_{i=1}^{4} p_i. 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}^{simulaction \ cycle} (Z_{i} - C_{i}) (4)$$

3.3 Behaviors

Combination of some low level skills together creates behaviors. Behaviors are high level skills and they need information about environment. For instance, dribble is a behavior which uses both walking and kicking skills depending on the state of the environment. In other word, by calling dribble behavior, agent moves toward 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 important for handling different situations. Since this platform is multi agent, decision process becomes complicated. To determine the best action among all possible ones for a given situation, we use a two phase decision making method. In this method, first, we search for the 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. However, 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

References

  1. M. Alehdaghi, M. Abolfazli Esfahani, N. Erfani, S. Farokhnia, H. Ghayour, S. Askari, H. Sajjadi, "Nexus 2015 3D Soccer Simulation Team Description"
  2. A. Ildermi, M. Alehdaghi, I. Kiarazm, M. Niazi, A. Gharib, M. Shokri, "Nexus 2011 3D Soccer Simulation Team Description"
  3. M. Alehdaghi, A.Ildermi, et. al, "Nexus3D Base Code"
  4. 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
  5. Daniel Joseph Paluska, "Design of a Humanoid Biped for Walking Research", Master's thesis, 2000
  6. Jerry Pratt and Gill Pratt, "Exploiting Natural Dynamics in the Control of a 3D Bipedal Walking Simulation", Conference on Climbing and Walking Robots, 1999
  7. Knight, R, and Nehmzow, U., "Walking Robots, A Survey and a Research Proposal", Technical Report
  8. Krister Wolff and Peter Nordin. "An Evolutionary Based Approach for Control Programming of Humanoids