Friday, June 8, 2012

AVC: Scrambling and Hacking

This week I added obstacle (barrel) detection sensors onto Data Bus. That's pretty much the same thing I was doing in the final weeks before the 2011 AVC except this time the sensors are sending back good data. At rest. Moving is another story.

I'm sort of laying track in front of the train, now. I've long since used up the careful planning that went into the rest of the robot. Now it's hack time with prototyping boards and a rats nest of wires jammed in next to the somewhat neater existing installation.




I've mounted two very long range Sharp GP2Y0A710K 550cm IR sensors and a Maxbotix LV EZ1 5m sonar ranger. I've built an Arduino-compatible prototype board to read analog voltages from each ranger and report back through I2C to the mbed. The code on both sides is written and appears to be working properly.


What isn't working is the moving sensor data. The IR rangers aren't putting out anything usable, just a lot of spikes. The sonar is dropping out, bouncing between what might be a valid signal and 0. Point being, there's clearly a lot of work to do on the obstacle detection system.


As for machine vision, the AVRcam is now mounted on the Bus and I've written a serial-to-I2C interface using, of all things, a Parallax Propeller (the ATmega328P version didn't work out). Now I just need to etch and populate a board so I can start collecting data and figuring out what I can do with it.

With this menagerie of microcontrollers, maybe my robot will win for "Most Kludgey" or "Biggest Mess of Microcontrollers on a Single Robot". I've got an ARM, a Propeller, and three ATmega processors. Does the Sparc processor on the Venus GPS count?

The last and hardest parts (as if just getting usable data weren't hard enough) involve fusing all this data to reliably detect an obstacle and reliably ignore non-obstacles, then take evasive action to avoid collision.

But hey, I've got a whole week to perfect it in addition to fixing my steering and navigation issues and whatever other myriad bugs and problems crop up. No problem...

Tuesday, June 5, 2012

AVC: My Steering Algorithm Sucks

Sunday testing went... um... sub-optimally.
The latest Data Bus update is that I'm hosed if I don't get the robot navigation nailed in the next day or two so I can work on barrel avoidance. The Sparkfun AVC is in less than two weeks.

Here I thought I had this clever little steering algorithm that worked oh so well. As it turns out, it sucks rocks. The robot keeps driving into curbs.

It even knows full well that its going off course, but it doesn't correct its course.

Strange? Yeah.

Well, here's what's going on...

Friday, June 1, 2012

AVRcam Resurrection

AVRcam right, my SMT version lower left, OV6620 camera.
If you've never heard of it, the  AVRcam tracks multiple color blobs, up to 8 colors simultaneously, at 17fps. It uses an ATmega8 processor. By contrast, the CMUcam1 with a 75MHz SX28 only tracks a single color and a single blob at 17fps.

John O., maker of the AVRcam, was kind enough to send to me what I believe to be the last unpopulated AVRcam on Planet Earth. So don't bug him for more. Meanwhile, I've gotten it working and created a much smaller SMT version.

Wait a second... What?!  An ATmega8 with 1K of SRAM running at a molasses slow 17MHz spanks the snot out of the famous, lauded, widely used CMUcam and it's 75MHz processor?!

How is that possible?!