CIT Brains (Teen Size League)

Yasuo Hayashibara, Hideaki Minakata, Kiyoshi Irie, Masafumi Miyachi, Daiki Maekawa, Yusuke Ito, Taiichiro Mashiko, Asuka Omata, George Tsukioka, Tatsumi Ohazama, Takamasa Akiyama, Ryosuke Otani, Kohei Izumi, Shigechika Miki, Yoshitaka Nishizaki, Kenji Kanemasu, Hajime Sakamoto

Chiba Institute of Technology, 2-17-1 Tsudanuma, Narashino, Chiba, JAPAN; Miki Seisakusyo Co, Ltd., 1-7-28 Ohno, Nishiyodogawa, Osaka, JAPAN; Nishizaki Co, Ltd., 1-7-27 Ohno, Nishiyodogawa, Osaka, JAPAN; Yosinori Industry,Ltd., 1-2-23 Owada, Nishiyodogawa, Osaka, JAPAN; Hajime Research Institute, Ltd., 1-7-28 Ohno, Nishiyodogawa, Osaka, JAPAN


Abstract In this paper, we describe on our system for the RoboCup soccer teen size humanoid league. The system we designed has some features. They are high mobility, well-designed control system, position estimation by one camera and user-friendly interface. The robot can walk speedy and robustly. It also has a feedback system with gyro sensor to prevent falls. The robot has two control boards. One is for walk and another is for image recognition, behavior determination and so on. The latter CPU board is a standard PICO-ITX embedded personal computer. Its operating system is the Linux, so we can use the UNIX's useful tools. The robot detects the positions of landmarks by image processing. From the positions, the robot can also estimate own position by using a particle filter.

Keywords: high mobility, user-friendly interface, education tool

1 Introduction

In this paper, we describe on our system for the RoboCup soccer teen size humanoid league. Our robot is well-designed and controlled robustly. Last year, we got the second prize of 2on2 soccer and the second prize of technical challenge in RoboCup 2012. Our team members were specialists from some technological areas. We integrate our technologies for developing an intelligent humanoid robot. Hajime Research Institute developed the mechanism and control system of the robot. Chiba Institute of Technology developed computer system and overall intelligence such as image recognition and soccer algorithm. Remarkable topic is that the most of members are undergraduate students. Through this development, the professors try to make an educational and research platform robot system of intelligent humanoid. Almost all algorism of behavior decision are programmed by the undergraduate student heuristically.

We develop two size robots for RoboCup. One is for kid size league and another one is for teen size league. Mainly, Hajime develops those robots and he/she use same control board. So, we can control those different size robots with same command system. It enables to decrease the cost to develop the system. We can apply almost same program to them. Furthermore, his robots perform high mobility and stability. The normal speed is approximately 0.4m/s. It can also walk to any direction and angle smoothly. For stable walking, it has gyro sensor. The robot has two CPUs. One is used for walk, and another is used for image recognition, behavior determination and so on.

2 Overview of the System

The photograph of our robot is shown in the Fig.1. The specification of the robot is indicated in the Table 1. The overview of the control system is shown in Fig. 2. Our robot system consists of a camera, computers, sensors, servo motors, batteries and some user interfaces such as switch and LED. The camera sends image signal to the main CPU board. The signal is captured and stored in frame buffer memory. The CPU processes the image data to detect positions of ball, robots and landmarks. From the landmarks' positions, the robot estimates own position by using a particle filter. From these data, the robot selects a next behavior. The behaviors which we can choose are not only just simple moving, but also complex task like following the ball. We prepare some behaviors. The action command is sent to sub CPU via RS232C network. The CPU decodes and executes the command. It sometimes returns the status data to the main CPU. If the command is a kind of moving the body or checking a status, the sub CPU sends a command to servo motor via RS485 network. Each servo motor has own CPU to control motor and receive/send commands. Because all servo motors are daisy-chained, the command is sent to all motor. The command includes ID number, so the servo motor can identify the command to which is sent. The servo motor decodes and executes the command. The displacement angle is controlled in local motor unit. The sub CPU should not send commands at short intervals. Totally, this system is constructed as a well-designed hierarchic system. So, we can modify the system easily.

Fig.1. Structure of the Robot
Fig.1. Structure of the Robot
Fig.2. Overview of the Control System
Fig.2. Overview of the Control System

Table 1. Specification of the Robot

Weight 12.0 kg (Including Batteries)
Height 1000 mm
Velocity (Forward) 0.4 m/s (maximum)
Walking Directions All direction and rotation (Select the angle, stride, period and so on)
CPU Board Main: COMMEL LP-170 (Intel Atom D525 1.8GHz) Sub: Hajime Robot HC5 (Renesas SH-2A/7211)
OS Linux (Ubuntu12.04LTS)
Interface Ether(100Base-TX) x 1, USB x 1(USB-wireless LAN), CF x 1, RS232C x 2, Sound In/Out , Digital I/O, etc
Servo Motor Vstone VS-SV3300 x 2, VS-SV3310 x 4, Hajime Servo x10, ROBOTIS RX-28 x1
Battery A123 Systems Li-Fe 19.8V x 1

3 Mobility

We apply parallel links to the legs. By the mechanism, the stability of walk becomes much better. And, the number of servo motors was also decreased compared by the previous robot. At the neck, an energy-absorbing mechanism is applied. Even if the robot falls, the camera may be not broken.

4 Computer System

One of significant feature of the robot is the high computational capability. The robot is capable of processing VGA (640x480) images 20 frames per a second. The CPU is Atom D525 and the operating system is the Linux. It processes the image data, estimates the positions and determines the behavior. After these processes, it sends a command to sub CPU board for controlling the robot. Moreover, it was possible to develop easily by adopting Linux that was accustomed to the operation and installing the development setting and to do.

5 Image Processing and Position Estimation

As mentioned above, the computer processes the image data of 20 frames per a second. The resolution of the camera can be selected from 640x480 and 320x240. By simple image processing, it can detect the region of the same color. According to those data, it calculates the positions of ball, robots and landmarks. The position and direction of camera is calculated by inverse kinematics. The result is send and displayed on a PC. The example of the calculation is shown in Fig.3. Before this image processing, we should input the threshold of the color. We made an interface to input the value smoothly. The operator can change the value on GUI interface and check the effectiveness of the values immediately.

By measured positions of land mark, the position of the robot is estimated. We apply a particle filter to estimate it. It is shown in Fig. 4. If the robot detects the landmarks, the particles gather and bundle to collect position like the figure. The accuracy of the estimated position is not enough the goal keeper to move home position. Then, we are now trying to detect the white line to reduce the position error.

Fig.3. Graphical User Interface
Fig.3. Graphical User Interface
Fig.4. Estimating Process Using Particle Filter
Fig.4. Estimating Process Using Particle Filter

6 Strategy Development Environment

We develop a user-friendly interface for strategy development environment. The programmer can check many kind of thing in this interface. This interface is provided as following.

[output]

    1. simple command to sub CPU (the command can also generate by joystick, mouse and keyboard)
    1. threshold of color (its effectiveness can be check immediately)
    1. strategy name like forward and keeper (it select the program in robot
    1. fight side and our color

[input]

    1. image data (It is possible to display the result of image processing)
    1. detect and estimate positions (It is indicated graphically and saved in storage.)
    1. command to sub CPU (We can check the algorism)
    1. message (If the programmer want to know the robot status, he/she can insert the message in the program. It is also saved in storage)
    1. color values (We use the YUV color value.)

These are example of input/output data. More data is interacted on this interface. Using this interface, the programmer can check the algorism easily. He/She can refer almost all data, so he/she can find the problem smoothly.

7 Conclusion

In this paper we described on our system. Our system has some features. They are high mobility, well-designed control system, position estimation by one camera and user-friendly interface.