It all started when I was on primary school. I was lucky enough to be part of robotics club just when we received six Lego Mindstorm sets. Main control (RCX) with 3 inputs and 3 outputs was all we could use. First, we started to program it in iconographic language supplied with a set. We learnt how to work efficiently with more sensors and how to communicate among RCXs.
Our first competition was national round of RoboCup. We almost randomly chosen category (dance seemed to be for girls and rescue too complex for testing) robotic soccer. It was 2004 and robots played just with tennis ball and hence it was impossible to somehow track it. Outcome was heavily dependent on luck.
To explain basics of robotics soccer – team of either one or two robots play against the other team on a field of about 2x1m. There are barriers all around the field. Game is completely autonomous (you just put down your robot and press start) and lasts 2×5 minutes. Winner is a team who scores more goals.
There are strict limitations on size and mass of the robots. My teammate had amazing idea to make the robot as powerful as possible. With four motors instead of two as many other competitors had, we were the strongman on a field. There was one amazing robot built by team of Banska Bystrica whose algorithm was able to score from any position of both robot and ball on a field, provided that he was not interfered by opponent. We won against them in quarter finals.
Tension after the final which ended in draw made us national champions. We got Wiltronics compass, sensors and IR ball as a prize as well as nomination for world finals. We had 2 months to prepare for RoboCup 2004 Portugal.
In May, we spent days by testing and sensor calibration. Some behaviour was unreasonable. As we still have not seen proper games, it was hard to get inspiration. Robots were still programmed in iconic environment. Lego motors were lacking accuracy – goalkeeper often got out of the goal even though his algorithm did not allow that. We did our best and left for the tournament.
RoboCup Portugal 2004
We brought two robots with us. We were silly enough to think that they will support computers for us. Without laptop that we did not have back then, it was then extremely hard to test and prepare.
The main problem of all robots was to spot a ball. Progress of a game was usually the same. Once the robot kicks off, he pushes the ball forward and crash the opponent. Then the ball gets to neutral spot, robots are moving around but cannot see it. Scores for a game were usually low – sometimes it was the case that goal was scored right after kick off.
We played around 10 games and won about half of them. As we were 14, we were still in the category under 15 (primary) where technical developments were not that advanced.
We were inspired by not only size of the championship but also by other categories. I was fascinated by humanoid robots as well as soccer played by universities. Back then I thought that this is exactly a path I want to take. The event changed my life prospect and motivated me to push myself harder.
We already had the sensors and IR ball, which was a great advancement. With inspiration from past games, we were determined to build more powerful and efficient robots. We still programmed in iconographic language. With a lot of testing behind us, our robots on national round looked like this.
We won our category and affirmed our position. This time, idea of going for a championship seemed more distant as much more funding was needed to travel to Japan.
In a meantime, as we were becoming Lego-professionals (not that it means something), we got engaged in one more project. Expo for Young Scientist organized by Amavet offered us a different prospect of a competition – presenting a project instead of playing a robotic soccer. We decided to build drink machine completely from LEGO.
The concept was firstly hard to imagine. We spent many hours only by designing a prototype. We overcame so many problems during testing. It is unimaginably hard to build for example a mechanism that will cause exactly one plastic cup to fall. Another time, user inserted a coin and pressed the button more times, which caused overflow of water and therefore flood on our floor. It was long term testing of many partial functions which later caused whole system to work properly. 6 motors, 4 sensors and a lot of Lego bricks.
Somehow luckily, we got a funding for our participation in RoboCup 2005 Osaka, Japan. It was amazing experience and I describe more of a travel side in different section of this blog.
We were surprised by a structure of a tournament. They decided to create so called superteams. For us in category 1on1 it just meant that we were joined by one other team and played together 2on2. Another surprise was actually advancement of secondary league category in which we appeared. Lack of coordination among our and German robots as well as disadvantage of both built from Lego implied that we did not move far into tournament. It was then that we realized that we cannot go to higher leagues with Lego anymore.
This was a tricky year. As we left primary school, we lost access to all Lego components and had to start from scratch. We borrowed RCX sets and started to program in NQC (not quite C) language which comes with BricxCC IDE. It was a mistake that someone did not show us NQC two years ago.
We participated in national round where we won HiTechnic compass component that was crucial for further performance. Comparing HiTechnic to Wiltronics, I felt that the former was better when used to keep more than one direction (they both returns values 0-100, however HiTechnic distributes them uniformly while Wiltronics does not).
We participated in RoboCup Germany 2006. That was last performance of me and my teammate together as it was hard to face growing competition without proper sponsors and technological mentoring just with LEGO Mindstorm sets.
After three years I felt that I acquired some experience which is worth sharing. I started to teach weekly robotic club at Primary School Domaniza as they had the same LEGO sets as my old primary school, but no one interested in teaching the subject.
Five young students aged 10-11 joined the club. We had a clear aim of building the robotic soccer players, but we had to start from scratch. I made for them a few materials that can be downloaded here. They learnt fast. I took them to the RoboCup Slovakia where they won 2nd place in robotic soccer as well as Istrobot, where they participated in Robotic Sumo category. I taught them how to program in C rather than in RoboLab iconic environment.
It was amazing experience for me to see how the boys learnt outside the class. As we got the chance to participate in RoboCup Atlanta 2007, board of the school took the opportunity and together with parents secured the funding for our “expedition” of three students and three teachers.
Robots were built using more sophisticated tools such as aluminium frame, but still used just old Mindstorm sets. As boys participated in category of primary schools, they did quite well for their first performance. I believe that given experience shaped their minds immensely.
You can find article about the expedition in Slovak here.
The same year I participated myself in sumo category of RobotChallenge 2007 in Wien, Austria. The aim of the competition is just to push the opponent out of the ring. It is often the power that is most important. I was able to build the robot with limited mass of 500g using 4 motors for drive instead of 2 as many others had, which put me into finals. Algorithm was really straightforward and you can download it here.
I started to teach robotics at IMC Slovakia. We ordered 4 sets of Lego NXT with HiTechnic IR and Compass sensors. Robots started to use omnidirectional wheels. Robots were programmed in NQC equivalent for NXT robot – NXC.
Algorithms finally worked perfectly and robots were more powerful than opponents. We encountered problems with sliding of wheels which was resolved after national round.
Team IMC Slovakia participated in RoboCup 2008 in Suzhou, China. This was its last LEGO robotic performance as NXT could not compete against world elite. Game rules did not change that much over the few years, but level of expertise used by robots grew immensely.
We decided to purchase RoboExp set that was used by many Asian teams. Cheerful salesperson Nicola (firstname.lastname@example.org) was amazing contact and sent us spare parts even to Slovakia.
JoinMax has amazing support and even though most of their website is in Chinese, I never had problem with customer support. They Robot Control Unit presents alternative for people who are fed up of limited resources offered in NXT. Robots could have as many as 20 sensors and all worked perfectly.
Moreover, JoinMax has well developed spare parts for robotic soccer players (kickers, sensors, wheels). Even though robots then tend to be standardized, it is amazing platform to start with.
Last thing was programming IDE, which worked well in both icons and scripts and moreover actually combined these two. There were slight problems on our side when we started using it (manual was not that clear) but we found our way. We spent summer developing new players.
IMC robots then became smart, fast and powerful. As robots could find a ball for as long as 1 meter and were perfectly coordinated by their omnidirectional wheels and compass, there was no chance LEGO could beat us. We had two robots and even though they were not communicating with each other, they were well synchronized. Goalkeeper issue was returning exactly to the middle of the goal (he was smart and had enough sensors but sometimes too powerful so he run through or get stacked). Attacker was piece of art and was able to move fast, grab the ball and even kick it to the middle of opponent’s goal.
We participated in RoboCup Graz 2009 in new category of robotic soccer without boards. There was thus a notion of OUT which benefited opponent once you pushed the ball away.
Robotic games were well balanced and there was never a notion of a cheap goal. As robots were fast and games long, there were often a lot of goals scored. Problems such as “nobody can see the ball” were long gone. Only way how one could score was to kick fast or to wait for goalkeeper to make an error and leave the goal.
In 2009 I also wrote a project entitled Robotic Sumo Simulation, which I was presenting at Eskom Expo for Young Scientists in Pretoria, SA. After coming to Oxford I shortly considered joining OxBlue and work on robotic soccer simulations at Computing Laboratory, but other interests took precedence.
Robotics gave me so much in terms of problem solving, computer science and logical or technical thinking. I spent hundreds of hours building and designing these machines, whether for soccer, sumo or any other tasks. I gained invaluable skills that I will never forget.