Pages

Friday, April 1, 2011

AVC Bot: Progress, Caffeine, More to do

I've been pretty busy, not sleeping a lot, drinking an enormous amount of coffee. And that's no foolin' :)

Only 20-some days left and the tendrils of sleep-deprived madness claw at the edges of my frayed mind...

I've been here before...

Data Bus with second deck and IR rangers mounted

Done

Added a second deck for mounting navigation sensors

Remounted GPS, gyro and compass

Revised the power supply. Twice.

Redesigned the RC kill/takeover board, built and installed it

Installed larger skidplate / bumper

Ordered, received, and mounted Sharp long range IR sensors

Interfaced EZ1 Sonar to the main code base

Installed body mounting posts and test fit the body

Repaired the broken RC receiver antenna

Revised code for Vcc-independent gyro rate calculation

Experimented offline with simple position estimation

Ordered a fancy AHRS and some other enhanced sensors

To Do

Mount Sonar

Code up IR Ranger distance calculation

Implement obstacle detection

Mount and interface the new AHRS and/or other sensors

Complete GPS/AHRS/Dead Reckoning sensor fusion

Experiment with obstacle avoidance navigation options

Down to the Wire

For the last several days, I've been telling myself that I will win or lose this competition this week.

Not on April 23. But now.

I've been here before with Pokey a few years ago, working on crucial, high level functionality until the bitter end, the day of, in fact. The result was catastrophic, albeit entertaining, failure.

Prior experience says that if I don't push hard and get the navigation buttoned up and the obstacle detection in place in the next few days I am probably not going to pull this off at all. It all rides on what else I can get done this week. So I've been going all out.

What seems like 3 weeks left is more like one because I need a week or two of testing, debugging and refining, and a few days to get all my tools, supplies, and equipment organized for the event.

Compass Errors

Some of my readers have offered some great insights on compass errors and other issues. Thanks!!

I will test the first, implement the second, and for the third I've ordered new sensors, including a complete off-the-shelf AHRS.

Gyro Errors

The gyro's bias and scale factor are proportional--and very sensitive--to supply voltage, so I realized I should have calculated gyro rate using a voltage-independent value for Scale Factor. Like the datasheet said. RTFM.

I hope this will eliminate most of the gyro error I've been seeing. I'm preparing the robot to run more tests to find out for certain.

Last Minute Changes

As alluded to above, I'm changing the AHRS design for Data Bus.

There's inherent risk in changing the design this late in the game. I can think of at least one example of a 2010 AVC entrant who was bitten by last minute changes.

On the other hand, the risk of failure due to inadequate sensors is real, high, and quite familiar to me from my experiences with Pokey. I think it outweighs the risk of implementing a new design.

AHRS Options

So I have a few AHRS options on order. The key was to find options that were relatively low risk to implement and which would provide short cuts versus continuing along the current path.

Supplement: add 2dof of gyro, 3dof of accelerometer, and 3dof of compass to the system

Replacement: replace the compass with 3-axis magnetometer & accelerometer, with code available

Wholesale Change: replace gyro and compass with complete 9dof AHRS with developed firmware

Oddly enough, the last option, wholesale change, is probably the least risky. It requires nothing more than reading some serial data to receive heading information periodically. All the sensor fusion is written in the sensor's firmware.

There's some pride lost in doing it all myself, true. But from the very beginning, I've viewed this project as one of COTS systems integration rather than from-scratch development.

The other two options still require sensor fusion but should eliminate, first and foremost the tilt errors from the compass.