Abstract
In this paper, we describe technologies of the robot Accelite that is the winner of the RoboCup2015 Humanoid KidSize League. In 2015, the rules of the humanoid league were changed dramatically. The ball was changed from a monochromatic orange ball to a real soccer ball. Furthermore, the goal color was also changed from yellow to white. Therefore, the soccer robots in the humanoid league were not able to detect the ball based on just colors. We developed some detection methods and verified their effectiveness. Consequently, our robots detected the ball robustly and we succeeded in the technical challenge “Goal-Kick from Moving Ball”. In RoboCup 2015, the field of play was also changed from a punch carpet to an artificial grass. Because the pile length of the artificial grass in RoboCup2015 was long, our robots were not able to walk robustly when we started to use the field. We also explain how we solved the problem. We also discuss how we succeeded in the technical challenges.
You have full access to this open access chapter, Download conference paper PDF
Similar content being viewed by others
Keywords
1 Introduction
In this paper, we describe the technologies of the robot Accelite that is the winner of the RoboCup2015 Humanoid KidSize League. In RoboCup 2015 Hefei, we won the first prize of the 4on4 soccer and the technical challenge. The results are indicated in the Table 1. Since 2013, we have used the robot Accelite, which is the fourth generation robot in our team CIT Brains [1–3].
CIT Brains is a joint team consisting of Hajime Research Institute and Chiba Institute of Technology (CIT). The aim of this development is not only research, but also education. Almost all members of our team are undergraduate students. They do not have enough knowledge and experience to understand our robot system in its entirety. Through improving our robot system, they have acquired a lot of hands-on experience in robot technologies.
In 2015, the rules of the humanoid league were changed dramatically. The ball was changed from a monochromatic orange ball to a real soccer ball. Furthermore, the color of the goal was changed from yellow to white. Therefore, the robots were not able to detect the ball by a simple image processing using only color features. For detecting the ball robustly, we built new image processing methods and verified their effectiveness. Consequently, we developed a robust detection system and we succeeded in the new technical challenge “Goal-Kick from Moving Ball”. To accomplish the challenge, the robot should detect a “moving” ball. Our developed method is able to detect a moving ball robustly.
In RoboCup2015, the field of play was also changed from a punch carpet to an artificial grass. We started to develop a stable walking on an artificial grass in 2014, because one of the technical challenges in RoboCup2014 is “Artificial Grass Challenge”. Our robot walked on the artificial grass robustly since 2014. However, when we start to use the soccer field in RoboCup2015, the robot could not walk robustly, because the length of the artificial grass was long. To solve this problem, we tried to find a solution heuristically in the venue. Consequently, we replaced the soles of our robots extemporaneously, and the robots were able to walk more robustly and speedily than before.
2 Conventional Ball Detection Method
Figure 1 shows our conventional method to detect the ball. The sequence is the following:
-
(1)
Categorizing each pixel to a color cluster according to a preset color lookup table
-
(2)
Calculating areas of the ball color
-
(3)
Distinguishing whether some conditions are satisfied or not
-
(4)
Registering as the ball if all conditions are satisfied.
Because the CPU of our robot is Intel Atom D525 (dual core, 1.8 GHz), we could not apply an image processing algorithm that demands a high performance CPU. In RoboCup2014, the ball was painted monochromatic orange and it was prohibited to put objects with same orange color on the green field. Therefore, we applied a simple algorithm to detect the ball using only color feature. The method was effective for a low performance CPU, and it detected the ball up to every 20 frames per second robustly.
This method can be applied for another colored ball if the ball has an individual color against other objects on the field. However, the ball color in RoboCup2015 is almost white and there are many white objects on the field. Therefore, we could not apply the conventional method to detect the ball in RoboCup2015.
3 Ball Detection Method Using Color Histogram
Figure 2 shows a soccer ball, which was provided as a sample of a game ball preliminarily. In the rule of humanoid league, it is described that the color of the ball should be over 50 % white. The sample ball contains many colors, so we try to detect the ball by using a color histogram. Figure 3 shows the developed image processing algorithm to detect the ball. The sequence is the following:
-
(1)
Calculating search points around the previous ball position using a particle filter
-
(2)
Calculating a color histogram for every search point
-
(3)
Evaluating a histogram intersection for every search point
-
(4)
Registering as the ball if the maximum value is over a threshold
First, the robot calculates search points using a particle filter as the following:
-
(1)
If the ball is found,
-
distributing 50 particles around the ball position according to Gaussian distribution and distributing 50 particles uniformly in the captured image
If the ball is not found,
-
distributing 500 particles uniformly in the captured image
-
-
(2)
Calculating diameters of circles in the captured image correspond to the outer shapes of the balls
The diameter is changed according to the distance to the ball. The distance is calculated based on the position in the captured image and the tilt angle of the camera.
Second, random-sampled 100 points in the circle are categorized to color histogram bins. The camera of the robot outputs YUV image data, whose values are from 0 to 255. Each value of Y, U or V is categorized for 4 clusters as shown in the Fig. 3. Therefore, the total number of the histogram bin is 64. The histogram is calculated as the following:
-
(1)
Picking 100 points up randomly in the circle correspond to the outer shape of the ball
Here, the number of the points is decided with consideration for the performance of the computer heuristically.
-
(2)
Categorizing YUV data of each point \( P_{ki} \) in the k-th circle to a color histogram bin according to the following equation:
$$ B\left( {P_{ki} } \right) = {\text{floor}}\left( {\frac{{Y\left( {P_{ki} } \right)}}{64}} \right) \times 16 + {\text{floor}}\left( {\frac{{U\left( {P_{ki} } \right)}}{64}} \right) \times 4 + {\text{floor}}\left( {\frac{{V\left( {P_{ki} } \right)}}{64}} \right) $$(1)Here, B is the color histogram bin whose range from 0 to 63. Y, U and V are the values of YUV data whose ranges are from 0 to 255. Using the floor function, each Y, U or V value is categorized into one of four bins.
-
(3)
Calculating the histogram for each search point
The value of the histogram bin \( H_{kj} \) is calculated by the following equation:
$$ \begin{aligned} & A_{kj} = \left\{ {P_{ki} | B\left( {P_{ki} } \right) = j} \right\} \\ & H_{kj} = {\text{n}}\left( {A_{kj} } \right) \\ \end{aligned} $$(2)Here, the function \( {\text{n}}\left( {A_{kj} } \right) \) implies the number of elements of the set \( A_{kj} \).
Third, the histogram intersection is calculated at each search point [4]. In order to evaluate the degree of the coincidence of the histogram, we chose the histogram intersection as a simple methods. In advance, a reference color histogram of the ball is memorized manually. The histogram intersection \( M_{k} \) between the reference data \( R \) and the color histogram \( H_{k} \) at the k-th search point is calculated according to the following equation:
Finally, if the maximum value of the histogram intersections is over a threshold, the corresponding search point is registered as the ball position.
The sequence of this method is more complex than the conventional method and it needs more computational time. So, the frame rate of the image processing was down to 5–10 frames per second. Using this method, the robot was able to detect the ball within a 3 m radius robustly. Consequently, we got the first prize in RoboCup2015 Japan Open Fukui.
4 Ball Detection Method Using a Template
We planned to use the above mentioned method using the color histogram in RoboCup2015 Hefei. However, the ball in RoboCup2015 was changed from the previous one. Figure 4 shows the game ball in RoboCup2015. The colors of the ball are just white and gray. The gray of the ball color is too similar to a shadow color of the goal or white line. Therefore, it was hard to distinguish the ball from other objects like goals and white lines using color histogram. Then, we tried to apply another detection method using the template of the ball as the Fig. 5. The sequence is the following:
-
(1)
Categorizing each pixel to a color cluster according to a preset color lookup table
-
(2)
Calculating search points around the previous ball position using a particle filter
-
(3)
Evaluating the degree of coincidence by the following method
-
(4)
Registering as the ball if the maximum value is over a threshold
As the Fig. 5 shows, the template implies the shape of the ball. The size of the template is changed according to the distance to the ball. The degree of coincidence at each search point is calculated as the following:
-
(1)
Picking 100 points up randomly in a rectangle around a search point
The rectangle corresponds to the template and the size of the rectangle is changed according to the distance of the ball.
-
(2)
Calculating the degree of coincidence \( Doc_{k} \) by comparing a template data of each point \( P_{ki} \) in the \( k \)–th rectangle as the following equation:
$$ \begin{aligned} & X_{k} = \left\{ {P_{ki} | C\left( {P_{ki} } \right)\, {\text{is ball color}}, P_{ki} \,{\text{is inside circle}}} \right\} \\ & Y_{k} = \left\{ {P_{ki} | C\left( {P_{ki} } \right)\, {\text{is ball color}}, P_{ki} \,{\text{is outside circle}}} \right\} \\ & Doc_{k} = \frac{{{\text{n}}\left( {X_{k} } \right) - {\text{n}}\left( {Y_{k} } \right)}}{{{\text{n}}\left( {P_{ki} | P_{ki} \,{\text{is inside circle}}} \right)}} \\ \end{aligned} $$(4)
Here, \( C \) is the categorized color that is derived by using the lookup table. If the sampled image is completely the same as the template, the degree of coincidence will be 1.0. Before using this method, we should set the lookup table for categorizing the ball. All colors of the ball are set as a just ball color. By using this method, the robot could detect the ball within a 3 m radius robustly in our experimental soccer field.
Here, for detecting the ball robustly, it is desirable that the lookup table is set as distinguishing the ball’s white and other objects’ white. The rate of this procedure was 5–10 frames per second, it was almost same as the method using the color histogram.
5 Moving Ball Detection
The robot could detect the stationary ball using the method described in the previous section. However, if the ball moved quickly, it would get lost. Specially, it is a serious problem for a goal keeper. The main causes of losing the ball are a blurring of the ball image and a distribution of the search points. The problem of the blurring could be solved easily. It is solved by adjusting the shutter speed. Another problem about the distribution is more complex. If the number of search points and the distribution will be increased, detecting the moving ball will be possible. However, the cost of the calculation will also be increased. Here, a coming ball detection is more important for the goal keeper. Therefore, we modified the distribution of the particles like the Fig. 6. The particles are distributed in accordance with a long vertical ellipse whose center position is slightly shifted to the bottom. By this modification, the robot could detect a moving ball robustly. Consequently, we succeeded in the technical challenge “Goal-Kick from Moving Ball”.
6 Modification in the RoboCup2015
As mentioned above, we developed the robust ball detection method. However, in the venue of RoboCup2015, we faced some new problems. The color of the white line was too similar to the ball color. Then, the robot could not detect the ball robustly in the play field in RoboCup2015. To solve this problem, we modified the template as Fig. 7.
The new template contains the colors of the play field and the robot. The new degree of coincidence \( Doc' \) is calculated as the following equation:
Using this method with utilizing the play field color and the robot color outside the circle, the robot was able to distinguish the ball robustly. The green color of the field is able to detect more easily than the white color of the ball. That might contribute the robustness to detection. However, when the ball is located on the white line as the Fig. 8, it is slightly hard to detect the ball because the green area is decreased by the white line. Then, the robot sometimes lost the ball on the goal line. Furthermore, the place near the goal line was also the edge of the field, so the green area would be decreased more.
7 Discussion of a Walking on the Artificial Grass
In 2015, the soccer field of humanoid league was changed from a punch carpet to an artificial grass. Our robot attended the technical challenge “Artificial Grass” in 2014 and acquired the second prize of the challenge. Therefore, the robot has already walked on an artificial grass robustly since 2014. However, because the length of the artificial grass in RoboCup2015 was long (35 mm), the robot could not walk robustly. Some teams used bolts attached to the sole for a stable walking. We also tried to use bolts like other teams. Consequently, the stability of the walking was somewhat improved. However, it became more difficult to kick the ball. When the bolts touch the field during kicking the ball, a strong force is applied to the foot. For solving this problem, we assembled soles of the robot upside down and made the sole longer back and forth. We had already made long soles for the technical challenge “High-Kick Challenge” as shown in the Fig. 9. That helps to find the solution. The bent edges are attached to not step on its feet. Using the edges under the sole, the robot could walk robustly. Consequently, the walking speed on the artificial grass could be increased.
8 Discussion of the Technical Challenges
In 2015, three new technical challenges were introduced. Our robot succeeded in all challenges. Especially, the technical challenges “High-Kick Challenge” and “Goal-Kick from Moving Ball” were difficult to achieve. We explain about how to achieve the challenges.
8.1 Goal-Kick from Moving Ball
In our system, we write a sequence of a behavior in Python language. By changing the program, the robot can execute various tasks. A sequence of the technical challenge “Goal-Kick from Moving Ball” is following:
-
(1)
Rotating the neck in the direction of the ball
-
(2)
Play a kick motion if the ball comes in a certain area
By only the above sequence, we achieved the challenge at the first trial. Figure 10 shows the result of the technical challenge.
8.2 High-Kick Challenge
We also succeeded in the “High-Kick Challenge”. The robot kicked the ball over a wall of 220 mm height as shown in the Fig. 11. The robot is controlled according to the following sequence.
-
(1)
Behaving as a normal forward player
-
(2)
Switching the kick motion if the robot enters inside a certain area in front of the goal
For succeeding in this challenge, the position of the ball from the wall is important. The challenge will not be succeeded when the ball is too near or far from the wall of the goal. For kicking higher, we made the long sole. As already mentioned, it helped to find the robust walking.
9 Conclusion
In this paper, we described the technologies of the humanoid robot Accelite in RoboCup2015. For detecting the ball, we developed image processing methods using the color histogram and the template. Consequently, our robots detected the moving ball robustly. In RoboCup 2015, the field was also changed from a punch carpet to an artificial grass. To walk stably, we assembled soles of the robot upside down and made the sole longer back and forth. We also discussed how we succeeded in the technical challenges.
References
Hayashibara, Y., et al.: CIT brains KidSize robot: RoboCup 2014 best humanoid award winner. In: Bianchi, R.A., Akin, H., Ramamoorthy, S., Sugiura, K. (eds.) RoboCup 2014. LNCS, vol. 8992, pp. 82–93. Springer, Heidelberg (2015)
Hayashibara, Y., Minakata, H.: The research development of autonomous soccer humanoids through the RoboCup. J. Soc. Instrum. Control Eng. 52(6), 487–494 (2013)
Hayashibara, Y., Minakata, H., Irie, K., Sakamoto, H.: Development of a humanoid “Dynamo2012” for RoboCup. In: Proceedings of JSME Robotics and Mechatronics Conference 2013, 1P1-A12 (2013)
Swain, M.J., Ballard, D.H.: Color indexing. Int. J. Comput. Vis. 7(1), 11–32 (1991)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Open Access This chapter is licensed under the terms of the Creative Commons Attribution-NonCommercial 2.5 International License (http://creativecommons.org/licenses/by-nc/2.5/), which permits any noncommercial use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made.
The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
Copyright information
© 2015 Springer International Publishing Switzerland
About this paper
Cite this paper
Hayashibara, Y. et al. (2015). CIT Brains KidSize Robot: RoboCup 2015 KidSize League Winner. In: Almeida, L., Ji, J., Steinbauer, G., Luke, S. (eds) RoboCup 2015: Robot World Cup XIX. RoboCup 2015. Lecture Notes in Computer Science(), vol 9513. Springer, Cham. https://doi.org/10.1007/978-3-319-29339-4_13
Download citation
DOI: https://doi.org/10.1007/978-3-319-29339-4_13
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-29338-7
Online ISBN: 978-3-319-29339-4
eBook Packages: Computer ScienceComputer Science (R0)