Pages

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.

2 comments:

if the bot sticks close to the wall no matter what... (follows it to the end of a hall then across the wall at the end and back on the opposite side of the hallway... shouldn't it eventually cover the entire maze/house/whatever?

Good question. I agree, you should be able to traverse all but the floating room by wall following the right wall. And there are ways of dealing with that.

Essentially that is the basis of my robot's strategy but with some additional capabilities to address wrinkles like room scanning, offset hallways, the floating room, lack of encoders, avoiding various penalties like passing a door without scanning the room, the high speed of the robot, etc.

Later on I'll post more about whatever approach I end up with -- and whether it actually works or not. :)

Anyway good to hear from you, and best wishes in your robot building :)