Part of a slow-coming but technically proficient series of diary entries from the RoboCup 2007 competition:
–Day Zero
–Day One
–Day Two
Another 7 A.M. start. This time, I arose from a different bed in our luxury suite. We had consolidated our four palatial mansions down to two, and so Nick Dunn and Mark flooded Jesse and my domain. I had the master bedroom the night before, but gave it up so that I could have a bed to myself in a smaller room. Getting up wasn’t that hard; there were things to be done.
We, as usual, made it to the Fox before anyone else. Being located across the street to the venue certainly gave us an advantage, albeit an expensive one. We got to have 30-45 minutes of solid debugging with all our dogs out on the field before others started to encroach upon space. Things were working pretty well. I can’t remember finding any serious bugs then, mostly because we hadn’t played yet. We were scheduled to play @ 14:30 against Jolly Pochie.
The games started off @ 12:00 with the defending champs and aussie-blokes the NUbots beating the BabyTigers 9-0. Despite the high score, they didn’t look that great. Mike was kind of freaking out on the sideline, and they were making a bunch of mistakes — kicking the ball towards the goal on the opposite field, etc. Looks like they’re hyper-tuned vision system was a little bit too tuned. Still, they dominated.
The Germans played @ 13:00 against ARAIBO, the most spirited team in the tournament. These guys were bloody awesome. They cheered, yelled, and were very fun. Fortunately for them, the Germans played awfully. The germans decided to do full onboard logging, which drops their FPS to about 20-25 (reduces the speed in which they make decisions), to get some video from the game. They were confident they could win easily with this logging turned on, and have some useful debugging information. They were wrong. Their grab turned to dust. They didn’t score any goals and gave ARAIBO, much to the cheers of the crowd, some real chances (‘GO, GO, GO!!!’). The GermanTeam turned off logging @ half-time and played the rest of the game normally, but still only notched 2 goals. It was a wake-up call for them, they admitted, and to be honest, a kind-of lame move. Slowing down your robots for some in-game footage for a real match is a bit over-the-top. A bit dodgy, as Mike would say.
— FIRST GAME — JOLLY POCHIE —
The next notable thing that happened this day was our game against Jolly Pochie. I don’t remember any real wireless issues before that came, but there may well have been. All those stressful moments seem to blend together.
The game started, ironically, without a ball to play with. The referee blew the whistle, but neglected to put a ball down on the field. We notched our first goal fairly quickly, missing one grab that went OB (out of bounds), but keeping the ball near their end and following up after a shot that we grabbed right on the post that thankfully flailed into the goal instead of away from it. We were able to dominate control of the ball, either grabbing it or at least moving it in a way that favored us. Jolly Pochie used an innovative kick where you approach the ball from the side and the kick using the outside of your leg, with a swipe. I had seen this kick used by ASURA in Bremen. I like it for certain situations, but Jolly Pochie tried to line up with it consistently and we were able to beat them to the ball and grab before they could set up.
We have a bit of a fracas with the refs, again, when they hesitated to put the ball down on an OB by us, placed in the wrong position, then let play go on for a few seconds, got yelled at by Jolly, and then picked the ball back up and placed it properly. After the ball is placed, you leave it. As usual, we feel like passionate defenders of truth during the heat of the moment, but after watching the video, we just come off as passionate jerks. We scored a few minutes later on a shot that lands near the goal, grabbing it and spinning the wrong direction but hitting it in. 2-0.
Jolly Pochie doesn’t seem to grab, but instead take their time to setup a variety of kicks that they have to line up. After one of their connections with their back-leg swipe that lands right in front of our box, we get a nice grab from our defender that clears the ball nicely. Then after a few back-and-forth episodes Jolly connects on a solid shot towards our keeper that he valiantly stops. Jolly storms after it and then hits the ball in this weird, slow rolling floater that literally curls around our goalie. Having a hard time with slow moving shots, he just sort of watches it roll into the goal. Very odd. 2-1.
We’re really localizing great on READY state — when we position ourselves between points. Going exactly where we want to go. That’s nice. Guess all that vision and localization work payed off in June. The NUbots, earlier, were having a much harder time getting to their spots. High-Five!
At about ten minutes into the video, we have a close encounter between our defenders and goalie, neither of whom want to claim the ball and clear it out. Thankfully, we survive it. One thing I notice later, after some good shots on goal by us, is that our offender seems to be getting in the way. Right before half-time, he gets right in the way of a ball that’s going in. Now that sucks. I blame some pushing, and probably some over-zealous positioning our on part to have the offender be the outlet pass-man. He probably needs to be placed more out of the way, more often. Half-time.
We switch to red and it’s clear that we’re having a problem on kick-off when we are defending. Our basic strategy on kick-off is that our middle dog goes for the ball. However, it seems like spinning in circles is more suited to his interest. We would investigate this later, and it turned out to be a vision problem. The way the lights were sorted out to bring more light to the field was to put beamers above each goal shining towards the center of the field. Well, if you looked from one end, it was pretty hard to see a ball in the middle of the field (exactly where we start out on defensive ready state). We tried thresholding around the problem, but to no avail. Later, I came up with a simple behavior hack (if right after kickoff, and you are the chaser, just keep running forward looking for the ball).
Goal Three would come a couple of minutes in after another bad ball placement by the ref. A really nice defensive clear let to an almost catch by the offender. He bobbled the first one, whiffed the second, but got the third (thankfully, not moving it backwards to far). He took a shot that went past the defense, followed it up, and somehow dodging was triggered, but shouldn’t have, and he strafed his way to a goal. 3-1.
We had a bunch of ball-capture issues. Let me explain. So, our robots need to know where the ball is. Particularly, those robots that don’t see the ball. We use a localization system known as an Extended Kalman Filter. It has a problem with the way we play RoboCup: sometimes the ball can be picked up by a referee and placed in a completely different position. Our filter doesn’t like that: it thinks the ball is somewhere, and then all of a sudden it’s somewhere else. Initially, the filter distrusts this new information. Why did the ball suddenly move? Maybe it’s a fake ball! After a second of two, the filter believes that this new ball is the real ball, and decides to trust it. That’s why our dogs have hesitancy when the ball goes OB over the back-line, and is placed at midfield. This would be one of our weaknesses all tournament.
Goal Four came from some pounding near the goal and a nice shot at the top of the box with our offender thankfully getting out of the way. In this series, we had a couple of false balls seen while we had the ball grabbed. Chown would look at the color table while I would raise the threshold for how quickly we chased balls when we thought they were underneath our chin. 5-1 would be on a pathetic series in which we whiff like 14 grabs in a row that happened to land in the opposite goal. Goal Six came with a great shot on goal with a great save right on the goal line, a messed up dodge routine, then a sweet grab as it was going out and a curving strafe that we nailed into the goal as the goalie got bored of us. This is one of the few videos in which we show our dog’s localizing to their spots, and man do we look good. I could watch them localize all day.
A really nice dodge after the kickoff. A ‘true’ dodge in which we recognize the obstacle enough before nearing it that we were able to sail around it. We had some really nice play also but some lucky breaks near the opposite goal. Goal Seven basically looked like a set play, where we passed the ball, but didn’t catch it, and the waiting offender went after it, grabbed, and scored. Check out that goal around 21:30 of the video. What was good about this goal was that we grabbed right in front of the goal backstop, and then shot it immediately. This is good, because we didn’t carry it over the line, nor diddle around waiting for the goalie to come around and get in the way. When you have a shot, you have to take it.
Another really nice sequence came with the a missed grab near our own goal. The grab knocked the ball into our goalie box. The goalie responded by running into it out of the box. Our defender then swooped in, grabbed, and cleared.
So, the final score ends 7-1. My and Tucker’s Parents shouted happily from the balcony. It feels good to win a game again, considering how long you have to wait in the RoboCup cycle (basically once a year, twice if you’re lucky) to actually play games. We went off to go work on a bunch of stuff.
— SECOND GAME — AUSTIN VILLA (test match) —
This game came about because there was one pool with two teams: CMU and AustinVilla (texas). So, we got to play in an official test match, one that didn’t count but we got the field reserved and stuff. Joho was the ref, and so we gave him crap the whole time. The texas guys are great folks, so it was fun to play against them, and test out stuff.
Our initial drives were pretty good. Our sweet pre-programmed dodge at the kickoff worked pretty well, and we were getting really good shots on a really good goalie. We were testing some new ball capture code. Doesn’t look like I wrote the behavior hack for defensive ready state yet. This field had some great mountainous ridges of carpet. We controlled the ball really well. We went up 3-0 from their goalie being caught out-of-position. Texas was having a lot of vision calibration problems stemming from not having a vision person accompany them on the trip. Mohan, their vision guy and the heart and soul of the Four-Legged League, was home sick from traveling too much pre-RoboCup.
5-0 off some more sweet team play. The fifth goal came from a really nice 1-2 sequence from our middy to our offense, that nailed it in. Our grab looked really good despite playing on Field A (all of our other games were on Field B). 6-0 ended half-time from a shot from HALF FIELD. Never seen that before.
After half, we had a terrible grab near the goal where we line up to take the shot, but then spin completely around and kick the ball the wrong direction as soon as we get in the box. More on this bug later.
At one point in the video I hear myself yelling ‘DEFENDER! Where’s the Defender?!!’, to which Jesse wryly responds: ‘I said we’d never have two defenders, but I never said we’d always have one.’ Funny. I think I’d rather have the first one, however. 8-0 after a sweet completed pass. I remember Greg, from CMU, coming up to me asking: ‘So you guys can pass?!?’. I wanted to say ‘Of course, can’t you?’ But instead I said ‘Well, we really just sort of line them up for a pass and hope it happens’ — which is the truth. Game ends 9-0.
— EVENING —
Can I remember what happened on the 4th night in Atlanta? No. Maybe more swimming. No debauchery.
Pingback: Post-RoboCup 2007 Diary: Day Two at Northern Bites Blog