An AI program running on a humanoid robot, Darwin. The AI is capable to find the ball and the goal in the camera and to approach to the goal in order to shoot.

A web interface was also developed for debugging, through which the parameters and vision of the robot can be observed and commands can be sent.


Darwin robots was the winner of Robot Cup. We got one darwin robot and tried to implemented the program.


We used algorithms to recognize the ball's position in various circumstances, and a heuristic self-correcting algorithm to approach the ball and shoot. The challenges mainly came from recognization and walking the robot.

For recognization, we recognize the ball's color within a degree of errors. Then we analyse whether it is a ball and where the center is. We used the web interface for debugging a lot.

For walking the robot, we adjusted the robot a lot for a stable movement. The robot can potentially fall, so we have to deal with those cases.


The robot had a satisfied result in the end. It can search the ball when idle, approach the ball, and shoot it towards the goal. It’s really fun to watch it runs around playing.


C++, Darwin Platform, HTML, libhttpd


The framework of the whole program, the web backend and frontend.