Tuesday, April 19, 2011

AVC Bot: Update

Here's where I'm at with the robot...
  • Body is painted, some detail to finish. Pics forthcoming. Hope you like it :)
  • Infrared sensors aren't working as expected, still no idea why
  • AHRS (gyro+accel) is only able to track very, very slow heading changes
  • I suspect motor magnetic field compass interference more and more...
  • If so, compass heading distortion may be proportional to current (and, roughly, speed)
  • Added a CMUcam v1 and Arduino serial-to-i2c board to detect red barrels
  • Attempted to collect some data when CMUcam approaches red 'barrel'
  • Also attempted to collect data on compass vs. speed to test motor field theory
  • While trying to collect this data, found that my software is hanging again ARGH!
  • While debugging I discovered the CMUcam/Arduino RF interference is killing GPS reception. Double ARGH!
  • My power supply has auto cutoff which kicks in with low battery and heavy throttle
  • I had a nightmare about the competition. I think it was the Nyquil.
I'm a bit frustrated by the issues. At this point there's not a lot more I can get done on the robot except get it partially operational again and do something with obstacle avoidance.

After all this time, I still haven't been able to come up with a satisfactory way to merge compass, gyro/AHRS, and GPS data primarily because the errors in compass and gyro/AHRS are pretty big and obliterate dead reckoning accuracy, and I've spent all this time just trying to understand the nature of the errors.


For the compass/magnetic issues, I'm draining the remainder of my robot funds to try a solution to address the magnetic interference. It's on order, 2-day delivery, to arrive tomorrow. It's a total hail mary play. It probably won't work. Meanwhile, the cheap option is to raise the compass/gps mast... along with the center of gravity.


Raising the mast should also reduce RF interference. Enough? Don't know. I may try to get or make a metal enclosure but there's precious little time for that now.

Obstacle Detection

For obstacle avoidance, a couple of options present themselves. If we know where the barrels will be well in advance of running, I can attempt to plot waypoints around the barrels.

If not, I have a second sonar ranger setup that just came in, enabling the robot to--maybe--localize the barrel.. Or maybe by some miracle I can get the IR rangers working properly.


For navigation, worst case I will run GPS plus some simplistic error correction which I've tested to some degree. If the GPS fix gets too bad (in the urban canyon on the west side of the building), the navigation accuracy will suffer, too.

I may be able to just do some rudimentary logic to get usable heading/position values when the GPS fix gets bad.  I'm finding heading is the most crucial aspect of my robot's ability to navigate by dead reckoning. (thanks for that illuminating insight, Captain Obvious...)

I may take a page out of Scott's (Team Tobor's) book and try to use odometry to provide more info on heading.

Whatever merging I do, there's still the GPS lag to deal with.

All of this above, of course, only possible if I can stamp out the latest giant bug very soon.

I've reverted to code from the 5th and it seems to be running. But I've got to re-de-bug all that code now.

This sucks.

But I'm not giving up. Not by a long shot.


  1. What is not working about the IR sensors. It is normal for the first reading to be garbage. Also make sure you have decoupling caps on the VCC and Ground pins of the Ir sensors otherwise they wont work.

  2. Michael, Try putting a .1 uf capacitor between the VCC and GND of the infrared sensors. They will not work without them. Also it is normal for the first reading to be garbage so throw it out.
    Good luck.

  3. Thanks! Had forgotten the caps. I thought they were 10u? Not getting expected results for range but need to test at longer distances. I may be having adc issues too or driver issues. Two sonar modules are working no better....


Note: Only a member of this blog may post a comment.