Day 2. The Second Day. RoboCup World Championships 2007. Here we go.
This day was by far one of the most infuriating days in RoboCup history. It all came down to the lighting. First off, we only had three fields. Three fields for 24 teams. Last year in Germany they had four fields, and none of them were practice fields. They were all game fields. Secondly, the lighting, even by the morning of the second day of set-up, was horrid. The lighting inside the Fox was really dim to begin with — I myself had deluded visions of ghosts past in the team room — and the beams on the fields were not enough. Joho was up there on those ladders with his flip-flops in hand finding lighting solutions with Naomi, the spunky NUbot vision guru. We all got to the venue @ 7 am to meet with lighting guys who were supposed to show up.
The morning was kind of a blur, as of course the lighting guys didn’t show up right away. The lighting guys came, and after much appeals from myself and Chown-Dawg, a real boss came and was not happy with the progress. He sent out for more lights, the best solution we could think of, and when they came back, things started to click in. The new lights were, according to Joho, what we needed.
I started to decompress a little bit. In the morning I couldn’t do much, and so I kept walking back and forth between team tables to spread the mulitlateralism that America is so famous for. I hung out with the Germans, the Ozzies, the CMU dudes, and the Texans. Mike and his professor that I had heard about, but never met — Rick — seemed to be consistently busy. They were working stuff on a cool-looking localization debugger. Rick, as Mike so eloquently puts it, ‘shits Jacobians’ — which is pretty impressive. So I kept floating over to the German table. Some were working on stuff with their killer debugging tools. Others were surfing Kotaku. others were skyping; others, well, were reading something german.
Here I got to bond with Max Risler, a Darmstadt coder who I found out was basically the defacto captain of this year’s team and who had by far coded the most stuff this year. It’s true; they showed me the svn logs. He’s been a RC’er since 2001. He showed me their ridiculous debugging tool that is light-years ahead of ours. For those not nerdy enough to know the importance of a good debugging tool, or to know even know what a debugging tool is, let me enlighten you. Debugging is the fine art of figuring out what’s messing up your crap. Knowing what’s going on gets more and more important with the complexity of the task. We have tens of thousands of lines of code; we need a good way of abstracting how it runs and easily figuring out the causes of things we observe.
In RoboCup, this breaks down to a few key sections: vision, localization, motion, communication, and behavior. For example, say our dog shoots the ball off-field. “What in bloody hell happened, you dumb, soulless cretin?”. Did you see something that looked like a goal, but was in fact one of Joho’s flip-flops? Was your localization way off, and you thought you were skiing the slopes in Aspen? Or was it your divine intelligence that led you to believe that your mission in life was to kick the ball off-field and to continually annoy your human overlords? This is a process we go through repeatedly in various stages of depression and curiosity. The germans have really good software that helps them figure this out: every single ‘frame’ (or thought-cycle, thought-process, whatever) they are able to view the image their dog saw, where the dog thought it was on the field, what message the dog had sent and received, how fast the dog was moving, and exactly what behavior code the dog was operating. This ability gives them a big advantage. The downside is that they become too dependent on debugging, and less on actually watching the dogs do their stuff. Also, they have invested significant time into this tool.
So, back to Max. He showed me RobotControl (I think it was called). He asked me questions about how we coped with certain problems, which I took as a sign of me being legit. Of course, I had no idea of how to deal with any of his issues, but it was still interesting. Later that day, I showed him our team’s debugging tools. He was very kind and I didn’t detect any obvious sense of embarrassment for us.
As I kept hopping back in forth between RC tables, Matthias and I started shooting the hay. Matthias has the remarkable ability to deadpan. Half the time I can’t tell if he’s messing with me, being serious, or just can’t translate what I’m saying. Either way, it was today that we had the first of our video interviews. I reckon most of the questions related to nBites progress since the German Open (they were really afraid of this, since they had changed very little). Two minutes after I left ze German table, Matthias found me again for more questions he thought up. He was enjoying this. It would only escalate.
After the field light situation came up, I finally got a color table to test with the dogs. They had the power of sight, now, and I did my ceremonial ‘let’s watch the dog grab’ routine. He did, and I could sense people watching us. We looked good. Especially later that night, when in the middle of 6 or so other teams using the field, one of the nBites dogs could run out into the middle of the field, right to its spot, without any problems. I got a few ‘self-localization??’ exclamations from the asian teams. It felt good.
In the afternoon, Mike got our pool assignments rolling. We were paired up with Jolly Pochie and FC TWaves. We also got the fortune of an extra scheduled game: UTexas. Because one team, DEN-INU dropped out, we had 23 teams and one first round pool of 2. They wanted a quality team to play, and we are all about quality.
That night we had our first test match against the dreaded germans. They love to test match. They wanted to test match us the first night when we couldn’t tell an orange ball from a ham sandwich. We declined then. You can watch part of the test match here: http://www.youtube.com/watch?v=AqclRmMCyWA
It was in this game that Henry’s stress level would rise again to perilous levels. The culprit? The wireless.
So it turned out that the wireless routers giving to the league by the Atlanta people really sucked. Everyone turned out to have wireless problems at one point or the other, slowing down games and even causing wireless dropping during the games. For some reason we had to rush over to play the germans with four sticks made — I think they were looking to scrimmage someone else but they had backed out and wanted to scrimmage us all of a sudden. We threw our four dogs out there and booted up. Only two would talk to each other (we knew this thanks to cool LED debug pattern inspired by the NUbots). We tried booting up again to no avail. Time was short on the field as other teams wanted to play, and so we just threw our two dogs out there. They started playing and the Germans got two quick goals. We put our goalie out there without any communication. Then, remarkably, we began to hold them. We even scored one, and they scored none while we had three dogs out there. They were logging and dropped frames, but we definitely rattled them. We were going to compete against the GermanTeam.
That night we retired to the rooftop pool, 20 stories or so up. It was a really strange night; the weather looked like it was ready to storm. There was an even taller building sprouted up next to ours that looked like it was straight out of ID4. Jesse said that it was the portal to the underworld. The pool had a really nice spot where a hot tub would fit nicely, but there was no hot tub. The bottom of the pool shook as you walk on it, vibrating the steel beams underneath.
As we floated in the pool, I became increasingly worried with the wireless situation. It seemed like the hits would just keep on coming: first the lighting, now this. “Tomorrow, will all of our robots simultaneously de-combust?”, I asked. Everyone else seemed less stressed out. We retired for the night, anxious to start our round-robin the next day.