1 Introduction

Robot soccer is a good example of a multi-agent system in a real-world application which can be moderately abstracted. Multi-agent systems deal with research subjects such as cooperation protocol by distributed control, effective communication and fault-tolerance while having efficiency of cooperation, adaptation, and robustness, and being in real-time.

Soccer robot control can be divided into three control schemes. The first scheme is a remote-brainless soccer robot system in which a host computer controls the robots by commanding the robots motion. The second scheme is a vision-based one which controls the robots by processing information using the vision with a supervisor processor and sends commands to robots directly. The other scheme is a robot-based one, wherein each autonomous robot can make a decision based on information from its sensors and, if needed, can send information to others. Robots are designed for autonomous operation [1].

Among the three schemes, only the remote-brainless soccer system has been dealt with, in this paper as it is easy to develop, though the robots are designed for the robot-based system. A control structure, several behaviors, and actions are developed for a soccer robot. Modified zone defense as a basic strategy and several special strategies for fouls are applied to multiple humanoid robots for ANDROSOT’15 (Robot World Cup Soccer Tournament). A soccer game of the ANDROSOT played by 3 robots from each team is used as a test bed for the multi-agent systems. In Sects. 2 and 3, we described the soccer robot system and control structure in detail.

2 Soccer Robot Systems

There are various methods including the hardware, such as CPU, actuators, sensors, and software, such as control algorithm, strategies to make a soccer system for ANDROSOT which consists of multiple humanoid robots per a team. Therefore, we have to select the appropriate hardware and software among the various methods.

In this section, we focus on the overall architecture of the soccer robot system and the soccer robot system. The specific configurations and functions are explained in detail as follows.

2.1 Architecture of Area Soccer Robot System

Figure 1 shows the overall architecture of the soccer system for ANDROSOT. As shown in Fig. 1, the soccer robots having motion mechanism, a vision system, a host computer which manage the strategies and position control of the soccer robots according to the offense or defense situation, and a communication system between a host computer and three soccer robots are needed for robot soccer game.

Fig. 1
figure 1

Overview of the soccer system including a vision system [2]

2.2 Soccer Robot System

Figure 2 illustrates a robot system we used in the soccer game. As shown in Fig. 2b, the soccer robot has 34 cm × 18 cm × 12 cm dimension and 17 DOF [3]. It involves a 2-axis gyro sensor, an IR sensor, and a tilt sensor to detect the inclination fall down of the robot body. To control the servo motor, we used the MR-C3024FX (Fig. 2a) which can control 24 servo motors and has various control interface, such as a gyro sensor, a Bluetooth module, and a remote control.

Fig. 2
figure 2

A soccer robot system and its controller

Basically, each robot system can make over 120 motions and in the case of our soccer game, we use the 32 various motions including the block motions for a goalkeeper robot. Each robot system selects the appropriate motion corresponding to the game situation.

3 Motion Control and Path Planning Algorithm

In this section, we deal with the control algorithms for the obstacle avoidance method and the optical path generation. Detailed methods for the control structure are described as follows.

3.1 Motion Control for Obstacle Avoidance

To avoid collisions between our player robots and the obstacles such as the opposite player robots, we need to determine the avoidance direction and the avoidance motion of our player robots. Therefore, we proposed novel method called Complex Measure (CM) and the Fuzzy Logic-based Avoidance Motion Selector (FL-AMS) to solve the given problem.

3.1.1 Decision of Avoidance Direction Using Complexity Measure (CM)

To calculate the avoidance direction, we use the environment information such as obstacle’s position and size as the input data. To decide the avoidance direction, we propose the complexity measure (CM) as follows:

$$ CM = \left\{ {\begin{array}{*{20}l} {\sum\limits_{l = 1}^{n} {k_{l} + 2^{{(\pi /2 - \theta_{l}^{{}} )}} + w_{l} } ,} \hfill & {\theta_{l} > 0} \hfill \\ { - \sum\limits_{l = 1}^{n} {k_{l} + 2^{{(\pi /2 + \theta_{l}^{{}} )}} + w_{l} } ,} \hfill & {\theta_{l} < 0} \hfill \\ {\sum\limits_{l = 1}^{n} {2k} + w_{l}^{k} \sum\limits_{l = 1}^{n} {} ,} \hfill & {} \hfill \\ \end{array} } \right. $$
(1)

In (1), the CM is determined by three factors: distance from the robot, width of the obstacle, and angle from the robot to the obstacle. From the CMs, we can get the final avoidance direction as

$$ Direction = sign(\sum\limits_{all \, obstacle} {CM} ) = \left\{ {\begin{array}{*{20}l} {Direction < 0,} \hfill & {{\text{turn}}\,{\text{left}}} \hfill \\ {Direction > 0,} \hfill & {{\text{turn}}\,{\text{right}}} \hfill \\ \end{array} } \right. $$
(2)

The avoidance direction is decided by the summation of all CMs for all obstacles. In (2), the CMs for obstacles located on the left side of the robot have negative values, and the CMs for obstacles located on the right side of the robot have positive values. Therefore, if the direction is a positive value, then the robot turns to the left, and if the direction is a negative value, then the robot turns to the right.

3.1.2 Decision of Avoidance Motion Using Fuzzy Logic-Based Motion Selector

After we decide the avoidance direction for the obstacle, avoidance motion has to be selected depending on the environment information. Avoidance motions have to be varied under width of obstacle and open space that a robot can avoid. Therefore, we propose the fuzzy logic-based avoidance motion selector (FL-AMS) [4].

In order to perform the fuzzification, a width difference between an obstacle width and a robot width w i and space difference between avoidance space width and robot width S i are set up as the input variables. The term sets of the input and output variables are selected as follows:

$$ T(w_{i} ) = \{ A_{1} ,A_{2} ,A_{3} ,A_{4} ,A_{5} \} = \{ NL,NS,Z,PS,PL\} , $$
(3)
$$ T(s_{i} ) = \{ B_{1} ,B_{2} ,B_{3} ,B_{4} ,B_{5} \} = \{ NL,NS,Z,PS,PL\} , $$
(4)
$$ T(f_{i} ) = \{ C_{1} ,C_{2} ,C_{3} ,C_{4} ,C_{5} ,C_{6} ,C_{7} \} = \{ ST,SS,SF,RS,RF,TS,TF\} , $$
(5)

where fuzzy sets \( A_{1} ,A_{2} ,A_{3} ,A_{4} , \) and \( A_{5} \) are, respectively, denoted as negative large (NL), negative small (NS), zero (Z), positive small (PS), and positive large (PL) for the input variable w i . Fuzzy sets \( B_{1} ,B_{2} ,B_{3} ,B_{4} , \) and \( B_{5} \) are also, respectively, denoted as negative large (NL), negative small (NS), zero (Z), positive small (PS), and positive large (PL) for the input variable d i . Fuzzy sets \( C_{1} ,C_{2} ,C_{3} ,C_{4} ,C_{5} ,C_{6} , \) and \( C_{7} \) are, respectively, denoted as Stop (ST), Slip step + Slip step (SS), Slip step + Forward step (SF), Rotation step + Slip step (RS), Rotation step + Forward step (RF), Turning step + Slip step (TS), and Turning step + Forward step (TF) which are the combinations of two motions in Slip step (S), Forward step (F), Rotation step (R), and Turning step (T) excluding the Stop motion (ST) for the output variable f i .

The partitions and the shapes of the membership functions are shown in Fig. 3, where triangular-type membership functions and fuzzy singleton-type membership function are, respectively, used for the input and output variables. As shown in Fig. 3, each input is divided into five subsets, so that two inputs will construct 25 fuzzy rules and output value of fuzzy logic determining the walking motion type is constructed in seven membership functions. The fuzzy rule base used for the proposed FL-AMS system is described in Table 1, where each rule can be described by

Fig. 3
figure 3

Membership functions of FL-AMS: a input variable w i , b input variable w i , and c output variable w i

Table 1 Fuzzy rule for FL-AMS
$$ \begin{aligned} {\text{Rule}} & \quad {R(j_{1} ,j_{2} )}{:} \\ & {\text{IF}}\;w_{i} \;{\text{is}}\;A_{{j_{1} }} \;{\text{and}}\;d_{i} \;{\text{is}}\;B_{j2} ,\;{\text{then}}\;f_{i} \;{\text{is}}\;C_{{f(j_{1} ,j_{2} )}} \\ & \;\;\;\;j_{1} \in \{ 1,2,3,4,5\} ,\,j_{2} \in \{ 1,2,3,4,5\} ,\,f(j_{1} ,j_{2} ) \in \{ 1,2,3,4,5,6,7\} \\ \end{aligned} $$
(6)

To determine the final output of the FL-AMS, we use the weighted average method described by

$$ f_{i} = f(w_{i} ,s_{i} ) = \frac{{\sum\nolimits_{{j_{1} = 1}}^{{j_{1} = 5}} {\sum\nolimits_{{j_{2} = 1}}^{{j_{2} = 5}} {u(j_{1} ,j_{2} ) \cdot v(C_{{f(j_{1} ,j_{2} )}} )} } }}{{\sum\nolimits_{{j_{1} = 1}}^{{j_{1} = 5}} {\sum\nolimits_{{j_{2} = 1}}^{{j_{2} = 5}} {u(j_{1} ,j_{2} )} } }} $$
(7)

where \( v(C_{{f(j_{1} ,j_{2} )}} ) \) is the crisp value of the fuzzy set, \( C_{{f(j_{1} ,j_{2} )}} \cdot u(j_{1} ,j_{2} ) \) is the fire strength of the rule \( R(j_{1} ,j_{2} ) \) and can be described by

$$ u(j_{1} ,j_{2} ) = \hbox{min} (\mu_{{A_{{j_{1} }} }} (w_{i} ),\mu_{{B_{j2} }} (s_{i} )) $$
(8)

Based on the width difference between obstacle width and robot width w i and space difference between avoidance space width and robot width s i , seven evaluation values \( f_{i} ,i \in \{ 1,2,3,4,5,6,7\} \) for seven avoidance motions can be determined by the FL-AMS. The walking motion type consists of seven motions, ST, SS, SF, RS, RF, TS, and TF which are the combinations of two motions in sidestep walking (S), forward walking (F), rotation walking (R), and turning (T) excluding the stop motion (ST). Table 1 shows the fuzzy rule for the walking motions.

3.2 Determination of Optimal Path

To reach the objective point, the optimal path generation from current location to target location is necessary. We can examine this problem in terms of efficiency and safety.

The path planning method can be largely divided into two parts: (1) Pint-To-Point (PTP) and (2) Complete Coverage (CC). PTP path planning is searching the optimal path from a start point to an end point through points. The objective of PTP path planning method is that we find the path having efficiency in terms of minimum energy consumption or risk reduction. On the other hand, the objective CC path planning is that a robot covers the all sections as far as possible for a given area. Therefore, we use the PTP path planning method because it is suitable for our purpose playing the soccer game.

In addition, an algorithm conducting the PTP path planning is needed. To achieve this purpose, we consider algorithms in terms of efficiency and safety. In terms of efficiency, the robots playing the game can move using the relatively short course to reach the target position under offense or defense situations. In terms of safety, the robot in the soccer game does not foul like colliding with the robots of the opposite team.

To satisfy the above-mentioned conditions, we use a Voronoi diagram to generate the optimal path. Figure 4 shows an example of the Voronoi diagram-based path planning. In mathematics, a Voronoi diagram is a partitioning of a plane into regions based on distance to points in a specific subset of the plane. That set of points (called seeds, sites, or generators) is specified beforehand, and for each seed, there is a corresponding region consisting of all points closer to that seed than to any other. These regions are called Voronoi cells.

Fig. 4
figure 4

Voronoi diagram-based path planning method

Moreover, the PTP path planning can be used in the free-ball situation such as free-kick, goal kick, and penalty kick due to the non-interference property of the Voronoi diagram between the robots belonging our team and those of the opposite team.

3.3 Strategies for the Game Condition

The basic strategy for the soccer robots was the zone defense or offense. However, the applied strategies were needed to the complicated situations in the game.

Each robot has its own role such as a striker, defender, and a goalkeeper. Firstly, we divided the ground into the three parts according to its role. At the beginning of development, the concept of zone defense was that the robot selected an appropriate action among basic actions if only the ball is located in its own area and the other robots did not select any actions because the ball was out of their areas. But, this concept had two problems: (1) motion conflict of nearby two robots when the ball is located in one of the boundary areas and (2) ping-pong effect [5]. The corresponding formation will be formed according to the position of the ball, which causes a serious problem when the ball moves back and forth between two regions. The player robots will keep changing formation and consume their energy unnecessarily.

To solve the problem, we made a play mode and a formation through the field division according to the position of the ball. The play mode consists of offense, defense, and free-ball mode and depends on the relative position among the positions of our opposite robots and the location of the ball except the free-ball mode.

Player robots change the formation according to the position of the ball within seven subregions as shown in Fig. 5. If the ball locates within the defender goal area (region 2, 4, 6, and 7), then the major mission of the robots in these regions is that kick the ball out of defender goal area. When the ball is close to the opponent goal area or the position of our player robot with respect to the ball position is closer than that of the opponent player robot, we regard this situation as the attack mode and form the attack formation. As mentioned above, to prevent the ping-pong effect, we provide the buffer region between subregions, which keep the formation of the team although the ball moves back and forth between two subregions.

Fig. 5
figure 5

Subregions for formation and play mode

4 Conclusion

We address the motion management system and its application to the robot soccer game. The soccer system has a vision system, a host computer which manages the strategies and position control of the soccer robots, and a communication system between a host computer and three soccer robots. The player robots can take 32 motions according to the game situation.

To avoid the obstacles such as the opposite player robots, we proposed the novel motion control method which consists of CM and PL-AMS. The CM decides the avoidance direction considering the position and size of the obstacles. PL-AMS selects the appropriate avoidance motion by the fuzzy logic.

In addition, we have the strategy for the game situation such as the offense and defense by using the seven subregion divisions. Moreover, to prevent the ping-pong effect, we provide the buffer region between subregions. In the demonstration tournament, we played games with two periods of up to seven minutes (or until a goal was scored), and on average 4–5 goals were scored in each match, which was essential for us to achieve a spectacular game.