Monday, October 31, 2005

The GPS log files

Well the GPS log files confirm that the data coming from the GPS serial port changes no more often than 1 per a second. Looking back though the newly discovered PDF version of the GPS programming manual I see that it expressly states that the GPS computes a position solution only once a second in its performance spec section.

The turn rate and short (90ft) distance I had the bot going won't do with that kind of update rate. If I want the test program to really work I will need to slow the turn rate way down and probably the the overall speed as well.

I'm not sure if I'll bother since I think I understand the issue pretty well and the time might could be better spent coming up with a new dead-reckoning+GPS based program. The motor controllers are all wired to do closed loop control on the motor velocity. I just have to set the jumper and write a program to set a new heading based on a timed difference in left/right wheel velocity. I could even double check the new expected heading with the GPS.

Saturday, October 29, 2005

GPS Navigation

Well it was a fine day for bottin'! I took the bot out with its new correctly GPS goal and let it rip. It even sorta drove vaguely in the correct direction. However, it did a lot of loop'd'loops and meandering too. I tried speeding up the rate at which I request data from the GPS and the rate at which I controlled the motors but it didn't really seem to help. I haven't been through the logs thoroughly but I suspect that what I'm going to find is the actual content of the GPS messages are not changing very quickly at all. Maybe once every 5 seconds. That is to slow to directly control the robot. I think I will now have to add in a dead reckoning component. I should start thinking about the general mechanism to navigate before I do however. I'd like to avoid writing a big program that has to be trashed because its not architected well enough.

All in all however, I am very pleased to have seen the robot drive around and at least attempt to reach its goal. The fact that the GPS is likely too slow to directly control the robot is a decent experimental result for today. Its is not some technical failing of mine.

Thursday, October 27, 2005

Distance Calcs

Dammit! Just got a chance to review the logs from the last outdoor run. At the time I was mystified as to why the distance to goal function was returning hundreds of thousands of meters. The answer: when you put in your longitude you're supposed to put in negative numbers for western longitudes. Duhhhh. My goal was on the other side of the frickin' world, literally. Jeez. To be thwarted by something so asinine!!! Its dark now, but I really want to take the bot out anyway. I won't but I can't wait for my next chance to do so. It should really work!

Sunday, October 23, 2005

Rained Out

Well I was making good progress until it started to rain. The GPS serial code needed some tweaks. But then when it ran I started getting huge distances to my target way point. So something is clearly wrong with the distance computation code. I'll have to go over it again.

Maze Bot Update

I guess I should mention that I am not working on the Maze bot until I finish the RoboMagellan bot. Id on't have enought time for even the RoboMagllean let alone both RoboMagellan and Maze. So, the RoboMagellan is the way cooler contest. So that is what I'm going to work on.

Rise from the dead!

Since its near Halloween I guess it is appropriate to resurrect this blog. Its has been totally dead because all I have been working on is my RoboMagellen robot and its supposed to be a secret. But as the guy who most wants it to be secret is not really adding much to the robot. In fact only Paul, Tom and I have really done anything directly towards the bot, I feel I can go ahead and post here while I wait for my battery to re-charge.

My time is soooo limited its sick. My progress has be horrifyingly slow. I literally steal time to work on the bot.

Anyway, I have some code now that should drive my bot toward a GPS way point. I think I have finally mastered the Linux serial port scheme. It took a while to get it right though. Once the battery re-charges I'm going to take the bot outside and give it a go.

Right now I'm seem to have a custom carrier PCB for my GPS that works despite the need to cut it up all to hell and back because I got the connector backwards. The motor serial code is finally seems to stably command the motor controller. The worst problem is the the very first command after power up always seems to error out. Easy enough to send an initial stop command. I also have Paul's 933Mhz SBC running Puppy Linux and interfaced to the custom PCB that level shifts for the GPS and motor controllers. The code compiles. It has undergone some testing. It really should work.

Wish me luck!