Thursday, February 28, 2008

Hacking Session

Steve of SHARC was kind enough to set up the test maze in his garage so several of us from the club did a hacking session over there. We made pretty good progress. George had his bot going through the entire maze (then made some tweaks... you know how that goes...). I worked on primitive behaviors: wall following, turning a corner, and turning at the end of a hallway, and initially stitched these together a little bit to see how it'd work.

The next step is to put these behaviors into functions that drop out when "something" changes, then the control routine calls each of these primitive routines in the correct order to get through the maze. For example, follow the right hand wall until the wall disappears, then the control routine knows to call turn corner right or maybe keep going straight until there's a wall again. Looking at the Trinity arena map, these and a few other navigational primitives "should" get the robot through the entire maze. From the home position, wall follow right, turn corner right, turn at the end of the hall and you're in the room to the right of the home circle.

Mind you, all this is (so far) done without encoders or dead reckoning. More on that topic later.

Speaking of topics I've left dangling, don't worry, I'll get back to systems engineering eventually.

Meanwhile I have a crap ton to do and time is just about out!

Sunday, February 24, 2008

Time for Coding

After a marathon session yesterday, the firefighting robot hardware is almost complete! (Yes, I am going to paint the rest of it)
  • Lowered the servo and ranger array for clearance with upper deck
  • Added a second Infrared LED to the flame sensor
  • Reworked the LED installation in the reflector housing
  • Soldered up an amplifier for its signal and mounted on flame sensor
  • Attached the top deck and flame sensor
  • Replaced the plastic roller casters with a single skid for straighter tracking
  • Hacked on wall following and forward obstacle detection
  • Experimented with irrigation syringes for fire suppression
Things came together really well -- it was kind of freaky, actually! :) Making progress is nice, though, with less than two weeks left. Reliable fire suppression with water remains a little bit of a challenge. (Using a fan or air to blow out the candle results in a time penalty)

Meanwhile, the contest organizer, Joe Strout, announced a huge prize for the winner:
Kim Wheeler with Road Narrows LLC has generously offered to donate a POB-Eye vision system (a $245 value) as a prize for the robot fire-fighting contest. Read more about it here:

Thanks Kim and Road Narrows for your sponsorship!! In addition, the first twelve entrants receive a year subscription to Robot magazine --- thanks to George Mitsuoka and Robot!

Friday, February 22, 2008


I love it when one can find a way to simplify things. Multi-deck robots are inherently cool (there was a great example of one at the FRR meeting), but mine was looking like a weird Star Trek era pagoda on wheels -- with clearance problems, no room for the fire suppression equipment or for routing wires, and the controller in an odd place. That's because there's a front servo with a crab-claw-like ranger array taking up tons of space, and a rear servo with a flame sensor in the form of a giant flashlight reflector taking up more space.

Why put the flame sensor on a servo? To avoid DC motor noise and ensure precise control of the scan. At slower speeds pulse width modulation is imprecise. On the other hand, with a servo, once you find the candle it's hard to point the robot body properly unless your robot uses encoders. Even so it is another challenge.

The answer: repeated, short bursts of high duty cycle to the motors, reading the flame sensor in between. Result: a granular, smooth scan. Find the candle, then drive forward. Simple. So I can ditch the flame servo and solve one clearance problem, and mount the flame sensor on the 3rd deck.

With Servo 2 gone, the controller has a better home, wiring is simplified, and now the robot is modular. Swap on a purpose-built top deck for specific tasks.

Wednesday, February 20, 2008

Front Range Robotics

FRR had a meeting up at Joe's house in Ft. Collins last night. I had the pleasure of meeting a bunch of great guys and each of their firefighting robots is really impressive. The competition should be an absolute blast.

  • Threw together the new robot just in time to hit the road
  • Got everything wired up
  • IR ranger testing in the competition maze
  • Adapted most of the code from Sparky
  • Lit hair on fire
Tip for the aspiring firefighting robot builder: don't lean over your robot when there is a lit candle in front of it. If you hear a strange sound that is a combination of sizzling bacon and electrical sparking, it is actually the sound of your hair burning. :|

To do:
  • Extend battery wires
  • Rework top deck for clearance
  • Route wires cleanly
  • Boat tons of programming
  • Get a haircut

Monday, February 18, 2008

Sparky Decommissioned

A quick update. Sparky has been decommissioned and partly disassembled to free up components for building the competition robot -- will post pictures of this when I have time. Carving out a little spare time, I've put together the first two decks (and there may only be two, haven't decided) and am pleased with things so far.

But there's so much more to do and so little time left! Planning a late night session tonight to finish mounting the flame sensor and IR range sensors. There's a robot hacking session Tuesday night in Ft. Collins, so the goal is to have the robot ready for code tests.

Oh, I've scrapped the compressed air & water idea for flame suppression. To big, too heavy, too much support equipment required. I have a set of irrigation syringes on order. These with a spring or rubber band should provide adequate water volume, flow, and pressure to run one or two drip mist sprayers. Notice I said "should."

All else fails, I can always use a motorized fan...

Wednesday, February 13, 2008

The SP0256-AL2 Speech Synthesizer

One of the first major electronics projects I attempted was to interface a speech synthesis chip, the venerable General Instruments SP0256-AL2, to my Commodore 64 (this was in the late 80's I think). It ended up not being all that hard thanks to excellent schematics in the datasheet and in Robot Builder's Bonanza
The speech chip was a soon-to-be discontinued item I picked up at Radio Shack (I just found a link where you can still buy these). Recently I did some web searches for giggles and I guess people are still using these old ICs but there didn't seem to be a lot of info out there about them.

Since I'm a packrat, I still have the original datasheet that came with the chip. I figured I'd scan it in for anyone out there who lost theirs and are looking for information and details on the chip. (5.2 MB download)

I still have mine on the original breadboard I put it in, with the other components surrounding it like a little forest. At some point I am going to hook it up to my BASIC Stamp 2 and revive it. I never did get the audio amplification working. Afterwards I could interface it to, say, an AVR microcontroller chip and make it accessible to my current and future robots via a much simpler, two-wire, serial I2C interface.

Sunday, February 10, 2008

Sensors and Sensibility

Progress is accelerating! The Sharp GP2D12 infrared (IR) range finder arrived in the mail Friday and I was able to install it on a servo just in time for the SHARC meeting where I spent much of the day tweaking wall following software (it's coming along ok). I'm exceedingly pleased with this sensor. It seems very consistent and reliable for the limited testing I've done so far, making it much easier to detect wall distances.

Coincidentally, a major R/C expo was taking place at Wings Over the Rockies where we meet every 2nd Saturday of the month. So we got to meet a lot of great folks and, I hope, managed to recruit a few new members! :) Not to mention we saw loads of really cool R/C cars, airplanes, and helicopters, and got to show off George's web-controlled telepresence tank and other robots.

A package full of all kinds of goodies had arrived from BG Micro when I got back from the meeting. Sadly my secret weapon doesn't appear to be panning out. I'll tell you what it is once I'm sure. :)

That setback is no problem, because I had a major breakthrough: using a large lantern flashlight reflector with IR LED is surpassing my expectations. It appears to be relatively insensitive to candle height and, mounted on a servo, it can detect the presence and direction of a candle reliably at more than 260cm -- nearly double the maximum competition distance!

So the clock relentlessly ticks on quickly but things are starting to look a little more hopeful!

Tuesday, February 5, 2008

Fire Suppression System

Over the weekend after banging my head against the wall (and banging the bot's head against it too), I worked on flame sensing and fire suppression.

Here's what I came up with for the fire suppression system: a PVC T-fitting as a tank, filled with water and compressed air, the latter forcing water through a valve (to be operated by servo) and through a drip system sprayer.

The white cap is the water fill tube. Fill the tank with a little water, maybe 1/2 full, then put the cap on. The clear tube is the air fill tube, with a valve to hold pressure in after filling. Right now it is kind of messy and inconvenient to fill and use. It leaks a little bit around the 1/4" hose fittings, and the valve has to be precisely off or water leaks out.

I switched from using 90° sprinker heads to a single 0.8gph fogger/mister head, finding that it was more than adequate to put out the candle, and is more efficient. Not an ideal solution... at least not yet. But, I feel better knowing that the idea more or less works.

It was cool to see, last night, the different approaches to sprayers at the SHARC meeting. Some really excellent ideas. More on the meeting later this week, as well as an update on Sparky.

Saturday, February 2, 2008

Question and Progress Report

I got a great question from roboRobert (he has a cool robotics blog, check it out!).
are you sure you've never done anything like this before?

Well, I do claim book learning in electronics and robotics. Sure, I have a computer engineering degree, and I do have programming experience, but I've done very little electronics tinkering and I'm quickly finding that book learning is a far cry from real world robotics experience! Although systems engineering is my day job and I'm in an SE master's program, this is helpful primarily because of my lack of experience in robotics.

Sparky is the first robot I've started to build from scratch. I say "started" because, despite his performance in the speed test video, behind the scenes he doesn't work reliably and he's in pieces right now. I just can't figure out why he stalls out half a second after starting to move. (No, you can't see the blooper reel of me cussing at the robot in my PJs)

Meanwhile I've been working to get Cruiser to follow a wall and turn a corner using infrared detectors. Turns out the "distance" readings change with battery charge and ambient light. Cruiser works in one room but not the other; he works one minute and not the next. Turning a corner is a total crap shoot.

Programming for the analog world is a whole different ballgame requiring a different mindset. Testing sensor readings under many conditions may help. Alternate sensors or algorithms may be less sensitive to environmental changes. I don't know. Getting better at diagnosing circuit problems with an oscilloscope should help for niggling electronics problems.

So, no, I've never really done anything quite like this and given all the trouble I'm having, and how little progress I've made in the last few weeks, I'd say it shows. :) With just over a month left I was kind of hoping to have more than just a prototype robot chassis completed. (In the chart, orange=design done, purple=built it).

So all that is left is the hard stuff: all the electronics and software for navigation, entering and leaving a room, finding the candle, and extinguishing it. Wish me luck, I'm going to need it.