As was mentioned earlier, we participated in the 2011 APEC MicroMouse competition, held at the Ft. Worth Convention Center. 

First off, the convention center there is HUGE!  It could probably host the Democratic or Republican National Conventions in a presidential election year--it's that big.  We finally found where we needed to be, about an hour early, just as the APEC folks were about to start setting up the competition field.

In the earlier post, I compared our robot to the others competing as being like a '62 Chevy pickup in the Monaco Grand Prix, and that's just about right.  Our LEGO Mindstorms NXT-based robot (straight stock except for running RobotC instead of the 'factory' NXT-G programming language) was big, blocky, and chunky; all but one of our competitiors were purpose-designed and -built robots, small, very low to the ground; most were right around 100 grams in weight (though one was just 77 grams!).  The other one appeared to be a modified kit robot designed for the MicroMouse competition.

Well, we were clearly outclassed!  But we did our best. 

The field of competitors was, except for us, college students, professors, and professional engineers.  Our youngest team member was 15; the next youngest team member from the other teams was a 25-year-old graduate student from the University of Tokyo.

A quick description of how the MicroMouse competition works is in order.  Each team has 7 minutes to run as many trips through the maze as they can in that time.  Both the best time and the average time are recorded, and scoring is based on these.  The maze is a 16 x 16 grid with each grid measuring 20 cm by 20 cm (about 8 inches), so the full maze is 3.2 meters ( a little over 10 ft) on each side.  The maze is built using movable wall sections held in place by friction between pegs.  The outer walls of the maze are solid; there is no way to leave the maze.  The objective is to reach the center 4 squares of the grid in the fastest time.

Competitive robots map their way to the center, and then calculate the fastest route (which may not be the shortest route!).  They then return from the center to the origin, and then the high-speed runs commence.  The fastest time was 10.27 seconds, and the robot was reaching speeds on the straightaways of more than 3 meters/second--which was blindingly fast!  In fact, the real problem with those robots was traction--the robots had trouble holding onto the track as they zipped around corners, so most teams would use a lint roller to remove any traces of dust that the tires may have picked up on the previous run.

Well, our NXT definitely didn't have that problem!  We never did solve the intellectual problems of figuring out how to make our robot 'smart enough' to navigate its way through the maze (and still haven't, to this day).  So we had to resort to a robot that makes random right or left turns when it encounters a wall.  But there's more to it than that, and our solution was a surprise to our much more proficient competitors.

You see, the NXT servo motors have the capability to count every degree of rotation, 360 degrees per rotation, and this can be used in a number of ways by the programmer.  You can turn a precise number of degrees, or you can synchronize two or more motors to turn at exactly the same speed.  Or at least you can with brand-new servo motors.  Ours, from a robot kit that's seen 4+ years of service, aren't exactly new.  So they would try to synchronize, but just couldn't be trusted to do it.  So our robot pulled to one side.

This pulling or drifting led our robot to periodically get hung up, as it skittered along a wall or stuck it's touch sensor in a corner.  The synchonization problem was something we could not overcome, short of buying brand-new servoes (which we could not afford), so we had to find another solution to the problem.

There is a timer function available in RobotC, so we used that.  If our robot had gone 10 seconds without tripping the touch sensor (by bumping into a wall), we programmed it to stop, back up, and try to turn again.

So Bill Shenold was picked to start our robot in the maze.  He pushed the big orange button on the NXT brick, and away it went.  And it immediately began drifting to the left, skittering and chattering its way along the wall, to the sound of various 'ooohs' from the audience.  But then, after 10 seconds was up, it stopped, backed up, realigned with the maze, and proceed on its way.

The audience gasped!  They were amazed!  Apparently this sort of error-handling behavior has been unheard of in MicroMouse.  Suddenly everyone wanted to know more about us, and how we managed to make our robot correct its mistakes.    Bill, somewhat shocked and taken aback, mumbled an explanation of the motor encoders and timers.

One of the engineering professors asked how much programming experience our team had; Bill replied, "About a couple of months."

But our one minor triumph was short-lived.  Our robot never did make it very far into the maze, getting stuck bouncing back and forth between walls as it randomly bumped around the maze.  Our 7 minutes were up, and we never did make it to the center.

So we were relegated to being observers for the rest of the competition.  It was just incredible to watch how the other robots stayed perfectly centered in the lanes, zipped down the straightaways and whipped around through the corners.

But there was another surprise in store for us.

Both before and after each robot's run, they were all placed on a table for viewing by the audience.  There were a few kids there too, and the one that seemed to hold their attention the most were not the Formula 1 speed demon robots--it was our LEGO NXT!  I guess that being a LEGO product, it was something they were more familiar with, and more accessible to kids.

It was a lot of fun, and totally unlike the OKBEST competition we participated in last October.  That one was a madhouse, people running around back and forth, lots of loud music blasting over the PA system, teams chanting and shouting encouragement.  MicroMouse could not be more different.  Here, it was nearly silent; it was almost like a professional golf tournament, with only occasional cheers when a robot found the center or a collection of gasps and 'awws' when a robot spun out on a turn and hit the wall.  But the tension in the air was extreme!

All in all, it was probably a little too great a stretch of our abilities--at this time--to compete at this level, and there's no way that an NXT-based robot could be competitive against miniature racers like we were up against.  That's not to say that an NXT-based robot couldn't finish the maze (though according to David Otten, the MicroMouse chair and a professor at MIT, no NXT-based robot ever has).  We'd like to be able to compete next year (and next year's competition will be in Orlando, FL!) but we'll probably want to look at buying a purpose-designed kit robot intended for MicroMouse.