Wall Following Algorithm for Sonars

Hi, I've been looking around for some algorithms for sonar wall following, although I've not really found anything useful....yet. I've
see a few basic ones which go something like:
IF (LEFT_SONAR_DISTANCE < MIN_WALL_DISTANCE) THEN WHILE(LEFT_SONAR_DISTANCE < MIN_WALL_DISTANCE) MOVE AWAY FROM WALL
IF (LEFT_SONAR_DISTANCE > MIN_WALL_DISTANCE) THEN WHILE(LEFT_SONAR_DISTANCE > MIN_WALL_DISTANCE) MOVE TOWARDS WALL
IF (LEFT_SONAR_DISTANCE == MIN_WALL_DISTANCE) THEN MOVE FORWARDS.
My Robot's is a standard 1/2 sonar ring arrangement at the front. With 3 Sonar's on the left side, 1 at the front and 3 moving round the right side.
I'm aware that there can be problems with angular reflections, but I would like to try and utilise as many of these sonar's as possible to achieve this task. Does anyone have any suggestions on either successful methods or where to look.
Regards
Mark
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
snipped-for-privacy@yahoo.co.uk (Mark) wrote in message

Joe Jones has a nice algorythm in his new book "Robot Programming, A Practical Guide to Behavior-Based Robotics. Ch 5 pg 126.
And you can play with it in simulation on Daniel Roth's site:
http://www.behaviorbasedprogramming.com
One very interesting thing Joe mentions is, "A somewhat subtle detail ... is that the measurement point must lead (or follow) the robot's center of rotation by some amount. Were the range sensor mounted on the same axis as the wheels, we would find that the measured distance offers no hint as to which way to turn to achieve alignment."
You may need a couple of your ring sensors to get a "projected" image of the wall orientation.
Randy www.newmicros.com Objects in Mirror are more confused than they appear