Nexus3D Team Description Paper

Mahdi Alehdaghi, Amirhossein Gharib, Armin Ildermi, Iman Kiarazm, Mojtaba Niazi, Hamed Ghayour

Software 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 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 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 along-side with team strategy and agents' positioning. Our source code is implemented from the scratch and is extended on our latest base release.

2. Localization

Agent's observation is done through robot's camera, giving 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 from 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 transform 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.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 9 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

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