April 19th, 2010
Ok, I’m in the Seattle airport on a hold over, so here’s another post.After the competition and some dinner I met people at the Dark Horse in Boulder for beers. When I got there, I said – “hey, sorry I’m late, but I had a little trouble navigating here. I kept bumping into curbs”. I expected a lot of laughs, but in fact, I swear I heard crickets.There were a few recognizable names in the competition. In particular, the Editor in Chief of Wired Magazine Chris Anderson had an entry in the air category. Other names would only be known to robotics enthusiasts, so I won’t list them. The CEO from Sparkfun (Nathan Seidle) had a demonstration entry involving a kid’s ride on car and a stuffed “Elmo”. Keep your eyes on this guy as he will be a household name in a few years.
Something I need to get off my chest. When I was at the competition, a CBC reporter (you might see 4 seconds of me on a technology piece someday. or not) asked me what was more difficult – air or ground. I said air, because there are more things to deal with (gyros, accellerometers, lightweight parts, the possibility of crashing big-time, faster processing). Then, during the competition, one guy started dis’ing the ground vehicles, saying that ground is trivial compared to air. In an otherwise really friendly atmosphere, this stood out. But after watching the ground vehicles struggle, I actually changed my opinion on what is more difficult. What won or lost the ground competition was the ability to navigate as precisely as possible and avoid obstackles. In fact, the guy who won ground, incorporated Kalman filtering which statistically combines GPS, odometer and some other stuff. If it were a wide open parking lot, yes, the ground competition would have been easier. But, the Sparkfun circumavigation has one turn that is narrow and is really subject to the error inherent in GPS. So, cars (mine included) were often hung up on obstackles. Air does does not generally have to worry about obstackle avoidance or reaction. GPS accuracy isn’t that important because GPS precision of 15 feet is not that big a deal up in the air. Except for autonomous landing which was optional. That looks very tricky on a plane and a few of the competitors did it really well. Enough of my sour grapes.
Pictured below is the work area that Sparkfun provided. It was perfect and allowed competitors to chat and look at each other’s stuff. This is after most of the people had cleared out.
Mork and Mindy’s house, Boulder, CO. It’s for sale and it’s a really nice neighbourhood.
April 18th, 2010
Today was the autonomous car race at Sparkfun. I had a really fantastic time. There were a lot of out-of-towners (e.g. New York, Florida, the UK). Everybody was great.
I was pretty freaked last night, though. I spent all of yesterday gathering GPS data and worrying that I blew a motor controller (turned out to be a power supply issue). I was also debugging a really stupid problem that turned out to be a compiler issue. I was up to 1:00am and then got up at 5:00am to keep trying to fix it. I was happy that I finally found out what it was, but when I got to the course to do a practice run, I found an issue with the distance calculation. I sent out a plea to Greg and Dave back in Victoria for help in a bit of a panic, but it turned out to be not that bad to fix. Anyway, by 11:00am, I was pooped from coding as fast as I could for 6 hrs on not very much sleep. But, everything was working the way I wanted to for the second and third heats.
Unfortunately, things didn’t go that great competition wise. I did not make it all the way around the building. Not many ground vehicles do (about 1 in 10 attempts completed the course this year). On one practice run I made it 95% around, but that didn’t count. I placed in about the middle of the ground vehicles. I was just super happy that my car went at all after all the issues because it would have been a drag to get there and not have a working car. It happens, unfortunately.
I’m totally into doing it again next year.
April 16th, 2010
Well, I was really concerned that my car and all the electronics junk I’m taking down would get flagged as a security threat taking it across the border, but it made it. I threw in a remote control handset so I wouldn’t have to explain the difference between RC and autonomous and to expedite the process of being taken into the “room” for interrogation. Didn’t have to.
I secured my car really well for the flight, but I still cringed each time I saw the baggage handlers throw my suitcase around. Do they have to drop it to put it down? Why can’t they just place it down like anybody else on earth would?
It’s crunch time, obviously. I will spend some time tweaking the steering algorithm tomorrow and then it’s go time.
April 12th, 2010
Ok, enough of the prototypes. Now I’m building the final version of everything for this Saturday. My new favourite building material is ABS. It cuts easily with a hack saw, drills nicely (unlike acrylic or lexan) and is plyable with a heat gun to sharp angles. The front of my car is made of ABS.
April 8th, 2010
Well, the laptop still will not boot but in the mean time, I’ve got a cheap netbook that will be my development environment from here on in. I’ve recovered the data off the hard drive and in there was the GPS error data. I wanted to produce a physical geo-plot of the data but did not have time, so have the distance from a fixed point instead. This picture shows about 900 distance measurements (in meters) based on readings from the GPS module (em-406a with WAAS enabled) at 3 second intervals. This was sort of a worst case scenario – no pre-locking on satellites, with lots of trees and houses around.
Note – it is not until about 25 minutes in that the signal seems to get tighter. I’m assuming by that point it has locked onto 4+ satellites. Also note the GPS drift on about a 3 minute cycle.
April 7th, 2010
I put my car and laptop outside yesterday to gather some GPS drift/error data. It wasn’t raining, but I thought I better cover things up just in case. Then I watched some Big Bang Theory and had a nap [don't judge me - I'm on vacation!]. Anyway, I woke up and it was pouring rain and my laptop and car were getting soaked. Of course, the things I used to cover things up were completely inadequate and blew off. I literally turned it upside down and water poured out.
Usually, the stories of me doing stupid stuff end happily [see this link - similar project, similar occurrence, but with beer], but not this time. It has been 24 hrs and my laptop is still not turning on. I’m hoping that eventually it will dry out and will be ok.
The only bright side here is that my laptop, which I have never liked, is getting old and I figure that subconsciously I wanted it to die.
March 28th, 2010
Ok, I isolated the steering issue I was having. The digital compass was jumping over a range of about 60 degrees. I believe it was because the compass was not completely level which I know is an issue. Digital compasses which compensate for tilt are out of my price range, though, so I may need to rig up some sort of tilt adjustment. But, the Sparkfun course looks pretty level, so probably not a big issue.
March 27th, 2010
Ok, here is my car doing some basic navigation at slow speed. Here’s what’s happening. The car heads toward the first point. Note that steering is extreme left or right. I think I’ve got an algorithm issue which I need to debug. When it hits the first point, it turns around and starts heading back toward the second point which is almost at the place I started. On the way back, the steering is better (slight, continuous adjustment) but it has trouble getting up the hill under a 20% duty cycle. Also, it pauses when it loses the GPS signal. I don’t know why GPS is flakey on the way back. It could be the napkin I’ve got the module wrapped up in.
My to-do list now is:
- control ground speed by odometer feedback, not PWM
- fix the steering algorithm
- get object detection going
It will have to wait until April 1 when I’m taking some time to focus on this project.
Thanks to Greg and Dave for helping me with the steering algorithm. I’m sure they got it right and it’s me that didn’t code it correctly.
Now to book my plane ticket…
March 20th, 2010
A few weeks ago I decided to rip apart my protoboard and build a schematic and PCB. It’s always a good decision because it doesn’t take long and it gets rid of the rats nest. It’s easy to do and design changes can be iterated incrementally instead of starting from scratch each time.
There is some excellent open source schematic and pcb software called Kicad. It’s a bit quirky like all pcb designers but once you get past that first bit, it’s great:
Here’s an annotated version of my pcb: