background image

RoboDragons 2010 Extended Team Description

Akeru Ishikawa, Takashi Sakai, Jousuke Nagai, Taro Inagaki, Hajime

Sawaguchi, Yuji Nunome, Kazuhito Murakami and Tadashi Naruse

Aichi Prefectural University, Nagakute-cho, Aichi, 480-1198 JAPAN

Abstract.

This paper describes the system configuration of Aichi Pre-

fectural University’s RoboDragons 2010 and related research topics. Main
topic in this year is that we developed a new robot hardware. We describe
it in detail here. There are some improvements in soccer software. We
overview our soccer software. Our research results which will be imple-
mented near future are described: a real time computation of dominant
region and a defending strategy based on a safety region.

1

Introduction

This year’s extended team description paper (ETDP) of RoboDragons2010 de-
scribes a new robot hardware, an improved software of RoboDragons 2010 system
and ongoing studies.

First, robot hardware. Our current robots are the fifth generation ones in

our Labs. Our team has six robots, five for competition and one for a reserve.
Each robot of RoboDragons consists of four omni-directional wheels, a dribbling
device, two kicking devices (for chip kick and straight kick) and the embedded
computer for controlling the robot. They are controlled by a host computer next
to the field. Second, software. The software on the host computer origenates
from the one when we made a joint team with CMU in 2004 and 2005. Many
improvements have done since 2005, however, this year, noticeable improvement
has not done. We overview our software centering on minar changes. Third,
research related topics. Several researches on strategies have been doing these
years. We introduce the real time dominant region calculation and the defending
strategy based on the safety region. These thechneques will be implemented in
the RoboDragons system in near future.

In the following sections, we describe these topics.

2

Robots

In this section, we discuss our new robots in detail. First, we show the overview
of our new robot in Figure 1.

2.1

Dimensions of robot

The robot can be packed in the cylinder with dimensions of 145

mm

height

and 178

mm

diameter. To protect the internal circuit boards and mechanical

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

Fig. 1.

RoboDragons new robot

(Left: with cover, Right: without cover)

devices, the robot is covered by the cardboard (see Fig. 1 left). To strengthen
the cardboard, the 1.5

mm

thick plastic sheet is glued.

2.2

Drive unit

The robot has 4 wheels each of which is drived by a DC brushless motor. The
wheel is so called an omni-wheel. Figure 2 shows the omni-wheels moving the
robot.

The DC brushless motor driving the omni-wheel is Maxon’s “EC 45 flat 30

W” with encoder unit. The source voltage of the motor is 15

V

. The motor also

has a pinion gear with 21 teeth and the omni-wheel has a gear with 64 teeth
so that the reduction ratio is 1 : 3.047. The diameter of the omni-wheel is 56
mm and the omni-wheel has 15 small tires in circumference. The diameter of the
small tire is 13

mm

.

2.3

Kicking device

The kicking device consists of solenoids, kick bars, and a voltage booster. Figure
3 (left) shows the kicking device and figure 3 (right) shows the voltage booster.

Solenoids

Three solenoids are built in the robot, one large solenoid is for a

main kick device and a small solenoid is for a chip kick device.

The coil of the large solenoid is made winding the 0.6

mm

ϕ

enamelled wire

on a bakelite cylinder in 7 layers. The dimensions of the cylinder are 13

mm

in

inner diameter, 26

mm

in outer diameter and 55

mm

in length. The stroke of

the solenoid is 30

mm

and enables the kicking a ball with speed of 9.5

msec

under the ideal conditions.

The coil of the small solenoid is made using the same material with the large

one. The dimension of the cylinder is 13

mm

, 26

mm

and 27

mm

, respectively.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

Fig. 2.

Omniwheels and DC brushless motors

(Left: without solenoid, Right: with solenoid)

The stroke is 7

mm

and it can kick the ball with flying distance of 2

m

and

flying height of 1

m

.

Each solenoid employs the spring to pull back the plunger.

Kick bar

7075 aluminum alloy which is light and hard is employed for the kick

bar. Moreover, V-shaped ABS plastic is attached to the aluminum kick bar as
shown in figure 3. This helps to kick the ball to the direction perpendicular to
the kick bar within the accuracy of 5 degree.

Fig. 3.

Kicker and voltage booster

(Left: kicker, Right: voltage booster)

Voltage booster:

The voltage booster(Fig.3(right)) is a kind of DC-DC con-

verter. It converts 15

V

DC input voltage up to 200

V

DC output voltage.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

Output voltage is adjustable between 150

V

and 200

V

. The chopper circuit

using a choke coil is a heart of the voltage booster. A PIC controls the chopper
circuit. Large capacity condensers are used for keeping the high voltage output.
Total capacity is 4500

µF

. The voltage sensing circuit controls the output volt-

age. 2 solid state relays are used as the switches to drive the solenoids. These
relays are controlled exclusively by the PIC. The charging time of the condensers
is about 2

sec

when the output voltage is 200

V

.

2.4

Dribbling device

A dribbling device of the robot has been achieved by combining the dribble
roller, the motor and the gear.

The dribbling device uses a Maxon’s “EC 16 15W” motor with an encoder

and a planetary gear. The reduction ratio of the gear is 1 : 5.4. A pinion gear
attached to the motor has 40 teeth and a gear attached to the dribble roller has
36 teeth. Therefore, the net reduction ratio

R

is given by,

R

=

R

m

×

R

g

= 5

.

4

×

36

40

= 4

.

86

,

(1)

where,

R

m

is the reduction ratio of the planetary gear and

R

g

is the reduction

ratio of the pinion gear and the gear on the dribble roller.

The dimensions of the dribble roller are 20mm in diameter and 73mm in

length. The material of the dribble roller is a alminum shaft with silicon rubber
of 4mm thickness on the face of the shaft.

2.5

Communication unit

Our wireless communication is a spectrum diffusion communication on the 2.4
GHz band. Futaba’s wireless modem “FRH-SD07T” is used for the purpose.
The modem has several communication modes. We use a “direct mode” which
can send the messages with the least delay between modems. A pair of the
FRH-SD03T and the FRH-SD07T realizes the communication between the host
computer and the robot(s).

2.6

Proximity sensor unit

The proximity sensor is attached above the dribbling device and it detects the
ball just in front of the dribbling device. The heart of the sensor is three infra-red
light emission diode (LED) and photo diode pairs. The irradiation angle of the
LED is about 15 degree. When one of the three photo diodes gets the reflected
infra-red ray more than a preset threshold value, the sensor outputs the signal.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

2.7

Control unit

A control unit of robot is a board computer, which is newly developed. It is shown
in figure 4 These boards include a The CPU is Hitachi’s SH2A processor with
FPGA for peripheral control. SH2A has abundant peripheral circuits in it and
makes the compact implementation of the control unit possible. The memories
compose of Flash ROM(1MB) and SRAM(1MB). The IO boards have power
transistors that can drive the motors and they also have interface circuits with
the motors driving wheels and dribble roller, and the proximity sensor.

Fig. 4.

Processor boards

(Left: face, Right: back)

2.8

Control program on robots

At the time this paper is written, the software shown below is not implemented on
the robot yet, however, it will be implemented until RoboCup 2010 competition.

The program is written by the C programming language. The TOPPERS

real time OS[1] is used.

Robot control program consists of three modules each of which is invoked

as a process. They are communication, command and motor control modules.
Figure 5 shows a data/signal flow among modules and peripheral units.

Robot command is sent from the host computer to robots by a packet every

1/60 seconds using asynchronous serial communication. Since the communica-
tion speed is 19200 bps in our system, it is possible to send 32 bytes data in
1/60 second if only start bit and one stop bit are used as control bits. There-
fore, Our packet is consisted of 32 bytes

1

as shown in figure 6. The packet is

broadcasted to all robots. The packet has error correcting code (ECC) to make
reliable communication possible. We use the Humming code as the ECC.

1

The command cycle synchronizes with the camera cycle which is equal to 59.94
frames per second. Therefore, the command can send without any problem.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

modem

communication
    module

command
module

motor control
   module

command

voltage
booster

IR sensor

wheel speed

motor

packet

signal

signal

signal

Fig. 5.

Data/signal flow

The communication module receives the packet and extracts the command

of its own. If error is detected, the packet is discarded. As far as the error is not
burst error, the discard of packet is a good alternative

2

. Extracted command is

sent to the command module.

In the command module, the velocity of each wheel is calculated from the vel,

dir and rot value (see Fig. 6) and calculated result is sent to the motor control
module. The kick and dribble command is executed, as well.

In the motor control module, the PID control is performed. This is done

by using the target velocity given by the command and the current velocity
calculated from the encoder pulses. The motor drive control is done by the
PWM control.

3

Software system

3.1

Overview

Figure 7 shows the overview of the RoboDragons system. The features of the
system are as follows:

1. Host computer is Athlon64 X2 4200+ with 512MB memory and Debian

GNU/Linux OS.

2. Each module(shown in box in Fig.7) is implemented as a thread.
3. The

Soccer

module consists of a strategy, a tactics and a path generation

submodules, and it produces an action command for each robot.

4.

Radio

module sends the command to each robot through the radio system.

In the next sections, we describe the main improvements of our program.

2

There are no such errors experienced in recent competitions.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

class SerialCommand{

public:

uint8_t vel;

// Velocity [unit: cm/s]

uint8_t dir;

// Direction [unit: 2*pi/256 rad]

uint8_t rot;

// Rotation velocity [unit: 2*pi/60 rad/s]

uint8_t var;

// kick and dribble command

// b0-b1: kick condition
//

0 : No kick

//

1 : kick when center senser reacts

//

2 : kick when any sensers react

//

3 : kick immediately

// b2-b3

b7: Selection of kicker

//

0 : No kick

//

1 - 4 : Main kicker (1: weak ... 4: strong)

//

5 - 7 : Chip kicker (5: weak ... 7: strong)

//

: Main and chip kickers are used exclusively

// b4-b5: Dribble
//

0 : No dribble

//

1 : Reverse rotation

//

2 : Weak normal rotation

//

3 : Strong normal rotation

uint8_t ecc01;

// b0-b3: ECC of vel
// b4-b7: ECC of dir

uint8_t ecc23;

// b0-b3: ECC of rot
// b4-b7: ECC of var

};

struct SerialPacket{

uint8_t header0; // 0x80
uint8_t header1; // 0x0D
SerialCommand robot[5];

};

Fig. 6.

Packet configuration

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

Soccer

Network Port

  SSL
Vision

Camera

Radio

rserver

Computer

Robot

Real World

Fig. 7.

RoboDragons system: overview

3.2

Determining the number of mark robots

In our old strategy, the role of each teammate robot at the opponent free kick
time was determined by the ball’s position. For example, if the ball is within 500
mm from teammate goal line at the beginning of the free kick, it is considered
to be an opponent corner kick and “3 mark robots” strategy is selected even
if an opponent robot is out of field by a penalty. The program is improved to
determine the number of mark robots dynamically as follows,

Let

r

i

be the position of the opponent robot

i

. If following conditions are

satisfied, the robot

i

will be marked.

The distance between

r

i

and the center of teammate goal is less than

R

mm.

The distance between

r

i

and the teammate goal line is less than

X

mm, and

there is a shoot course from

r

i

to the goal.

In RoboDragons,

R

= 3000 mm and

X

= 4600 mm. The number of mark

robots ranges from 1 to 3.

3.3

Priority of mark robots

In RoboDragons, the number of teammate robots for marking is at most 3. How-
ever, there are cases that more than 3 robot should be marked at the opponent
free kick. For example, the case four opponent robots are attacking. In this case,
we select three opponent robots to mark. For each opponent robot, a priority is
given as follows, and higher priority robots are selected.

the greater the distance between

r

i

and the center of teammate goal, the

higher the priority.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

the greater the affordance of the shoot course from

r

i

, the higher the priority.

There are two mark actions, i.e. pass cut mark and shot cut mark. The pass

cut mark has two variations, i.e. preventing the pass at around the passing robot
and around the receiving robot. The shot cut mark is as well.

3.4

Robots’ actions at free kick

In the old strategy, teammate’s pass action and shot action at free kick were as
follows. In the following, we use the term “direct play” [2]. The direct play is
one of cooperative plays, i.e. a passing robot kicks the ball to a recieving robot,
and the recieving robot shoots the ball immeadiately when it gets the ball.

Pass action (passing robot in case of direct play)

1. At time

t

0

, the robot which has the greatest affordance of the shoot

course is selected as a receiving robot of the pass.

2. Passing robot moves to the waiting position

T

r

.

3. When passing robot arrives at

T

r

at

t

1

, it starts kicking action.

4. After finishing the pass, passing robot waits there until the strategy

change will happen.

Shot action (shooting robot in case of direct play)

1. Search the best place to receive the ball and move there until the passing

robot will pass.

2. After passing, the shooting robot moves to the shooting position which

is computed from the velosity of the ball and current self position.

3. Shoot the ball. If shot is failed, then next action is taken.

New actions are,

Pass action (passing robot in case of direct play)

1. At time

t

0

, the robot which has the greatest affordance of the shoot

course is selected as a receiving robot of the pass.

2. Passing robot moves to the waiting position

T

r

.

3. When passing robot arrives at

T

r

at

t

1

, it starts kicking action.

4. After finishing the pass, passing robot takes an attacker action.

Shot action (shooting robot in case of direct play)

1. Search the best place within the specified region to receive the ball and

move there until the passing robot will pass.

2. After passing, the shooting robot moves to the shooting position which

is computed from the velosity of the ball and current self position.

3. If there are some candidates for shooting, the robot nearest to the team-

mate goal judges the possibility of shot. If it is not possible, then take a
defending action.

In the RoboDragons 1-2-3 shot[2] using three robots, above shot action works

well to reduce the time the goal keeper defends the goal without any other
defender(s).

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

4

Realtime dominant region computation

4.1

Need of realtime dominant region computation

It is important to analyze the actions of opponent team in real time and then
to change team’s strategy dynamically in order to overcome the opponent, since
the strategies based on them are growing year after year [3]. For such analysis,
the

voronoi diagram

[4] and the

dominant region diagram

[5] are useful. They are

used to analyze the sphere of influence. The voronoi diagram divides the region
based on the distance between robots, while the dominant region diagram divides
the region based on the arrival time of robots. It is considered that the dominant
region diagram shows an adequate sphere of influence under the dynamically
changing environment such as a soccer game.

In the SSL, the dominant region diagram has been used for arranging team-

mate robots to perform the cooperative play such as passing and shooting [2][6].
However, the existing algorithm takes much time to compute the dominant re-
gion diagram, the use of the algorithm is restricted to the case that the com-
putation time can keep, i.e. a typical case is a restart of play. If the dominant
region diagram can be computed in real time, we can apply it any time.

In this section, we describe the realtime computation of dominant region.

In our system, it is required to compute the dominant region diagram within
5

msec

. So, we put this time to be our present goal. Following algorithm is an

approximate computation of the dominant region diagram so that we discuss
the computation time and the approximation accuracy through the experiment.
Our algorithm achieves 1/1000 times shorter in computing time compared with
the algorithm proposed in literature [5] and over 90% accuracy. Moreover, 5

msec

computation time can be possible under the parallel computers. We also

show that the dominant region diagram is useful for the prediction of success for
passing.

4.2

Computation of dominant region

A dominant region of an agent

3

is defined as ”a region where the agent can reach

faster than any other agents”. A dominant region diagram, simply a dominant
region, shows the dominant region of every agent [5]. The dominant region di-
agram is one of the generalized voronoi diagrams. Though the dominant region
diagram is an

n

dimensional diagram in general, we discuss a two dimensional

diagram here because we consider a soccer field.

The dominant region is calculated as follows. Assume that an agent

i

is at

the point

P

i

(= (

P

i

x

, P

i

y

)) and is moving at a velocity

v

i

(= (

v

i

x

, v

i

y

)). Assume

also that the agent can move to any direction and its maximum acceleration is

a

i
θ

(= (

a

i
θx

, a

i
θy

)) for a

θ

-direction. The position that the agent will be after

t

3

We call a considering object (such as a player) an agent.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

(a)Voronoi diagram

(b)Dominant region diagram

Fig. 8.

Voronoi diagram vs. dominant region diagram

seconds is given by

4

,

(

x

i
θ

y

i

θ

)

=

(

1
2

a

i
θx

t

2

+

v

i

x

t

+

P

i

x

1
2

a

i
θy

t

2

+

v

i

y

t

+

P

i

y

)

.

(2)

For given

t

, the set of above points makes a closed curve with respect to

θ

. Conversely, for given point

x

= (

x, y

), we can compute the time which each

agent takes

5

. Therefore, for each point

x

in a region (or a soccer field), we can

get the dominant region by computing the following equation,

I

x

= argmin

i

{

t

i

(

x

)

}

,

(3)

where,

I

x

is an agent’s number which comes at first to the point

x

.

Preliminary experiment using the algorithm proposed in [5] shows that the

computation time takes 10 to 40 seconds when the soccer field is digitized by
610

×

420 grid points.

5

Approximate dominant region

To achieve a real-time computation of the dominant region, where the real time
means a few milliseconds here, we propose an

approximate dominant region

. It

can be obtained as a union of

reachable polygonal regions

. A reachable polygonal

region is a polygon which is uniquely calculated when the motion model and
time are given.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html
background image

(a)Acceleration vectors

(b)Reachable polygonal region

Fig. 9.

Acceleration vectors and reachable polygonal region

5.1

Motion model of robots

We define a motion model as a set of maximum acceleration vectors of a robot.
Figure 9(a) shows an example of a motion model. Each maximum acceleration
vector shows that the robot can move to that direction with the given maximum
acceleration. This is an example of an omni-directional robot. Eight vectors are
given. The number of vectors depends on the accuracy of obtaining the dominant
region.

5.2

Computation of reachable polygonal region

The reachable polygonal region is a region that is included in the polygon made
by connecting the points, where each point is given as a point that an agent
arrives at after

t

seconds when it moves toward the given direction of maxi-

mum acceleration vector in maximum acceleration. Eq. (2) is used to compute
the point. Figure 9(b) shows an example of reachable polygonal region (shaded
area) after 1 second passed when the acceleration vectors of figure 9(a) is given.
We assume the reachable polygonal region is convex

6

. The reachable polygonal

region is calculated by the following algorithm.

[Reachable polygonal region]
Step 1

Give a motion model of each agent (figure 9(a)).

Step 2

Give time

t

. Calculate each arrival point (

x

i
θ

, y

i

θ

) according to the equa-

tion (2) using the corresponding maximum acceleration vector in Step1.

Step 3

Connect points calculated in Step2 (figure 9(b)).

5.3

Calculation of approximate dominant region

The approximate dominant region is obtained from the reachable polygonal re-
gions for every agent. When some of reachable polygonal regions are overlapped,

4

These equation do not consider the maximum velocity of the agent. If the maximum
velocity must be considered, the equations should be replaced to the non-accelerated
motion equations after reaching the maximum velocity.

5

If more than one arrival time are obtained at point

x

for the agent

i

, the minimal

arrival time is taken.

6

If it is concave, we consider a convex hull of it.

pdftohtml_folder/2010_ETDP_RoboDragons-html.html