CIT Brains (Kid 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; Miki Seisakusyo Co, Ltd.; Nishizaki Co, Ltd.; Yosinori Industry, Ltd.; Hajime Research Institute, Ltd.
Abstract In this paper, we describe our robot system for the RoboCup soccer kid size humanoid league. The system we developed has high mobility, strong kicks, well-designed control system, position estimation by a monocular camera and user-friendly interface. The robot can walk speedy and robustly. It also has a feedback system with gyro and acceleration sensors to prevent falls. From the last year, we redesigned the main control system for improving the ease of maintenance and the flexibility. We eliminated the sub CPU board for walking control. The main computer also generates a walking pattern and sends the data to the servo motors. It was used for image recognition, behavior determination and so on. The robot detects the positions of landmarks by color-based image processing. A particle filter is employed to localize the robot in the soccer field fusing motion model and landmark observation.
Introduction
In this paper, we describe our system for the RoboCup soccer kid size humanoid league. Our robot is well-designed and controlled robustly. Last year, we got the second prize of 3on3 soccer and the first prize of technical challenge in RoboCup 2012 Mexico and the first prize of 3on3 soccer in RoboCup Japan Open 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.
Overview of the System
The photograph of our robot is shown in Fig.1. This year, we developed a new robot. The specification of the robot is indicated in Table 1. The overview of the control system is shown in Fig. 2. Our robot system consists of a USB camera, one main computers, IMU sensors, servo motors, batteries and some user interfaces such as switch and LED. Images are captured by the USB camera, and processed on the main CPU board to detect positions of the ball, the robots and the landmarks. From the landmarks' positions, the robot estimates own position 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 ball. Several predefined behaviors such as walk and kick are stored as data files and a command to choose a behavior is sent to the body control process. The process decodes and executes the command. It sometimes returns the status data to the main process. If the command is a kind of moving the body or checking a status, the main process sends a command to the body control procss. Each servo motor has own micro-controller to control motor and receive/send commands. Because all servo motors are daisychained, 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.
Specification of the Robot
| Weight | 3.5 kg (Including Batteries) |
|---|---|
| Height | 600 mm |
| Velocity (Forward) | 0.4 m/s (maximum) |
| Walking Directions | All direction and rotation |
| (Select the angle, stride, period and so on) | |
| CPU Board | COMMEL LP-170 (Intel Atom D525 1.8GHz) |
| OS | Linux (Ubuntu12.04LTS) |
| Interface | Ether x 1, USB x 4, |
| CF x 1, RS232C x 2, Sound In/Out , Digital I/O, etc | |
| Servo Motor | Futaba RS405CB x 18 |
| Battery | 3S (11.1V, 5000mAh ) |
Mobility
One of the significant features of our robot is the mobility. Through trial and error process, it can walk speedily and robustly. Its maximum speed is approximately 0.4m/s.
According to the command, the robot activates many functions such as walking, kicking, returning the status data and so on. When the body control process receives a command, it decodes and executes. If the command is related to servo motor control such as walk, motion generation and read status, the controller sends a command to servo motors via RS485. The control process also receives data from IMU (Inertial Measurement Unit) via USB. According to the data, the robot modifies the walking motion to prevent falls. The robot does not usually fall alone, however, in a soccer game it sometime fall when pushed by other robots. Even when the robot falls, it detects its posture and stand up smoothly.
We improved the leg structure by using a parallel mechanism as shown in the Fig. 3. The parallel mechanism generates vertical movement mechanically. Therefore, walking doesn't become unstable easily because it can lower the foot in parallel even if the motor has not synchronized completely while walking. In addition, servo motors with a big torque are chosen to overcome the increased weight of the battery. Even if generation of heat of the motor was suppressed by these factors, and the robot walked for a long time, it came to keep stabilizing.
Computer System
One of significant feature of the robot is the high computational capability and the ease of maintenance. 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, determines the behavior and controls the whole body. Moreover, it was possible to develop easily by adopting Linux that was accustomed to the operation and installing the development setting and to do. Furthermore, for improving the ease of maintenance, we designed the slotin mechanism of the main control circuit as shown in the Fig. 4. We could eliminate a huge number of cables. Moreover, it contains a charger circuit. Using the A/C adapter, it can charge battery without outer charger circuit.
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 the Fig.5. 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 the Fig. 6. 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.
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]
- simple command to sub CPU (the command can also generate by mouse and keyboard)
- table of color (Its effectiveness can be checked immediately)
- program name like forward and keeper (It select the program in robot)own goal color and marker color
[input]
- image data (It is possible to display the result of image processing)
- detect and estimate positions (It is indicated graphically and saved in storage.)
- command to sub CPU (We can check the algorism)
- 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)
- color values (We use the YUV color value.)
These are example of input/output data. More data is interacted on this interface. Since the interface displays most of the significant status of the robot, the programmer can check the algorism and find problems easily.
Conclusion
In this paper we described our system. Our system has high mobility, strong kicks, well-designed control system, position estimation by one camera and user-friendly interface.