Scout at RoboMaxx
October 9, 2004
The contest was run in a live parking lot, so the terrain was flat, but the shortest route to the cone was about 340 feet, much farther than at Robothon, and cars were moving in and out of spots creating new obstacles. Although four robots signed up, I was the only competitor who showed up, so it was all up to me and Scout (not to spoil too much, but she performed better than I did). Still, it was educational to try Scout out on another course.
We had improved Scout since Robothon. She now uses the encoders to estimate speed and adjust power accordingly, so she can run on uneven ground at approximately constant speed. (Not so difficult in a flat parking lot!) We also added a sonar device, but in working on the obstacle avoidance software, I found that running the sonar caused problems with the encoder signals, making it impossible to use both. So, I had to turn off the sonar.
We also completed the mapping software, so I can type the GPS coordinates into a text file then run a graphical program to map out a route with point-and-click, then another program munches the list of segment lengths and turn angles into the data records the navigation code uses. So, no more mapping out the route by walking the course.
My runs went poorly. In the first run, I botched my build process and ended running my test course, which makes two short turns and stops, so I basically drove the wrong direction straight into a puddle and looked pretty stupid.
So, I figured out my mistake with building and downloading the program (hey, I got three out of four steps right, that should count for something). Also, a new row of cars had appeared in the parking lot, so I adjusted my course to go around them.
On the second run, it ran the right program, but turned too soon and headed straight toward the row of cars. I groused about the changing course, and Jeff took pity on me and let me redo the run with a quick adjustment to the route. I just pushed out the first turn more and reran, with only a slightly better result.
This was very puzzling to me, I couldn't imagine why the robot was turning too soon. So I looked at the route I laid out in my mapping program and measured off to where Scout turned, and found she had done exactly what I asked for. So, I used the GPS to get the coordinates of a safe turning point well out of the way of the cars and added it to my map, but it didn't appear in the right place relative to the other points. After some double-checking, I realized that the GPS coordinates were so wrong that my resulting distance measurements were basically useless. I mapped out a turn at 20 feet, but where I really needed to be was more like 60 feet.
I concluded that GPS coordinates with 15-20 foot error margins are useless at laying out a route. Obstacle avoidance could solve the running-into-cars problem, but there are probably always going to be big problems if you can't judge relative positions to within less than 50 feet.
I gave up on GPS and used the odometer to measure out a manual run. This time it ran and made significant progress, but got stuck on the third leg due to slight overturns on each segment. I had calibrated the rate gyro pretty carefully that morning, but the clouds had disappeared and it was sunny and warm. The gyro is temperature sensitive, so that may have been part of it.
On the "third" run, I actually had a route that had a theoretical chance of working. This is where I should have been on the first run. My course was, "go 64 feet, turn right, go 129 feet, turn right, go 168 feet, turn left, go 30.5 to the cone" with all turns being 90 degrees.
There was a crowd of twenty or thirty, and I wanted the practice, so I offered another run. I adjusted the rate gyro calibration and ran again. This time it started the third leg on a good heading, but suddenly turned way too soon and headed straight into a wall about 20 feet short from where the correct turn was, which put us straight into a building.
Again, I was mystified at the early turn, so I paced off that segment again, and discovered that the requested distance was indeed too short. This was some combination of measurement error and the fact that the third turn was happening too far back due to the angle on the second segment being a little off, which added up over 129 feet.
So I added 20 feet to that segment and ran again. By then only Jan from Pololu was still watching. This time the angle was a bit off on the third turn and Scout got stuck against the building on the opposite side of the third leg.
I tried another couple of times and got Scout to the end of the course and going into hunt mode circling to find the cone, missing it by just a few feet. For some reason, the camera wasn't picking up a cone. (I have theory now.) I managed this a couple of times, then I had alternating problems with calibrating the camera for bright sunlight and getting the dead-reckoning code to work consistently enough to thread the gap on the last segment of the 400-foot course. Adding to the mix, a red truck had parked in the back lot within sight from the cone, which I think messed up one promising run. By 4:00, after a dozen runs or so, and more vehicles parking in the narrow third leg corridor, I was tired of chasing the robot through the parking lot and packed up.
It was a very educational experience for me and fun to bring the contest to another group. The crowd was at least initially pretty interested in the contest, but a one-robot show isn't so exciting especially when the one robot can't manage something a three-month-old puppy could do. I could have gotten the same practice and saved the 15 hours of driving, but if they stick with it, it could be pretty cool to have two or three Robo-Magellans within driving distance of Seattle next year.
|©2000-2020 Idle Loop Software Design, LLC. You may not copy or reproduce any content from this site without our consent.|