KIKS 2017 Team Description
Koh Ohno, Toshiki Mimura, Hayato Yokota, Tessen Ohmura, Tetsuya Sano,
Masato Watanabe and Toko Sugiura
Department of Electrical and Electronic Engineering,
National Institute of Technology, Toyota College,

2-1 Eisei-cho, Toyota Aichi, 471-8525, Japanemail: sugi@toyota-ct.ac.jp
URL: http://www.ee.toyota-ct.ac.jp/~sugi/RoboCup.html

Abstract. This paper is used to qualify as participation to the RoboCup 2017
small size league. Our team's robots and systems are designed under the RoboCup 2016 rules. The major points of improvement in this year are about thedriving wheels, electrical circuit and AI system. The overviews of them are described.
Keywords: RoboCup, small size, autonomous robot, global vision, engineering education

1

Introduction

KIKS has tried to develop the robot, which mount the 70watt motors since last year.
The basic design validation and evaluation was finished. The robots were manufactured and the performance was confirmed on a test run. As the results, we found manythings to do and challenge [1]. Therefore, in order to solve these problems, we try to
improve and redesign of the robots in 2016. It is described below as terms of the 1)
improvements of robot that mount the 70watt motors, 2) redesign and manufacturing
electrical booster circuit, 3) moving performance, 4) improvement of prediction of a
ball.

2

Hardware design
In this section, we report the mechanical hardware of the robot.

2.1

Introduction of hardware

As reported in last TDP, we manufactured the robot, which mounts the 70[W] maxon motor for RoboCup 2016. However, there were many problems in performance ofthe robot. Especially, two problems were serious. One was the durability and handlea-

bility of wheel unit by directly driving, and another one was precision of straightkicking stability by solenoid. We describe the way to fix up for these mechanicalproblems in below.
2.2

Evaluation of wheel built in 70 watt motor

It is key point that the robot equipped with 70[W] motor is downsizing of wheel
unit. Because as increasing the wheel unit-size, it will affect performance of the kicking devices. That is, the high-performance solenoid we need cannot mount on the
robot.
We adopted direct-driving method to drive wheels with no reducer to make motorunit thinner. The 70[W] motor driving 48[V] producible high-torque more than that
constructed through gear with the 30[W] motor equipped on present robot. Figure 1
shows the construction of direct-driving motor. In previous one shown in Fig. 1(a), it
had directly load in bearing and shaft on bush of motor. Thus, we changed the construction adding new bearing to decrease the load to its own bearing in motor as
shown in Fig. 1(b). The motor shaft is also directly used as wheel center even in Fig.
1(b), however, to avoid influence of external force, whole wheels are located deeply
inside from outer cover of the robot.

(a)

(b)

Fig. 1 Direct-driving motor units, (a) 2016 and (b) 2017 modelFig. 2 Relationship between dribbler’s axis and ball

Figure 2 indicates the situation of catching a ball by dribbling unit. The specification of dribbling-unit is tabulated in Table 1. Based on the condition of Table 1, a robot
was able to catch a ball coming at about 4.5[m/s]. As the result, we found that therelationship of axes shown in Fig. 2 would be one of the most efficient positions forcatching and dribbling a ball. This means that the performance of newer devices are
50% better than previous one.
Table 1. The specification of dribbling unit

Motor
Gear ratio (in : out)
Diameter of spinning bar
Material of spinning bar
2.3

maxon EC max 25 watt (283860)
1 : 1.415mm
polyester urethane

Improvement of kicking parts

We reported that straight-kicking stability due to improvement of kicking-bar inlast TDP. Its performance, however, was not enough in actual game. Thus, to increase
more accuracy of the stability, we tried to remake the kicking-bar and solenoid-case(square bobbin) so as not to form large clearance. The demerit of quadrangular crosssection shape of the bobbin case will be larger distort with increase of use. The motion of the kicking-bar will be suppressed even when the gap is simply narrow. Thus,
as shown in Fig. 3, we separate into two parts, i.e., small-gap part and solenoidbobbin part to bring a solution to smooth motion and accuracy. Naturally, they are
made from different suitable materials, e.g., POM resin is used for small-gap part and
ABS resin is used for bobbin case. This structure made it permissible for distort ofbobbin and possible to shoot with high accuracy for straight-direction for a ball. To
manufacture these parts in fact, we decide to use 3D printer to reduce a volume ofsolenoid-bobbin. The structure is shown in Fig. 4.

Fig. 3 Dividing of square bobbin-case and small gap partFig. 4 Structure of solenoid bobbins made by 3D printing (from ABS resin)

2.4

Improvement of motor unit

As mentioned above, the previous motor-wheel unit has lacks of handleability for
maintenance and expansion. It is thought to be due to fix with an adhesive and to beincompletion of the wheel structure.
The problems caused by adhesive are that the deconstructions of motor-wheel unit
to pieces are difficult, or there are quite times to demount them. Applying heat to theadhesive is effective to deconstruction, but it gives serious damage to motor-axis andbearing. Thus, we should not apply it to them so often. Moreover, even happening ofaccidents in a game, we cannot re-bond them because of adhesives need 5 hour to 1
day to be harden.

Fig. 5 Wheel unit of 2016 model (inconvenient way)

(a)

(b)

Fig. 6 (a) new wheel unit, and (b) thinner (5mm) motor connector with screw hole on circle

In previous wheel structure, the wheel chassis was hold with only wheel-cover tomotor-connector as shown in Fig. 5. That was, it might cause that the small tires
would drop when a motor-cover was remove and/or attached again. In addition, it willtake up so much of our time to preparation. To solve these problems, we redesigned
the wheel structure. The wheel cover and chassis was screwed as shown in Fig. 6(a).
A new motor connector shown in Fig. 6(b) was made from A2017 aluminum with
5[mm] thick. It will be very important for the precision about center-hole’s diameterand verticalness. Now, we cannot say permissible range of them by lack of measurement, it has adequate strength to motor axis even when the hole is little bit bigger thanmotor axis. As the results, new wheel unit is a few mm thinner than previous one.
Furthermore, the bracket of new wheel-motor unit makes constantly contact with
the inner-ring inside of bearing as shown in Fig. 7. This makes no coming off the
motor-shaft even in case of adding heavy load for axial direction. We found that the
distortion of motor-housing occurred in initial version model did not break out. Now,
it is designing based on better plan mentioned above. The verification is not sufficient.
We should manufacture the complete version as soon as possible for the RoboCup2017.

Fig. 7 Connector constantly contacted to bearing

3

Electrical design

3.1

Problem of the battery for Robot built in 70watt motor

A robot needs the 50[V] to drive 70[W] motor. In fact, however, it was impossible
to mount 12cells-44.4[V] lithium polymer (Lipo) battery on our robot. Because thebattery size is larger than that of 4cells. In last year, we tried to use two 6cells-22.2[V]Lipo batteries with series connection. Nevertheless, it gave rise to some problems.
First, it could not put the battery-pack into robot, yet. It is the results of the limitationof body design. Next, it is necessary to monitor the voltage by each battery-pack.
Moreover, the performance of two battery using series connection need nearly equal.
Thus, to deal with these problems, we redesign and manufactured a new booster circuit.

3.2

Booster circuit

Booster circuit is shown in Fig. 8. It is known as the charge-pomp circuit orswitched capacitor circuit. The charge-pomp circuit does not need the feedback of
output voltage, and output voltage is constantly twice the input voltage. Depending on
the circuit construction, it is feasible three times the input voltage. At least in principle,
output voltage does not result overvoltage due to electrical trouble. Furthermore, it
has less incidence of magnetic noise by no use of inductor. Alternatively, it need large
capacitor against large current overload. We use the conductive polymer-electrolytic
capacitor for it. We notice that input current will be larger than that of output in booster-circuit.
A

B

C

OUTPUT
INV

Q4

1

1
NON-INVC3
120u/35V

Q3

INPUT 8-28V
INV

Q2

C2
120u/35V

NON-INV
100k
4

C1
330u

Q1

470p

10k

3

10u

5

6

2

2
74AC14

Duty50% Square Wave
Oscillator
A

B

C

Fig. 8 The circuit diagram of booster-circuit

3.3

Behavior of booster-circuit

It explains the booster-circuit behavior by use of time-chart shown in Fig. 9. As theaction of circuit, mode1 and mode2 are alternately actuated. In mode1, Q1 and Q3 areon-state. Then, C2 is charged up from battery pack, and the voltage between terminals
Vc2 is raise up to 24[V]. In mode2, Q2 and Q4 are on-state. Then, C3 is charged up
by C2, and the voltage between terminals Vc3 will result 24[V]. Because of output
voltage is sum of input voltage Vin (=24[V]) and Vc3, Vout is approximately 48[V].
After that, Q1 and Q3 will be on-state again, and C2 is also charged up by power
supply. Since C3 keep the voltage, Vout also keep about 48[V]. Thus, if the switchingstops, output voltage won’t fall down below input voltage. That is, it means that it will
be very dangerous on case of electrically shorted. Similarly, it also risky for sudden
short-circuit fault of Q1 and Q2. Therefore, it should insert the fuse to input stage ofcircuit.

Fig. 9 Time chart of boost algorithm

Figure 10 shows the booster circuit. Prototype version shown in left side cannot useon the actual game, but it is for checking and evaluation for operation. Actual mounted version is shown in right side. It is manufactured smaller than prototype version.

Fig. 10 Booster circuit (left: prototype, right: actual mounted version)

4

Software design 1 -Robot control-

4.1

Improvement of the running performance (slip suppression)

In last year, we manufactured new robots, which equipped 70watt-motor for theirwheel motor. The solenoid, dribble unit and so on were also remade. The most significant change is the improvement of wheels-layout. In previous robot, the axles of eachwheel did not across the center of robot’s bottom, and no axles connected to that ofcorresponding opposite side as shown in Fig. 11(a). On the other hand, the new one
shown in Fig. 11(b) indicates that all axles across and connect on the center of therobot. In addition, the longer distance between front wheels than that of rear will give
dribbling-unit an advantage.

(a)

(b)

Fig. 11 Configuration of wheel, (a)previous and (b)present design

By this improving, the running stability for back and forth was increased. A dribbling-unit could be also wider because the front space was enlarged. We have used
these robots since RoboCup2016. In a game, we evaluated about these improvements,
and confirmed the effectiveness of enlargement of dribbling-unit for performance ofcatching a ball. As the result, it would be easier to catch and to shoot a ball passed
from an ally robot. However, the performance of braking and moving in diagonal
direction would not be better. That is, the changing of wheel-layout was not bring theall performance of the robot. It attributed the worse performance to the asymmetricallayout of wheels. It might be caused by slipping of wheels notably in moving. Therefore, we try to improve the running performance with suppressing the slipping. In
general, it is valid to introduce a feedback (FB) controller such like this case. It is also
useful to design the electric current controller to get fast response to the motors. Thus,
we considered how construct the control system including the current feedback whenwheels slip.
We use three-phase DC brushless motor to drive wheels in robot. The three-phase(uvw-coordinate) system is able to convert to two-phase (dq-coordinate) system. Then,the torque of wheels is only depend on q-current, while d-current affect only magnetic
field. Therefore, with merely focus on the q-current, the behavior of three-phase DC
motor will be able to replace with that of single-phase one. Hereafter, we discuss as
single-phase DC motor about the current behavior in slipping state. The circuit andmechanical equations of DC motor are given as following eq.(1). These equations
about DC motor displays as the block diagram shown in Fig. 12.
dI V  K E   L dt  RI
, where K E  Kd  K I  J
 D
dt


(1)

Fig. 12 Motor block diagram

When a wheel slip, the wheel do not touch the ground and the motor-torque does
not sufficiently transmitted to the wheel. Then the load of motor decreases and revolution speed increases drastically. This process of slipping can be explained as a decreasing of moment of inertia. When the revolution speed increases by slip, a counterelectromotive force gets larger. After that, output would be decreased as increasing ofcounter electromotive force. The decreasing of electric current caused by slipping
provides feedback to the controller, and this current will increase to follow the command value. Finally, input voltage also become bigger and revolution speed gets faster and faster. If the current FB controller is simply constructed, the revolution speed
get faster by slipping and it may cause serious damage to the robot. Thus, instead of
FB controller, we consider the feedforward (FF) controller. In this case, since thecurrent does not follow the command value, the increase of input voltage is smaller
than that of FB controller. Therefore, the increasing of revolution speed caused byslipping will be suppressed and the effectiveness to the slipping may be indicated. The
decreasing of current and/or torque caused by counter electromotive force is known as
torque (current) drooping. The current FF controller with torque-drooping will be able
to suppress the slipping of wheels.
Analysis of FB and FF controller using MATLAB/Simulink
120

FB

no slip100

Current[A]

4.2

80
FF

60
40

20
0
0

0.02

0.04

0.06

Time[s]0.08

Fig. 13 Difference of currents by each control method

0.1

Speed of revolution[rpm]

14000
FB

12000
10000
8000
6000

FF
4000
no slip

2000
0
0

0.02

0.04

0.06

0.08

0.1

Time[s]Fig. 14 Difference of revolution speeds by each control method

To confirm the difference between behavior of the FB and FF controller, we simulated by use of MATLAB/Simulink. The tracking performance of current and speed ofrevolution in each control system for target constant current shown in Fig. 13 and Fig.
14, respectively.
In Fig. 13 and Fig. 14, it suppose that the slipping occurs at the time when the revolution speed increases instantaneously. According to Fig. 13, when the slipping occurs,
the current in FB controller was following target value as with no slipping. On thecontrary, the current in FF controller decreased as increasing the revolution speed,.
Moreover, in FB controller of Fig. 14, the revolution speed rises away from the line ofno slipping. On the other hand, the revolution speed of FF controller keeps the line ofno slipping. Summarizing the results, it found that FF control could suppress the abnormal rising in revolution speed seen in FB controller, i.e., FF controller using
torque drooping was effective for suppression of the slipping.

Fig. 15 Block control diagram of 2 degree of freedom control system including disturbanceobserverIn this paper, we focused on FF control. In case of applying to actual game, it is notenough for only FF control because of there is no target followability for use of applications with many disturbances. Thus, we propose 2-degree-of-freedom control sys-tem with FF and FB controller to realize the suppression of slipping with keeping
target followability. In this method, but, it might be difficult to give the appropriate
gain for FF and FB controller. In steady state, it requires the high-performance oftarget followability, while in case when the slip occurs, it requires the large effect of
torque drooping. Thus, we consider introduction of the disturbance observer. It will beable to adjust torque drooping by estimating the counter electromotive force by use of
disturbance observer. As the results, we think that it will be able to obtain good performance of slipping-suppression keeping target followability in steady state. Now,
we do not implement the disturbance observer yet. However, we have a plan to simulate a 2-degree-of-freedom control system containing disturbance observer as shownin Fig. 15 as soon as possible.

5

Software design 2 -Receiving a ball-

5.1

Introduction of software design 2

The robot has to accurately catch the ball, and shoot to goal quickly. Nevertheless,even now, we cannot catch the ball correctly in robot because of poor prediction of AI
system. In AI system, it has used Kalman filter, however, the data are processed withno pretreatment. So, the prediction had inadequate accuracy. Thus, we try to change
the process of calculation for ball’s velocity. It is shown the improvement that carriedout to obtain better information in below.
5.2

Improvement of prediction for ball’s velocity

In SSL vision, only position data is able to get from vision system. Thus, we haveto derive the ball’s velocity using somewhat filtering process. Because of the error in
observation, simple calculation between present and previous positions cannot use
directly as the information of the velocity. Typical calculated velocity of a ball isshown in Fig. 16.

Velocity of a ball [mm/s]

Ball's speed calculated from vision
6000
5000
4000
3000
2000

1000
0
0

0.5

1

Time[s]1.5

Fig. 16 Typical calculated velocoity of a ball2

It is shown that the speed of the ball gradually decrease in Fig. 16. We can find significant change of the speed around 0.2[sec] and 1.5[sec] obviously, such like
6000[mm/s] or 0[mm/s]. This is due to no or much difference in a sequential frame
data. It is very important to increase the precision of past data for future prediction. So,
we tried to make a smoothing-process using arithmetic average and variance for calculated velocity of a ball. The average and variance of ball’s velocity for some frames
are calculated. When the present variance exceeds the past variance, the present data
is excluded and replaced to past data. The result applied the process is shown in Fig.
17. The red solid-line shows the results of arithmetic average and variance for fiveframes as an example. It is found that rushing noise caused by simple calculation issuppressed. We adopt this procedure.
VisionCalculation

Velocity of a ball [mm/s]

Ball's speed by calculation
6000
5000
4000

3000
2000
1000
0
0

0.5

1

Time[s]1.5

2Fig. 17 Smoothing processing by use of arithmetic average and variance

5.3

Prediction for a ball

Up to now, we have made a prediction for a ball, and used for passing a ball by aid
of Kalman filter in RoboCup competition. Nevertheless, its performance is notenough. To improve the predictive performance is necessary step towards getting highin ranking.
4000

Original Data
Prediction Data
prediction
Result ofprediction

Ball's positon [mm]

3000
2000
1000
0
-1000 0

0.5

1

-2000
-3000
-4000

Time [s]1.5

2Fig. 18 previous processing for prediction of ball’s position (x coordination)

We assume that ball’s acceleration is attributed to friction of kinetic and air. Under
the condition, we predict the future behaver for a ball. In previous prediction, we
made a prediction on the assumption that a ball speed was linearly decreased. The
decreasing of the velocity of a ball in fact, however, will be nonlinear correspondingon the field[2]. It often causes much disagreement between actual and predictive value. The result of prior estimation where a ball will run in about 330[msec] beforehandis shown in Fig. 18. In Fig. 18, it is only plotted for coordinate of x-axis. The blue
diamond (◆), green triangle (▲), and red solid-line (-) show the ball-running data,prior estimation data 330[msec] beforehand, and shifted result for green triangle data,
respectively. Even in previous system, it found that future prediction will be done.
However, the smart estimation is not achieved as seen around 1.5[sec] in Fig. 18,
because of the influence of rushing noise as shown in Fig. 16.
Thus, we try to apply the process for Kalman filter as mentioned before, and weevaluate the predictive performance of a ball position with the conventional method.
The similar experimental findings to Fig. 18 is shown in Fig. 19. The red solid-line
shows better agreement with the actual position for a ball compared with Fig. 18. This
reason is due to the effect of smoothing pretreatment for the velocity of a ball. But, in
initial time around 85[msec] (necessary time for smoothing processing), it cannot
make enough estimation. The difference between actual position and prediction value
is within the ±40[mm] precision which allowable error. That is to say, it shows thatthe position of a ball is able to estimate in 100[msec] beforehand with satisfactory
accuracy.
4000
Original Data
Prediction Data
Result ofprediction
Prediction

Ball's position [mm]

3000
2000
1000
0
-1000 0

0.5

1

1.5

2

-2000
-3000
-4000

Time[s]Fig. 19 present processing for prediction of ball’s position (x coordination)

5.4

Catching performance for passed ball

Next, we check the catching performance using two actual robots. On the field of
4000[mm]×6000[mm], the ball is kicked from position coordinate (x,y)=(2275,-1460)
by a robot to another catching robot’s location (x,y)=(500,1500) as shown in Fig. 20.
We repeated this experimental process five times. Similarly, changing a ball speed andcompared the success rate to goal. The results are summarized in Fig. 21.

Score rate for a goal[%]Fig. 20 Experimental configuration
100
80
60
40
20
0
0

1000

2000

3000

4000

5000

Ball's speed [mm/s]
Fig. 21 Score rate for a goal vs ball’s speed

Figure 21 indicates that the score rate for a goal will be perfect when a ball speed is
below 1500[mm/s]. On the one hand, the score rate decrease with the increasing ball
speed. Now in this experiment, when the robot receive a ball, the angle and directionof robot to a goal is determined to focus the center of goal posts with no dependence
on ball speed. Increasing a ball speed, however, momentum of a ball is increased.
Therefore, it should be consider an actual momentum. It may causally relate to inconsideration of momentum of a ball as shown in Fig. 22. In Fig. 22, P1, P2, and P3 show
the magnitude of momentum vector for passed ball, kicked bar on robot, kicked ballto goal, and θ1, θ2, θ3 are defined as the angle between side-line and direction of each
momentum vector, respectively. By the conservation of momentum, it is calculated
according to the following eq.(2).
P1  P2  P3
(2)
Robot

θ2

θ3

Goal

X
θ1
Ball

Y
Fig. 22 Relationship among momentum vector for initial ball, kicked-bar on robot, kicked ballto goalScore rate for a goal [%]This equation means that θ2 is not equal to θ3 in obvious. Up to now, our team did
not take into account this factor, i.e. assuming that the momentum of passed ball wasmuch smaller than that of the kicked bar, it might be ignorable. As increasing the ball
speed, however, it cannot ignore naturally. We think that this is the reason for theworse result in higher speed shown in Fig. 21.
So, we investigated again the score rate of a goal with respect to θ2, as changing aball’s speed, but θ3 is fixed as -33[deg]. The results are summarized in Fig. 23.

-70

100
90
80
70
60
50
40
30
20
10
0

1500[mm/s]
3000[mm/s]
3500[mm/s]
-60

-50

-40

Angle of θ2 [deg]

-30

-20

Fig. 23 Relationship between score rate for a goal and θ2

As shown in Fig. 23, it found that even under the condition of over speed
1500[m/s] for a ball, score rate for a goal was raise up. Furthermore, it was confirmedthat there was the optimal value depending on a ball’s speed. Its value roughly satisfied to θ2 given in eq.(2).
When the robot’s performance will improve hereafter, some characteristics may bechanged. Thus, we should introduce appropriate parameter to preset AI system assoon as possible. Moreover, as future tasks, we need to think about the prediction
from ball’s momentum and robot’s position for opposing team’s tactics. In addition, it
is also issues that estimating some parameter to use filtering and prediction systemfrom data analysis in playing game in future.
References
1 T. Sakaguchi, K. Ohno, T. Mimura, N. Tanaka, K. Satoh, Y. Yamauchi, Y. Nagasaka, M.
Watanabe and T. Sugiura: KIKS 2016 Team Description, http://www.ee.toyota-ct.ac.jp/~sugi/
RoboCup.html
2 Piyamate Wasuntapichaikul et al.; Skuba 2010 Extend Team Description,
http://wiki.robocup.org/File: Small_Size_League_-_RoboCup_2010_-_ETDP_Skuba.pdf