It's amazing how simple it was to use the SRF04 in my code, once the driver was working... I wrote some simple state machine based test code using the SRF04 for sensing... if range < 200mm or so, then reverse, if 200 < range < 400, then turn left, else drive forward. It has a bit of hysteresis to avoid getting trapped.
It works pretty much as expected - there are some deficiencies eg due to the beamwidth of the SRF04 not being wide enough close in for the width of the robot. The funniest one, though, is that the robot does a bit of a back-forward-back-forward-... shudder sometimes at close ranges, although it does normally work it out eventually.
The robot now has a new name - scaredyBOT - coined by my daughter because the robot was afraid of (backed up from) her teddy bear when she put it in front of the robot.
I feel so much happier now that I'm again moving forward, not backwards, upwards not forwards, and forever twirling...
I've got a highish-res movie of the robot being turned on with the sensor for the second time (about 2 minutes after the first time), but at 18MB, it's a bit too big to post at this stage, not to mention a bit boring for everyone except me.
Tonight's work will be that software subsumption/arbitration architecture I wrote about previously. We'll see how that goes.