RoboCup World Championship 2003

July, 2 - 11, 2003, Padova Fiere, Padova

Attempto Tübingen, winner of the technical challenge award of RoboCup 2003 at Padua

Click here to view a poster about the scientific work on detecting and tracking a non-colored ball presented as part of the technical challenge
Click here to view videos of our robot detecting and tracking a non-colored ball presented as part of the technical challenge
Click here for results of the middle size competition (robots up to a diameter of 50 cm) of the RoboCup 2003 in Padova from 2 - 9 July, 2003


Our Team at Padova 2003

Ready to go!

Everything under control!

Frank while calibrating cameras on the field  

Andreas doing his favorite job - killing food

Our first and last night on site

Everything gets fine!

Our robots eagerly awaiting the second half of a match  

One of our robots deserted to ISePorto ;-)

One of our colleagues from the humaniod league  

Waiting for the train to the social event

Social event: a reward for the hard work, i.e. ice cream, pasta, wine...  

Our image processing gurus adding the finishing touches to their code

Tracking and following non-colored FIFA balls  

Scores of the technical challenges. And the winner is... Attempto Tübingen!!!

We are working on a 3D animation... In the meantime adore the 2D photo ;-)  

Report of our days at Padova


After several hard weeks of preparation we were not very optimistic about the performance of our robot team at the world championship in Italy. We had many problems with the robot hardware in advance, partially caused by material fatigue as we are using our robots for 4 years now. By the joint efforts of the team members and even some of the faculty members we could solve most of the problems and finally we had five fully functional robots. (Michael Drüing helped a lot although he could not come with us to Padova... Thanks Michael!) However, the time we spent to find and repair the errors was scheduled for software testing and improvement which accordingly did not get the desired attention. Especially our new method of video based self localization could not be tested enough.

In contrary to the expectations our first days at Padua were just easygoing. When we finished the camera calibration of the first robot we were overwhelmed by the performance of our robot. The localization based on the white line markings observed through the omnidirectional camera on top of our robots performed better than ever and even our ball handling was excellent.

For two days we spent our time only for camera calibration and for the first time ever at a competition we could enjoy a normal amount of sleep in our hotel. As some of the opponents of our group weren't even able to play at that time, we had to suppress an upcoming mischief.

Pride goes before a fall...


In the evening before the first day of the preliminary games the organizers announced that there will be advertising boards around the field during the games and that these boards will be white. WHITE??? But this is the color of the field markings, one of the signal colors everyone tries to find in the image. We knew that our self localization based on the white areas in the image might have problems with these white advertising boards...

After a long discussion with the other team leaders and the organizers there was an agreement that according to the rules noone should ever make any assumptions on the surroundings of the field, which means that we had to cope with this problem. (Paradoxically some of the other fields were partitioned by small dividing walls to prevent the colored corner posts of one field from being seen from another field. Obviously teams doing self localization based on these posts might have problems with this, too.)

To cope with the advertising boards and any other white color blobs outside the field (e.g. white shirts) we decided to restrict our vision to the field size, which meant that we had to cut all white points that lie outside the field according to our estimated position. What a nightmare, without an exact estimate of our current position we could not correct our position estimation...


06:00. After a long night of programming and testing everything seemed to be back to normal. We did not sleep for 24 hours, the chambermaid in our hotel had a lazy day and our stomachs were filled with coffee, sweets, and other unhealthy substances... Although we did a great job (normally the number of new errors is higher than the number of fixed errors if you code the whole night through) there was still one little bug in our self localization and a bad mood took possession of the team.

12:00. Nevertheless everyone was getting ready for the first match. Milan, our first opponent from Italy, seemed to lack some days of preparation, too, and we were optimistic about the result just hours ago. But with the new situation, having large white boards outside the field our optimism deserted. Our last efforts to convince the organizers of removing the boards at least for the preliminary round failed and so we just accepted our fate awaiting another loss for our team.

12:30. Gamestart! Unbelievable, our robots celebrated their resurrection! Everything worked fine, even the self localization was sufficient for a good play and finally after a nerve-wracking match we celebrated our first victory with a result of 3:0.

15:00. Next match. Opponent: ISocRob, Portugal. The time until this match was filled by joy and relaxation but now we were getting more and more tensed. No one of us knew ISocRob. No one saw them testing their robots on the field. What does this mean? They cannot be to bad as they won their first match against Jiaolong, the chinese team. However, Jiaolong did not seem to be a hard fighting opponent. Maybe they are just brilliant and there is no need to test the robots at all...

15:20. Halftime. Now we knew that ISocRob is a very good team. It was a balanced match but the 0:1 was a hard strike against us, after a long time of celebration. Although we could immediately score the 1:1 we knew that ISocRob will give us a tough match.

15:40. Lost! 1:2. A few seconds before the end of the match the swedish referee replaced the ball out of a crowdy situation at the corner post in our half directly in front of a player of ISocRob. Perfect! Penalty! There is no easier way to score a goal in RoboCup... After a while of discussion in our team we decided not to protest against the outcome of the game. Maybe we were to tired... We enjoyed the rest of the day without games (and the sleep after 36 long hours of work).


10:00. We knew that would have a tough time that day to reach the next round. The opponent in our first match was 5dpo from Portugal and they have a very good defense...

10:20. Phew, both teams could show their abilities and we had problems to crack the defensive rows of 5dpo. A very fast and agile defender and a goalkeeper with long arms were keeping our robots away from their goal.

10:35. Although there were complaints about robots being repaired along the sideline of the field just a few hours ago, there was a removed robot of 5dpo standing near the corner post, blocking the way around the corner post for robots. As a result our robot got stuck at the corner post while trying to kick a corner away from the corner post and we lost the ball to one of the 5dpo attackers.

10:40. We got our next defeat 1:2! It seemed that we had to improve our system. Maybe we could fix the error in our new self localization code, after all we did a good job the night before and it should be more structured than ever...

11:45. Heureka! We were sure that we found the problem of the self localization but we were not able to fix and test the code before the next match. We had to win at least one more game to reach the next round...

12:15. ISePorto our next opponent had problems with the wave LAN, presumably the teams of the rescue league were again transmitting video streams on our frequency. Keeping in mind the possibility to fix and test our self localization code we immediately suggested to postpone the game. The rescheduled time was 19:30 in the evening.

12:30. Quick! The field was ours for at least 30 minutes. We were compiling and copying the code to one of the robots to test it on the field.

13:00. Wow! The new code ran better than expected. We even tried to move the robot without contact to the ground (i.e. without having the chance to extract the movement by odometrie) and it localized just fine! We are full of optimism again, but for now we had to leave the field for the next game...

13:15. Our last two games were in a row from 18:00 on. That leaves us time to walk around and observe our possible opponents for the next round (we were pretty sure at that time to reach the next round).

15:00. We were not so sure anymore if we wanted to proceed to the next round. It seems that we had luck of the draw as our group lacked one of the favorite teams from Japan or Iran. They are fast enough to take away every ball before our robots even react. Now we knew for sure that we would have no chance to proceed to the finals.

18:45. 1:0. Ok, we were playing the next round. But this game against Jiaolong, the chineese team that did not score any goal in this tournament, was on a very low level. Although we used our new self localization that cuts the white points from the advertising boards and which we proved to be more robust than ever before just a few hours ago, our robots were not able to play a very good match. Jiaolong even had the chance to score a goal against us. Their first goal in the whole tournament... That was not very promising for the upcoming matches...

20:00. 0:0. That was the last match for the preliminary round and everyone was glad that it was over now. Instead of celebrating the third place we achieved in our group we were wondering why the performance of our robots was constantly getting worse in the last matches.

21:00. Now we knew. The physical stress of five hard matches bended the aluminum of the mounting that carries the air tank for the kicker and the cameras. By that the image plane of the cameras was inclined and thus the mapping of image pixels to real world coordinates was highly distorted. It was good to know the problem, but our night would be short as we had to recalibrate the cameras...


11:15. Our first opponent in the next round was Minho from Portugal. This was not a good omen, as we already had our problems with portugese teams in the preliminary round. Although a few months ago Minho had problems at the German Open, we knew that they were pretty good in the first round. And they proved to have the strongest kicking device in a kicking contest with the Phillips team which was the unchallenged leader in kicking strength before...

11:35. What's wrong? Our robots seemed to have got up on the wrong side of the bed. The self localization worked although we still had to remove a robot from time to time due to a wrong position estimation. Nevertheless our play was just awful. Minho in contrast scored by the well known Phillips tactic: Go to the ball, orbit around the ball until you see the goal color, shoot!

11:40. Minho's tactic was even worse than Phillips'. They shot twice towards the corner post mixing up the colored post with the goal and in both situations the ball bounced from the corner post to one or two of our robots and from there right into the goal. Maybe Minho should foster a billiard league in RoboCup!

11:55. The game was lost. Minho scored another two billiard goals. We were thinking about removing all our robots from the field to remove the chance for scoring billiard goals.

11:57. Nightmare! One of our robots was removed a few seconds before this goal (5:0). As there was no space at the outside of the field we had to put the robot on top of a table (we didn't want to put it along the sideline as we were suffering from this irregular behaviour before, see 06.07.2003). Unfortunately we gave the order to go back to the home position after this goal and the robot just fell from the table. What a sad sight! We were lucky that nobody was hurt by the falling robot but the robot itself was just a mess. The whole omnivision optics suffered from the accident. Our new mirror, the front camera and even the mounting of the air tank and cameras was hurt.

12:00. 6:0. As expected we lost the game. But that doesn't make any difference for us. We were all shocked by the bad mistake that led to the destruction of a whole robot.

12:30. Although we considered to cancel the next games at first in order not to lose another robot, we were getting ready for the next match against the world champion Eigen from Japan. We could mix the parts from Conni (the robot that fell from the table) and Det (our spare robot that showed problems with the onboard computer before) to form a new Conni. So we were able to play with four robots again.

13:05. The game started as expected. Eigen is really fast and our heavy weight robots didn't have any chance. After five minutes they scored three goals.

13:07. The nightmare continued. One of our robots lost the lens of its front camera. The lens just fell out of the camera. We felt that it is time to exchange the robots for new ones. For now we could just play with two robots and the goal keeper.

13:10. Sensational! One of our robots took the ball and scored a nice goal after dribbling around two Eigen robots. We scored a goal against the world champion with only two robots... To maintain fairness we have to mention that Eigen was playing with only two robots, too.

13:35. 1:8. Of course we were defeated but we scored a goal against the world champion. That's much better than scoring in the preliminary round.

17:30. Ok, the match against the Tribots from Germany was just easy going as none of us was able to reach the finals. So we could lean back and watch the show.

17:36. The next robot had to be removed from the field. Its weel lost contact to the rotating axis thus the axis was turning without the weel. We had already fixed this problem once before the championship and so we knew that this was the death sentence for another one of our robots. From that moment on we became scared of loosing our last robot, too, which would mean that we could not participate in the technical challenges. And even worse, we could not show our new code to track and play a standard non-colored FIFA ball.

17:55. The guys of the Dortmund Tribots had mercy and lend us one of their robots (Thanks a lot folks!). Nevertheless we lost that match 5:0. Anyhow, we performed better than we expected. And we were looking forward to showing our new capabilities as a side show to the technical challenges. Frustrating was the fact that we lost so much of our hardware.

21:00. The team leaders decided to make the second part of the technical challenge a free demonstration to show the future abilities of a team. That gave us the chance to show a good performance, and who knows, maybe we could get a good score in the challenges...

The technical challenges


11:00. While the quarter finals are played on the center court the other teams are competing in the technical challenges. According to the decision of the team leader meeting the day before, the technical challenges are comprised of two events:

  • Ball control and planning
    Six to eight black obstacles that are put at arbitrary positions on the field have to be avoided by a robot dribbling the ball from one goal towards the other within 90 seconds. Points are awarded to a robot if the ball passed the center line, another when a goal is scored. An extra Point is awarded for the fastest robot. Penalty Points are given each time the robot or the ball touches an obstacle.
  • Free challenge
    Every team is asked to give a short demonstration (5 min.) of their abilities.

16:30. For two long hours we tried to set up a special code for the obstacle avoidance in the first challenge. Our main sensor for sensing obstacles is the laser scanner which deliveres precise information on the distance and angle of an obstacle. However, the laser scanner of the robot that keeps the ball is blinded by this ball rolling in front of the laser. In normal team play we don't have any problems with that, as our robots distribute their sensed objects and everything one robot sees is therefore seen by any other robot (e.g. the one that is blinded by the ball), too. We call this world model fusion. In case of the technical challenges, however, we do not have another robot that senses the obstacles. Thus we knew that our robot would just take the ball and drive straight through the obstacles towards the goal, assuming that there is no obstacle in its way...

16:45. Again we underestimated our own system. As the robot started one meter behind the ball it was able to sense the obstacles in front of the ball. To avoid these obstacles the robot followed a curved trajectory towards the ball and around all the obstacles. We were amazed by this behaviour we didn't expect and even more by the fact that we were faster than most of the other teams except the japanese (but they had scored less points than we did!). Only the second try was as we expected but we ended up with 4 Points and 14 seconds which was the best results concerning both points and time needed. (Video)

18:00. Challenge two started. ISocRob, one of the teams with 4 Points from the first challenge showed a role change behaviour. According to the distance to the ball one of their robots took the attacking role and the other one took a defensive role. It was not very obvious how the roles changed and we were wondering what shall be new to this behaviour as many teams (including us) used dynamic role changes based on the current world model in many competitions before. According to us this performance was clearly inferiour to our new ball tracking demonstration that would come...

18:20. The AllemaniACs (4 Points) a german team showed a demonstration of the capabilities of their goal keeper. This robot drives and reacts very fast which is a challenge on its own regarding the weight of the AllemaniAC robots. Nevertheless they showed that the robot could keep the ball even if its camera was occluded by a black shirt because of the two other robots that were observing the ball and communicating its position to the goal keeper. This is pretty the same task we fulfill every time one of our robots dribbles the ball and we thought about giving three demonstrations...

18:30. Well done! The demonstration of our new capabilities was just perfect. André could show that the code to track and follow a standard non-colored FIFA ball was based on a strong scientific background. (Poster of the scientific work) In the first part of the demonstration we could show an application that tracked the ball in a video stream under different light conditions even if the ball was partially occluded or shadowed. In the second part we showed that we are the first team in the world that is able to follow and play a non-colored ball. (Videos)

19:00. Although there were some nice demos of other teams, espacially team Persia showed a really good passing behaviour, we felt that we would have good chances to win the technical challenges. But for now we had to wait until the next day, as there were some teams doing there presentation the next day...


11:00. The semi final between Fusion and Eigen started but we were more concerned about the outcome of the technical challenges. Phillips demonstrated their ball stopping devices that morning and it was a pretty good show. But they did a bad job in the first challenge so they won't be good in the addition of both scores. Maybe...

13:50. Yippee! We did it! During the half time of the second semi final Ansgar Bredenfeld published the results of the technical challenges. And the winner is: Attempto Tübingen! Anton, our last man standing, outpaced all the other robots in the tournament with its technical performance.
All's well that ends well!

18:10. The final between Fusion and WinKIT was a demonstration of speed, ball handling and reactiveness and we were wondering who ever could withstand teams with such a good performance. We knew that we cannot as our robots are too heavy and the computational speed of our onboard PC is much lower than the specialized hardware of the japanese teams. But for now we were celebrating our triumph and could not expect the award ceremony were we should receive the technical challenge award.

19:00. It's over! We received our award and we were lucky that the days of hard work, sparse sleep, too much adrenaline and way too much junk food were finished...