2014 KIKS Extended Team Description
Soya Okuda, Kosuke Matsuoka, Tetsuya Sano, Hiroaki Okubo,
Yu Yamauchi, Hayato Yokota, Masato Watanabe and Toko Sugiura
Toyota National College of Technology,
Department of Electrical and Electronic engineering,
2-1 Eisei-cho, Toyota Aichi, 471-8525, Japansugi@toyota-ct.ac.jp
URL: http://www.ee.toyota-ct.ac.jp/~sugi/RoboCup.html

Abstract This paper presents a detailed description of KIKS in addition to theteam description paper of small size league in RoboCup 2014. Our robots and systems are designed under the SSL 2014 rules in order to participate in the RoboCupcompetition. The major improvements in this year are the enhancement of the performance of wheels, electrical circuit and automatic control system. The overviews of them are described.
Keywords: RoboCup, small-size league, engineering education, global vision

1.

Introduction

In last year, we improved the robots to obtain better performance. But there weresome problems for passing performance and electronic circuits of the robots. So wechecked them this year, and redesigned for some term mentioned above. In addition
we also improved motion control method to obtain better acceleration performancewith a little skid. The main topics of development for robot in 2014 model are following terms,
・Improvement of the kicking device
・Improvement of the electric circuit
・Improvement of the motion controller on the AI system

2.

Hardware of the robot

In our opinion, passing performance will be more important for the large-size field.
So, we tried to increase passing precision of the ball when the robot kicks it. The
improved bar of solenoid is shown in Fig. 1. In previous robot, there was only one
guide pin in vicinity of center of the robot. It was because it avoids excessive friction.
But, it was found that the solenoid bar was fluctuated left and right when the straightkick is done. Thus, we added second pin as a guide in enough space between coil andstraight kick bar. That is, the solenoid for straight kick has two guide pins at back andadfa, p. 1, 2012.
© Springer-Verlag Berlin Heidelberg 2012

forth of coil. In addition, a bearing is used in the contact point for each pin and bar toprevent abrasion of the materials.

Fig. 1 New designed kicking device

adfa, p. 2, 2014.
© Springer-Verlag Berlin Heidelberg 2014

3.

Electrical design

The electronic circuit is mostly same with last year, but the system in FPGA waschanged. The circuit block of base board and FPGA are shown in Fig. 2, respectively.

Fig. 2 Circuit block of base board (upper) and FPGA (lower)

adfa, p. 3, 2014.
© Springer-Verlag Berlin Heidelberg 2014

3.1 Specification of MCU
The built-in memory of MCU is storing the program of two kinds of modes, i.e.,
APP (Application) and DFU (Device Firmware Update) modes. DFU mode is used
for rewriting the SPI flash memory and the built-in memory of MCU. On the otherhand, APP mode is used for operating a robot. Because of safety, both of flash
memory cannot be rewritten in this mode.

3.2 New system in FPGA
We renewed system in FPGA to use floating point number at programming of softprocessor. Thus far, soft-processor could not allocate memories to use floating point
number because the system in FPGA which has a complicated internal structure wasusing many memories. Therefore, we have simplified internal structure. Thus, softprocessor acquired ability to perform a floating point number operation and matrix
operation.

3.3 Motor Driver of Base Board
Five motor-driver ICs (DRV8832) are mounted on the base board. Four of them arefor the travelling wheels and one is for the dribbling device. Each wheel’s motor has amagnetic encoder (AS5145). We chose a magnetic encoder because it is cheap andhigh-performance compared with an optical encoder.

3.4 New PC Software for circuit
We developed software to obtain the information of our circuit. All data (e.g. datasuch as battery voltage, capacitor voltage and angular velocity of each motor etc.) of acircuit can be observed in this software. These data can be outputted to the file of
CSV or VCD format, (and the file of PLT format for gnuplot can also be generated
automatically and evaluated). Furthermore, this software can also rewrite the firmware of the robot in DFU mode.
The execution screen of the software is shown in Fig. 3 and the capture image ofgnuplot is shown in Fig. 4. This software can also write into soft-processor in FPGA
with HEX format program by means of two methods. One is a mode of completely
stored in Flash memory (a robot is in DFU mode then),, and another is that of temporarily stored (a robot is in DFU or APP mode then). The temporary store means that it
will be back previous program when the power supply is shut down. By applying thismethod, it will be convenient for debugging.

adfa, p. 4, 2014.
© Springer-Verlag Berlin Heidelberg 2014

Fig. 3 Execution screen of software to obtain data for robot

Fig. 4 Capture image of gnuplot
3.5 Inertial Measurement Unit for base board
We built a scalable system for circuit. One of them is a terminal connector for addin boards in a circuit. It is necessary for advanced control of robot to mount IMU(Inertial Measurement Unit). The pictures of new designed IMU and the FPGA board
are shown in Fig. 5, respectively. Thus, now we can use gyroscope sensor and accel-adfa, p. 5, 2014.
© Springer-Verlag Berlin Heidelberg 2014

erometer by using this add-in board. We have a plan to try new control system byusing the value from IMU with software descried in §3.1.

Fig. 5 New IMU circuit (left) and it mounted on FPGA (right)
3.6 Evaluation of IMU
We tried to evaluate for motion velocity of robot by using IMU. As the results, it
was found that there was an error between robot speed estimated from acceleration ofIMU and that of estimated from angular velocity of wheels. This means that the slipof wheel is occurred in robot.
We are considering an introduction of somewhat slip ratio control method which isused in electric vehicle. We would like to test this control method by using the value
obtained from IMU and SSL-Vision.

adfa, p. 6, 2014.
© Springer-Verlag Berlin Heidelberg 2014

4.

Software design

Our AI server is called SIS (Strategy Information System). The SIS consists of fourthreads as shown in Fig. 6. There are "Game Thread", "Sender Thread", "SSL-Vision
Receiver" and "Referee Box Receiver". The analysis of strategy and action for all
robots are executed in "Game Thread".

Fig. 6 Structure of SIS
In 2014, we tried to modify the structure of "Strategy System" in "Game Tread",and improve the "Speed Controller" in "Sender Thread".
4.1.

Improvement of the structure of strategy system

Robots' action

Fig. 7 Previous structure of strategy system
A previous structure of the "Strategy System" shown in Fig. 6 is constructed fromthree modules. It is shown in Fig. 7. First, it is chosen the "Class Formation" corresponding to the Referee box’s signal in "Class Strategy". In next "Class Formation", itis chosen the "Support Action" corresponding to the game situation for each robot.
Finally, the "Support Action" makes a decision how do robots work. For example,
There are actions such like [kick a ball] and [move a robot] in the "Support Action"library. When the "Class Formation" decide to make kicking a ball for a robot, itchooses [kick a ball] in the "Support Action" against robots.
In previous structure, the "Class Formation" decided all robots’ action analyzing
from the situation of game. But, we have to construct more flexible "Class Formation"
to promote a smart and intelligent gameplay. It is difficult to develop more complex"Class Formation" because it is required many "Support Actions" and branch condition for intelligent behaviors. It is also hard to reuse the previous program. Therefore,
we tried to introduce newly-proposed "Class Agent" in new strategy system as shownin Fig. 8 to develop program more efficiently.

adfa, p. 7, 2014.
© Springer-Verlag Berlin Heidelberg 2014

Robots'action

Fig. 8 New structure of strategy system
The "Class Agent" is a class that selects appropriate Support Action depending on
given role in game. In new structure of Fig. 8, the "Class Formation" decides only
each robot’s role. The knowledge and intelligence to play a given role is kept in the"Class Agent". As the results, we could develop more efficiently programs whichhave flexible intelligence by introducing of this structure.
4.2.

About controller of RobotuFig. 9 The robotic control to last year.
Last year, we developed controller which has two control units as shown in Fig. 9.
To realize stable and speedy robot’s motion, it is necessary to control within the robot's limitation of acceleration. It is achieved by using sliding mode control that is oneof nonlinear control on the basis of explicit limitation of acceleration. We can get thetarget velocity V* from target position P* and current position P in Unit1 of Fig. 9.
The Unit2 is enable us to know current velocity V following V* by using two-degreeof-freedom control. In case of use of this theory, it is required a high followingperformance for robots to make V≒V* in Unit 2. However, we could not constructappropriate structure of Unit2 last year. In this year, we tried to identify ideal robot
model by using genetic algorithm, and design ideal Unit2 on the basis of the results
after that.
4.2.1. Identification of model by using Genetic Algorithm
Velocity of the robot is expressed in transfer function as following equation,௞௦ା௧(1), మమ௦ ାଶ఍ఠ೙ ௦ାఠ೙where, , ௡ , ,  are constant coefficients that define characteristics of robot, and u
displays the manipulated variable in Fig. 9. Eq. (1) is equal to transfer function ofadfa, p. 8, 2014.
© Springer-Verlag Berlin Heidelberg 2014

speed control of motor with PI control. In this system identification process, the genetic algorithm (GA) is used to get most probable parameters of , ௡ , , . Figure17
shows a program flow of system identification process with GA.

Fig. 10 Identification process of parameter ,࢔,, by using GA

We evaluated the performance of obtained model by analyzing mean square deviaTtion ∆V =1
ˆ (t ) 2 dt of robot's observed velocity V and estimatedV(t)−VT ∫0{}velocity Vˆ . Arbitrary target velocity V* is given to a robot. Next we get the velocity
V(t) from target velocity V*(t) by going through the unit 1. Then we carry out GA andable to produce a motion models based on the parameter for each robot. But, we cannot directly get the valid value because of the noise contained in the robot's position
P* on vision system. So, by increasing of number of the motion, an influence of white
noise for average of ∆V was decreased.
We did experiment to evaluate about mentioned model by using real robot. In theexperiment, we used 100 for population of GA and number of generations, respectively. The dependence of iteration count for observed velocity in back-and-forth motion
adfa, p. 9, 2014.
© Springer-Verlag Berlin Heidelberg 2014

is shown in Fig. 11. It is found that as increasing of the number of iteration of motion,noise on the average velocity is decreased. The estimated velocities for first and finalgeneration are shown in Fig. 12. As increasing generations, it enable us to give smaller ∆V by applying of GA algorithm.
At first of identification, the robot’s velocity V is investigated when the trapezoidal
acceleration command value. Next, it is analyzed ߞ, ߱௡ , ݇, ‫ ݐ‬that robot’s estimatedvelocity Vˆ follows with trapezoidal velocity V. The results for experiment of 1st and400th generations on GA are also shown in Fig. 12. It is found that the estimated velocity Vˆ is good agreement with the observed value V in Fig. 12. All control logics inSIS are made by using results of identification mentioned above.
1往復
1iteration

30往復
30iterations

Obseved velocity V (mm/sec)

1500
1000
500
0-500

0

100

200

300

400

-1000
-1500
-2000
-2500
Frame number

Velocity (mm/sec)

Fig. 11

Dependence of iteration count for observed velocity

Observed velocity v
Estimated value v^ 1st gen.
1500
1000
500
0-500 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7-1000-1500-2000-2500-3000-3500

Fig. 12Time (sec)Result of optimization by applying GAadfa, p. 10, 2014.
© Springer-Verlag Berlin Heidelberg 2014

4.2.2. Optimization of Unit2
We identified the appropriate parameter of control model for Unit2 in §4.2.1. As
mentioned above, the Unit2 ensure following performance by using two-degree-offreedom control. It is necessary to be equal to one for value of whole transfer functionof nominal plant in order to making V*≒V. Thus, C(s) in Unit2 is designed in following eq. (2) as reverse expression of control system.
௦ మ ାଶ఍ఠ ௦ାఠ మ೙೙‫= )ݏ(ܥ‬(2)௞௦ା௧
By using eq. (2), whole transfer function is theoretically equal to 1. In fact, however, the parameters ߞ, ߱௡ , ݇, ‫ ݐ‬derived in GA are not strictly true. So, the Unit2 uses
PID control to reduce influence of various errors. A gain of this PID control is determined from pole assignment of nominal plant through a trial and error process.

5. Conclusions
Our robots have been continuously improved in every year. As the results, the motion and the performance of the robots are getting better.
We hope that our robots will perform better in this coming competition.

adfa, p. 11, 2014.
© Springer-Verlag Berlin Heidelberg 2014