MonthJune 2012

RoboCup Mexico City 2012

Almost immediately after the conclusion of the North American Open, the Thunderbots team flew to Mexico for the next competition.  Everyone woke up super early (in fact so early that the sun hadn’t even come up yet) and arrived at Vancouver International Airport at around 5:40 in the morning.  We flew from Vancouver to Dallas/Forth Worth and then to Mexico City.  Walking through that tunnel to board the plane gave a brief sense of deja vu – it felt exactly the same as the time I flew to Germany.   It was a sudden realization that I would be leaving my home for the next little while and staying in a foreign place.

Flying to Mexico City

When we got to Dallas Airport, we had a stopover of few hours, so we decided to have some Texan steak – or at least as Texan as we tried to get without leaving the airport.  We ended up at TGI Fridays.  It was the first steak that I’ve had in a long time, and I definitely could use another one.  The steak even came with “Jack Daniel’s Sauce”, which made it that much better.

After eating, we met up with two others on the team who had flown from San Jose and Toronto.  After a four hour flight to Dallas, and other few hours of stopover there, we had to fly for another two and a half hours to get to Mexico City.

As my friend said, “it’s like China happened”.  The Benito Juárez International Airport was probably the most disorganized airport I’ve ever seen.  It’s as if every single flight landed at the same time.  The lineup to grow through customs took at least forty-five minutes.  During this whole time, everyone was tired and wanted get their sleep.  A lot of the people on the team hadn’t slept the night before (rather than sleep 2 or 3 hours to wake up early for the flight right?).  While in this lineup, we saw a couple of other RoboCup teams landing as well (Skuba, MRL, among others).  After finally getting through customs and a security check, we got a ride to our hostel via transportation that we organized with the hostel prior to our departure.

Hostel Mundo Joven Catedral

The hostel we stayed had very nice staff that really cared about making its guests feel safe there.  It’s a common feeling among travelers to think that Mexico City is definitely not one of the safer places to travel to.  To combat that, the hostel had its own security guards, security cameras, and they even called legitimate taxi’s for its guests.  They even told us which direction to walk when leaving the hostel to avoid going to the shadier parts of town.  Furthermore, it was situated in the historic center of Mexico City, within walking distance of the Metropolitan Cathedral of the Assumption of Mary of Mexico City and the Plaza de la Constitución.  From some of the rooms at the hostel, there was a nice view of the cathedral.

Work Day

We spent the next day working on the robots to make sure none of the mechanical parts had been affected during the flight from Vancouver.  We had packed all the robots in a regular suitcase with packing foam all around it to protect it.  Looking over the mechanical parts, everything was in order.  The main things we had to fix were tightening screws, adjusting the wiring etc.  The software team had very little to do because they’ve written all the code they could, and just needed robots to test with.  The electrical team on the other hand, toiled tirelessly to troubleshoot all the boards and make sure they were all functioning properly.

RoboCup Begins!

We arrived at the competition venue, the World Trade Center at 8 AM to find a slew of other teams patiently waiting to register.  After probably an hour long wait, we all finally moved in and set up our work places.  When we looked at the field the robots would be playing on, we noticed that the organizers hadn’t yet set up the cameras yet (required for the robots to “see” where they’re going).  This meant that no teams could test.  Teams that were ready could only wait until the organizers got those set up.  Because of this delay, the games had to be delayed as well.  This gave us more time to get the robots ready.  For the next little while, we were the first team to arrive and the last team to leave everyday.  The electrical team needed all the time they could get to finish everything.


Because we had already finished most our maintenance work the day before, there wasn’t a whole lot we could do.  The electrical team had to continue working on their stuff to get as many robots ready as possible.  For the next day and a half, we let the electrical team do their work and we’d help them along the way by replacing parts that were broken (encoders and such).  Otherwise, there wasn’t much we could help with.

Food for the next Week

When we got hungry during the competition, we did a little bit of exploration to find food.  Eventually, all the teams wound up at the same shopping mall for food.  There was a supermarket downstairs to buy water and a food court upstairs with a variety of foods.  We went to this mall pretty much everyday for as long as we were at the World Trade Center.  One day we’d try Mexican food, other days we’d try plain-old hamburgers and other days we’d try even Chinese food (at least the white person’s interpretation of it).  It wasn’t really healthy for us, but we figured it was only for a week.

For dinner, most teams ended up ordering pizza from the nearby Domino’s.  We ate it so much that everybody got sick of having pizza.  Sometimes, we’d have dinner with other teams at our hostel restaurant so we could get to know them a little bit better.  After all, the competition is more about mutual learning and robotics advancement rather than about winning.

Let the Games Begin

Because our team wasn’t that ready to begin with, we had to forfeit our first game against the Immortals from Iran.  By the time we got three robots up and running, we played against the RoboJackets from Georgia Tech.  They only fielded five robots out of the total six.  For most of the game, both teams played pretty evenly, despite their two-robot advantage.  All was going well until one of the opponent’s robots chipped the ball that hit the top of one of our robots, bounced off and rolled into the goal.  In that particular situation, the referee had called an “indirect free kick”, meaning the shot, even if it went in the net, would not count.  But unfortunately, that rule was not applicable because it hit off of another robot.  It was an unlucky goal for us, and we definitely could not score a goal to tie up the game.  We ended up losing one-nil.  For the next few days, we kept complaining about that goal.

In our third game, we played against RoboFEI from Brazil.  There were so many good scoring chances in this game from both our teams that made this game so intense.  Even though we were only watching machines play, everybody cheered them on.  We had four robots on the field this game and they all worked like a charm.  The mechanical system, electrical system, and the artificial intelligence worked so well together.  It was a great feeling for everyone on our team – to see our design work.  After almost a year of hard work, this was it.  We saw our robots move, intercept balls, shoot on the goal, etc.  A lot of the robot shortcomings from the North American Open were also dealt with, such as the problem of the break beam sensors not working, and the robot not moving accurately on the field.  When we scored, we cheered so loud that every single person in the room could hear us (there were probably about 1000 people in that room).  We all got an immense feeling of satisfaction in seeing our working robots score their first goal.  A few minutes later, the other team scored a goal.  It didn’t matter to us, we were still high in the clouds in terms of our mood.  The game ended 1-1.  Despite the tie game, everyone on the team was so happy in seeing our robots work, it didn’t matter what the result was.

This was a great morale boost for the team because for our forth and last game, we played against BRocks from Turkey.  This time, we had our full fleet of robots.  We played our first six on six game.  Yet again, we saw our robots work.  Nothing broke down during the game and everything just worked.  It was quite rare for us to just put our robots on the field and have nothing go wrong.  At one point, our robot shot the ball into the opposing robot and a piece fell off of it.  We knew our design worked when stuff like this happens.  This game was less intense for us than our previous game, but we did end up winning.  That put our record at 1 win, 1 tie, and 2 losses – a total of 4 points.  Unfortunately, this wasn’t enough for us to advance to the next round of the competition and as a result we finished 13th out of 20 teams in the league.  Not so bad for having zero working robots when we got to Mexico.

After the official games, we played a couple friendly games with other teams.  The first game we played was against the Mannheim Tigers.  The game was going well, until we found problems where some of the screws on the robot weren’t tightened sufficiently.  As a result, things well off the robot when we played.  It was quite embarrassing to see.  At least it was only  something minor like putting in a screw, and not something major like a design problem.  In our second friendly game, this time against ER-Force from Erlangen, we found some electrical parts frying randomly on the board, which wasn’t good either.  Out of six working robots, we now had three – still a net gain I guess.

After we were done playing, we watched the other teams play for first place.  From watching their games, it was clear that they played on a way higher level than we did.  Everything that their robots did were way better than ours.  Shooting was faster, chipping went further, robots moved faster, kicks were more accurate, etc.  Everything about their robots was just better.  There is definitely a lot we could learn from these teams.  The final winner of this year’s competition ended up being Skuba from Thailand, who beat ZJUNLict from China.  Both teams analyzed each others strategies for days, but only one team could come out on top.  And now for the fourth year in a row, Skuba remains the undefeated winner of the competition.

Other Leagues in RoboCup

During our idle time, we walked around the other rooms to see how the other teams were working.  RoboCup has many different competitions under its name, while our Small Size League competition is only one small part of it.  Leagues range from soccer robots, rescue, simulation, to even home care robotics.  In the home care robotics league, the competition involved a robotic navigating through a mock house to perform certain chores such as picking up objects to hand to people, speaking and hearing instructions, etc.  It was an admittedly difficult task to do for these robots, but many teams were quite successful at it.


Accidents Happen

Just like in the North American Open, there was yet again another accident involving batteries.  Except this time, nobody noticed and the whole battery lit up in flames.  Somebody just yelled “fire, fire!” and started trying to pat it down with something.  Knowing that I was too far away to do anything, I just took out my camera and snapped a picture of the whole thing.  Eventually, someone just poured lots of water over it to put our the fire.  In retrospect, that might not have been a good idea since water in an electrical fire is not really a good thing.  Nobody got hurt though, which is good.  Afterward, the organizers didn’t let us charge batteries nearby our work space anymore.

Some Design Shortcomings

Knowing that our ball kicker would be able to withstand impacts of the ball, what we had forgotten to analyze was how well the kicker would hold up if it hit a object fixed to the ground.  We found out the hard way at the competition after a few games when we discovered that our robot kicker head was bent out of shape.  We also had a lot of turf buildup inside the robot that was enough to slow down the wheel during the game.  This turf had to be cleaned out after every match.

For the kicking mechanism, the robot uses a solenoid/plunger mechanism.  Activating the coil would cause the plunger inside the core to move quickly to hit the ball.  A rubber band secured to the end of it would allow the plunger to return to its initial position.  The problem with this setup was that the rubber band would easily break and had to be replaced after every game.  When we took out the rubber band, we could always see cut marks along it.  In another instance, a chipper solenoid on a robot almost popped out.  It’s not really clear why this happened at all, but it could have been a screw that was not very tight to begin with.

RoboCup Closing

To close the competition, there was a soccer game where humans played against the middle size league robots.  It was pretty funny to see the robots struggle to take the ball away from people who could handle the ball way better.  At the same time, the humans were really scared of the robots since if a human ever got hit by the kicker head from the robot, it would break bones.  The robot goalie however, proved quite competent in blocking shots – better than the human goal from what I saw.  Or maybe the human goalie wasn’t trying very hard.  I’m not sure who won the game since I didn’t watch the whole thing, but it was still really interesting to see.

Afterward, all the teams packed up their things and waited for the closing banquet.  At the closing banquet, they served a standard meal for everyone.  It was a really good chance for teams to celebrate their achievements and finally relax a little bit after the competition.  Everyone deserved a rest after all of that.

First Real Tour of Mexico – Teotihuacan

After the competitions ended, most teams stayed an extra day or two to see the sights in Mexico City.  The organizers of the Small Size League were nice enough to organize a tour for everyone the day after the competition ended.  Most of the SSL teams went with us to the Aztec pyramids in Teotihuacan.  The tour first showed us how their predecessors used different plants and minerals to make tools such as knives and sewing thread.  That part was interesting at first, but I think what a lot of us really wanted to see were the pyramids.  Afterward, the tour guide led us to the gift shop.  For some reason, most of the people were so interested there, it took about an hour for everyone to finish so that we could move on with the tour.  After the gift shop, we finally made it to the pyramids.


After walking up and down the pyramids, we had lunch and went back to Mexico City to see the Basilica of Our Lady of Guadalupe.  This was one of the most visited Catholic shrines in the world.  But because I had already visited so many churchs and cathedrals from my tour around Europe, this part of the tour was less interesting for me.

Historic City Center

The team would fly back to Vancouver on the day after visiting the pyramids.  But before leaving, we made sure to visit the Metropolitan Cathedral of the Assumption of Mary of Mexico City and the Plaza de la Constitución.  In the plaza, hung a giant flag of Mexico.  This is where the city center used to be, at least during the 19th century.

Going Home

After 10 days in Mexico, we all longed to go home.  It had been a long week – full of stress, adrenaline pumping excitement and overall a good experience.  But after all that, we were ready to go.  We flew out in the afternoon from Mexico City.  Apparently, at around the same time that we were at the airport in Mexico City, three cops had been shot to death.  While we were there though, we didn’t hear anything of it.  We safely arrived in Dallas for a brief stopover and arrived back in Vancouver at about 8:30 PM, just in time to go home, wash up and go to bed.

RoboCup Small Size League North American Open 2012

From 9 to 16 June, the RoboCup Small Size League North American Open 2012 was held in Vancouver, Canada at the University of British Columbia.  There were three participating teams: Thunderbots (University of BC, Vancouver, Canada), ER-Force (Friedrich-Alexander-Universität Erlangen-Nürnberg, Erlangen, Germany), and ZJUNLict (Zhejiang University, Zhejiang, China).  This was the chance for these three teams to pit their robots against each other in preparation for the even bigger RoboCup competition in Mexico City.

Beginning of the Competition

On the first day of the competition, there was a work day for all the teams to use to get their robots ready again after a long flight to Canada.  As the current mechanical team lead for the Thunderbots, I too had to get our own robots ready to play.  The mechanical systems had already been completed some weeks ago, but unfortunately, even now, the electrical board testing and firmware coding still had not been completed yet and some parts that we needed were still not in.  For the next day and a half, the team was scrambling to get everything finished in preparation for the first game on Sunday.  Because, the only critical tasks remaining were the electrical testing and coding, only the electrical team had the know-how to tackle those tasks.  The mechanical and software teams could only wait for results.  As the electrical team worked, everybody else on the team became more and more stressed.  We all kept wondering whether the team would have working robots for the first game.  We were all helpless in this situation.  The electrical team worked throughout the day and night trying to finish.  Some of the other team members stayed in anticipation while others went home to rest hoping for results in the morning.

Throughout this work day, the Chinese team continued testing their robots on the field.  They seemed like the most ready team.  The German team however, had lots of work to do as well.  Their flight to London from Germany was delayed and as a result, they missed their flight from London to Vancouver.  They arrived in Vancouver on Saturday night.  They  had even less time than we did to get their robots working.  When each team set up their work space, they each made sure to put up their mascots.  For the Chinese team, they had a panda plush of about 1.5 ft tall and the Germans had a full size German flag.

Game Days

On the game day, I woke at up 5:30 AM and arrived bright and early on campus at 8 AM.  When I arrived, the electrical team was still at it and seemingly not even close to finishing.  This led to a change in the team’s strategy to the competition.  We would try to repair the electrical boards from last year’s robots.  These old boards had a different size than the new ones and had different mounting holes, but luckily, somebody on the team had the great idea of including mounting holes for these old boards for this year’s robots.  Otherwise, we would have had a really hard time hacking that together.  Given only the few hours we had to hack this set up together, the mech team and I worked as fast as we could to finish.  We each probably ran up and down the stairs at the UBC Engineering Design Center about 20 times that day looking for tools and delivering robots.

The first game was supposed to be at 9:30 AM, but my team certainly was not ready.  It seemed like the other teams weren’t completely ready either, so the game was postponed until the afternoon.  The Thunderbots was supposed to play the first game, but due to our lack of readiness, China and Germany played each other instead.  When it became our turn we play, we managed to get three robots out of six on the field.  None of these robots had a working break beam sensor (the sensor on the robot that is designed to detect ball possession).  Without break beams, the robots did not know they could kick the ball, since it would never know if it had ball possession.  The robots did not have a controller that worked well either (the controller determines how much voltage to apply to each of the motors such that the robot can move smoothly from A to B).  A controller that didn’t work well meant the robots drove about on the field seemingly confused.  “Derp” is probably the best word to describe it.  Despite the shortcomings of these three robots, they played their best against ZJUNLIct from China and the Thunderbots were defeated 10-0.

On the following few days, the mech team tried to help the electrical team the best they could with tasks such as building extra connectors.  We also tried to get the old break beam sensors working again.  It was something that had to be on the robot if it were to ever kick the ball properly.  After toiling for a few hours, we managed to get two out of three of them working.  We probably could have gotten more if we knew more about the electrical design.  There was little to go on in terms of the wiring schematic and spare parts.  It was also hard to troubleshoot since ambient lighting largely affected the sensor.  If it worked upstairs in our work space, it wouldn’t work downstairs on the playing field.  It took us a while to figure that out.

In our second game, we played against ER-Force from Deutschland.  For this game, we still only had three robots, but this time they were a little bit better equipped.  Even then, the robots still had trouble kicking because the lights being used on the field emitted too much infrared light, which obstructed the break beam sensors.  It was very frustrating to see the robots not knowing when to kick even though they were handling the ball perfectly. But somehow, we still managed to score a goal.  In the end we lost the game 6 to 1.

In the final game between China’s ZJUNLict and Germany’s ER-Force, the Chinese team was victorious.  Both teams had a full fleet of robots to play six on six.  A modest crowd of spectators also watched the whole game being played and in general people were quite impressed at this engineering feat.

Team Social

To allow the teams to better know one another, there was a social event planned by the organizers of the North American Open.  There, I met a lot of the members of the German and Chinese teams.  It was nice that that I could talk to each team in their native languages.  Although my German wasn’t that good to keep up a conversation for a long time, it was enough to get the Germans wondering how I knew it at all.  The last thing they’d expect is for a Chinese guy to start speaking German to them.  My Mandarin was at a level that I could talk to people in it, but there were still some occasions where I didn’t understand what they said.  It was probably because of me not having a lot of practice with Mandarin (I speak Cantonese normally) and them having an accent from their region that I didn’t recognize.

Press Conference

The organizers made sure to invite as much of the press as they could.  More publicity meant that the team could potentially get more money in sponsorship.  More money means better robots.  The administrative members of the team were in the spotlight and talked to most of the people from the press, while the technical members of the team continued to do their work.  The team leads from mech, software and electrical also had a brief interview with the 24 Hours Vancouver newspaper and ended up in this article.  The team was also featured in the Ubbyssey here and on MacLean’s magazine here.

The Chinese team also put on a show for the press by putting all 12 of their robots on the field so they could they play against themselves six on six.  The performance went quite smoothly as there were not random break downs and the press were very impressed.

Engineering Failures

As with these student projects, an accident was bound to happen.  This one was with a battery.  There was have been a defective battery that the Chinese team unknowingly brought and when they charged it, the battery started puffing up – not a good sign for a battery.  One of our team members was quick to notice and instantly dunked it in soap water and disposed of it.

For our team, we had problems where the solenoid kicker would get stuck after being used repetitively.  Heat from the power dissipation in the solenoid windings would heat up the whole assembly and cause the solenoid housing to permanently deform.  The solenoid was produced out of stacked layers of poly-carbonate sheets.  This stacking of layers allowed each layer to deform individually.  To fix this problem, we printed out new housings made of ABS plastic.  By having one solid solenoid housing, it was more difficult for it to deform.

The German team had some problems with the turf getting dug out of the carpet and getting everywhere inside the problem and also with their robot shells not staying on properly.  The turf inside the robot meant that gears could get stuck intermittently and could also get in the way of other mechanical components.  Their solution solution for now was to clean it all out every game.  During games, the shells of the robot would pop out randomly whenever there was an intense impact with a ball or another robot.

Getting Ready for Mexico

On the Friday before all three teams left for Mexico City, everybody had to pack up all of their things.  The German and Chinese teams could pack everything easily since they had packed everything once before when they had to fly to Vancouver.  For us, our tools were scattered all over the place.  It took us about 4 hours to find all tools to pack into the the luggage containers.  The approach to packing was that we would pack any tool that was ours and was already lying out on the table.  This is because if we took it out of the tool closet, it meant that the team used it for something.  Naturally all of the hex keys, screw drivers and the like were packed.  All spare parts were packed.  Every tool that we had sitting around was packed.  Even electrical equipment like a power supply and an oscilloscope was packed.  We had everything we needed for RoboCup 2012 in Mexico City.  Even though not everything was done in time for this competition, everybody was confident that things would be better in the competition in Mexico.

© 2017 Henry Poon's Blog

Theme by Anders NorénUp ↑