An update on the Stasis project. As you know, the stasis detector is the robots last line of defense on keeping from getting stuck in a household enviornment. In its simplest form, it consists of a drag wheel that is pulled around by the robot, that has an optical sensor to determine if the wheel is moving. So your drive wheels may be turning, but if the drag wheel is not, your stuck. The stasis sensor can either be used as a simple sensor input in your main processor, or even better, when used in a priority arbitration architecture or subsumption type architecture, it is the behavior that overlies the bottom behaviors that continue the robot moving toward its goal.
For example, "Random Wander" maybe the lowest level, overlain by "Seek Goal". Both will always keep the robot moving toward its destination, be it the battery charger or to pick up a can or ball. Overlaying these two behaviors with the "Stasis" behavior will be even better. When the robot gets stuck and the bumpers or IR dont see any problem, then after say 3 seconds or so, the stasis behavior kicks in and attempts an escape maeuver to free the robot from say a lamp cord wrapped around the back wheel.
These three behaviors can be overlain by the ones that actually perform a task when the destination is reached, and will of course subsume over the Stasis behavior so that if we are stopped to pick up a ball, the stasis will not kick in and try to escape.
We have experimented with optical stasis sensors too, and it is amusing to put a phototransistor in a short tube and aim it say at a 45 degree angle from straight ahead. What happens is that when the robot is moving, the output of the transistor is a changing brightness, and thus we know we are moving. IF the variations stop, or are very small, we may be stuck. You can also look straight down at the floor and do the same thing, assuming of course that the floor is not featurless!
Such a simple thing - the stasis sensor, but absoulutely essential for the household robot! Dont skimp on this feature, you wont regret it.
Please Write me: firstname.lastname@example.org