AmoyNQ-3D Soccer Simulation Team Description

Jianhuai Cai, Zhao Yin, Wei Yu, Tengfei Ye, Liangfei Wang, Peng Lin, Lincen Zou

Automation Department of Xiamen University


Abstract This paper mainly describes the architecture of agent for 2012 RoboCup Soccer Simulation 3D in 4 different aspects, which include the action architecture, the communication mechanism, the decision making and a development tool for debugging agent action. The details presented in this paper cover most of the features and implementation of AmoyNQ team.

Introduction

Ever since the introduction of 3D Soccer Simulation League in RoboCup, a series of changes have been made to improve the 3D simulation condition, which contributes to a more and more sophisticated competition environment. For instance, using the version of Nao robots, increasing the number of robots in game, from 3v3 to 9v9. Accompanied with the popularize of this game, an exchange platform of robotic technology from the front edge of the world has been provided in countries.

AmoyNQ is a team of postgraduate and undergraduate students who love the RoboCup from automation department of Xiamen University, China. Our team was established in 2003, and participated actively in the previous RoboCup and Inter-Open with good results. After the 3D Simulation Group match being introduced, AmoyNQ began to participate in the competition in 2006. The results achieved by our team are delightful(the details are presented in the attached achievements list).

This paper describes our current research progress in detail. Section 2 describes the action architecture. Section 3 introduces the communication mechanism. The decision making is in Section 4. Our development tool of a monitor is shown in Section 5, followed by conclusion and future work in Section 6.

Action Architecture

Biped Locomotion Control

As the figure shows, we define the contrarotating direction as the positive one. The horizontal distance from point A to C is m (left one is m1, and the right one is m2), the direction is positive. The perpendicular distance from point C to A is h (the left one is h1 and the right one is h2).The distant from the left to the right foot is L (it is positive). Then we have

$$l = m_1 - m_2 \tag{1}$$

$$m_1 = l_2 \sin \theta_3 - l_1 \sin \theta_1 \tag{2}$$

$$m_2 = l_2 \sin \theta_6 - l_1 \sin \theta_4 \tag{3}$$

$$h_1 = l_1 \cos \theta_1 + l_2 \cos \theta_3 \tag{4}$$

$$h_2 = l_1 \cos \theta_4 - l_2 \cos \theta_6 \tag{5}$$

$$\theta_{2} = -(\theta_{1} + \theta_{3}) \tag{6}$$

$$\theta_5 = -(\theta_4 + \theta_6) \tag{7}$$

Gathering terms

$$\theta_1 = \arcsin \frac{l_2^2 - l_1^2 - m_1^2 - h_1^2}{2l_1 \sqrt{m_1^2 + h_1^2}} + \arctan \frac{h_1}{m_1}$$ $$ \tag{8}$$

$$\theta_3 = \pi - \arcsin \frac{l_2^2 - l_1^2 + m_1^2 + h_1^2}{2l_2 \sqrt{m_1^2 + h_1^2}} - \arctan \frac{h_1}{m_1}$$ $$ \tag{9}$$

$$\theta_{2} = -(\theta_{1} + \theta_{3}) \tag{10}$$

$$\theta_4 = \arcsin \frac{l_2^2 - l_1^2 - m_2^2 - h_2^2}{2l_1 \sqrt{m_2^2 + h_2^2}} + \arctan \frac{h_2}{m_2}$$ $$ \tag{11}$$

$$\theta_6 = \pi - \arcsin \frac{l_2^2 - l_1^2 + m_2^2 + h_2^2}{2l_2 \sqrt{m_2^2 + h_2^2}} - \arctan \frac{h_2}{m_2}$$ $$ \tag{12}$$

$$\theta_5 = -(\theta_4 + \theta_6) \tag{13}$$

In the walking process, we define one stride by left foot and one stride by the right foot as a walking cycle T. The moving distance in a cycle is 2 |I|. And the moving distance of agent's center of gravity is f, then we can get that the distance from standing to one stride, f=|I|, and after n strides, f=n|I|.

walking model
walking model
the description of the angle of each joint
the description of the angle of each joint

Ballkick

When robot stretches upright foots, R represents its length, L1 the length of thigh, p1 the length of shank, p2 the length of sole. When robot kicks the goal, theta1 represents the max predecessor angle of joints of leg, theta2 the angle between thigh and shank, alpha the angle to horizontal plane when ball is kicked. The arc is the trail of foot when robot kicks the ball. Through calculating this model, we obtain a sequence of varied angles of robot when it kicks and finally achieve a explosive effect by changing some angles about 140 degrees in two frames.

a sketch map of ball kick
a sketch map of ball kick

Communication Mechanism

The communication layer consists of two modules: the network communication module and information analysis module. Communication layer is the interface between agent and server which handles the exchange of information between agent and server. Information analysis module analyses the information received from server, and extracts the effective information.

Network communication module uses TCP/IP protocol to communicate with the server. After receiving and analysing messages from agents, the server does the simulation using ODE and updates the world model. Then it sends the updated information back to the agents, thus completing a full simulation process. The network communication module of agent receives the updated information from server, and sends them to the information analysis module, which completes the analysis and sends them to world model layer.

As the server provides the communication format of the information, the communication layer must follow this format. The server defines that the head of each message must have 4 bytes storing the entire length of the information as the parity bit of the length of information. In the communication process, the server compares the length number stored in parity bit with the entire length of the information. The message is not correct and discarded if they don't match.

The message from server follows the tree structure excluding the parity bit of length at the beginning: (name attribute). And the "attribute" can be further divided into (name attribute), and so on. The specific information analysed by the module includes (take the 0.6 version in 2008 RoboCup as an example): simulation time, game time, game state, team name, number and location(polar express) of other player, marker position(polar express), upper torso posture, joint angles, foot FRP, etc. The specific content of the information is slightly different according to the game state.

Decision making

9 robots are divided into 3 different roles: 1 goalie, 5 forwards and 3 guards. There are 4 basic strategies: Dribble, RunPosition, StandPosition, ClearBall, which are controlled by a state machine.

Each robot has its own strategies and different path-planning in various situations according to the role it's playing. The rotation of these 9 robots also changes when they are in their defense position.

A complete kicking motion contains two statuses: adjust to ball and kick it. Our team use "state machine" to switch between statuses. When the player is far from the ball, it will automatically enter the state of adjusting to ball and then move towards it; otherwise the player will enter the state of kicking ball and finishing the motion of kick after a more accurate adjustment.

Development Tool

In order to facilitate the debugging of the agent, we develop a monitor tool which can parse log and redisplay match in Windows environment . This monitor, similar to the monitor provided by the current server but with more accessibility, is used to debug agent action.

The Configuration of the Monitor

  • (1) Communication layer: We use it to connect with server, fulfilling the duplex communication (including sending instruction to agent and getting feedback from server)
  • (2) Parsing layer: We use it to parse the feedback from server, and then analyze the state of the agent and forecast the next motion of the agent.
  • (3) Behave layer: We use it to build the 3D surroundings and to simulate the competing field and the agent, in order to regulate the motion of the agent by analyzing them directly.
the architecture of the monitor
the architecture of the monitor

the Goal of Monitor System

The first goal is to redisplay the game in time. The system must be able to play log file.

This system should be simple and easy to operate, and have some interface to extend the function. What's more, the system must have many functions, such as providing and forecasting message of the world model layer (including forecasting the track of the ball, motion layer, and unconditioned reflex layer and conditioned reflex layer).

The concrete goals are shown as follows: (1) To provide a communication layer to connect with server, receiving the message get back from the server and sending instruction for agent.

  • (2) To provide a parse layer to parse the message get back from the server and the instruction send to server by the super stratum monitor. The functions are given in detail:
  • ①To pick up the concrete message including the field , the ball and the agent.
  • ②To send the instruction which can be accepted by server.
  • ③To parse log file.
  • (3) The behave layer is constituted of three modules: redisplaying module, parsing and forecasting module and log playing module. The functions are given in detail:
  • ①The redisplay module needs to show the content as follows:
  • a) The competing field
  • b) The play mode
  • c) The posture of agent
  • d) The location of the football
  • ②Parsing and forecasting module must include the content as follows:
  • a) We can analyze the track of the ball and forecast the moving direction and point of fall.
  • b) By analyzing each joint of the agent and each part of the agent's center of gravity in the framework model, we can present them in the global coordinate system in order to provide picture for motion layer and unconditioned reflex layer.
  • ③ Log playing module need to present the content as follows:
  • a) We can redisplay the game in the normal mode, accelerating mode or decelerating mode. We can also add explaining function if possible.
one section of the monitor
one section of the monitor
another section of the monitor
another section of the monitor

Conclusion and future direction

This paper describes the structure of our code hierarchically, including: agent architecture, communication mechanism, decision making and the development tool, and introduces some achievements and progress we have made in theoretical research. In our project, we will focus on three parts: the first is improving the individual action model. For instance, we intend to make it walk faster, even make it run, and we would modify our action model to make the motion more steady and speedy. We want to make the parsing layer more efficiently, including that we can locate the agent and the ball more precisely. The second is improving the upper strategy. Considering that the mode of the game has changed from 3V3 to 9v9, our current upper strategy is not sophisticated enough. Numerous tests should be done to find out the problems in our upper strategy so that we can improve it. At the same time, we will further develop our monitor tool and keep participating in the improvement of the server.

References

  1. Espian B, Sardain P.: The anthropomorphic biped robot BIP2000. Proceedings of the 2000 IEEEE International Conference on Robotics and Automation. San Francisco, CA: 2000. 3997-4002
  2. Remco de Boer and Jelle Kok. Incremental development of a synthetic multi-agent system: The uva trilearn 2001 robotic soccer simulation team. Master's thesis, Faculty of Science, University of Amsterdam, 2002.
  3. "Path-Planning Program for a Redundant Robotic Manipulator, "NASATech Briefs, July 2000
  4. Cai Zinxing. Robotics. Tsinghua University Press, 2000.