Robot navigation has been the subject of a great deal of research for roughly the last 50-60 years, and many solutions have been proposed and tried. Surely some on line research will be informative!
Your question suggests that you see this as an abstract problem - I don't think it is. It must depend on the specifics of the system you are developing.
How does the robot figure out its path through the cleaning area?
How is the home position defined, and how is it identified?
A possible solution. if (say) if the home position is one corner of the room then the robot could follow the walls clockwise until it got to the place where there is some "tell tale" (e.g. an LED) to let it know it has arrived.
I agree that the OP didn't state the complexity - and I maintain that your suggestion will only work in the most minimal and simplistic cases.
Let's take a very basic non-linearity: backlash - in various indirect and direct forms it's almost everywhere, it's nature means that the distance wont be the same in the reverse direction over the 'same' path.
1:1:
I agree that the OP didn't state the complexity - and I maintain that your suggestion will only work in the most minimal and simplistic cases.
I don't entirely disagree, but it depends on your definition of minimal and simplistic and also on how close to the target he needs to get.
Let's take a very basic non-linearity: backlash - in various indirect and direct forms it's almost everywhere, it's nature means that the distance wont be the same in the reverse direction over the 'same' path.
All the backlash in the return path will be equal and opposite to that in the forward path. It will be the same whichever direction it's going.
Imagine you have a motor with a sloppy gear train. To overcome the backlash your motor has to make one complete turn before there's any output at the wheel. Now put that motor into reverse. It will again have to make one complete turn (to take up the backlash) before the wheel starts turning in the opposite direction.
There is, however, one non-linearity that possibly can't be accounted for...wheel slip. That would depend on the surface over which the cleaner is travelling, it's weight and the size and construction of the wheels, none of which we know.
Henry_Best:
Imagine you have a motor with a sloppy gear train. To overcome the backlash your motor has to make one complete turn before there's any output at the wheel. Now put that motor into reverse. It will again have to make one complete turn (to take up the backlash) before the wheel starts turning in the opposite direction.
This assumes that the mechanism starts with its slop all 'backed up' (I don't know the exact term, maybe pre-loaded?) as if it had just changed direction - which, I agree, would be the case if it had just reversed in, so it's possible yes - but unlikely to be the case.
Wheel-slip yes, agree - static/dynamic friction complications are another common one.
Seems to me there are a few ways of doing this....
Does the robot have a map built in? (Or has it created one on the fly?) Then it would know from dead reckoning where it is on the map, and knows where home is, so can figure out a route.
Or, can it "see" home from where it is (eg an IR beacon maybe?) and head that way.
Backtracking is effectively dead reckoning - I guess you could avoid all the in-between steps and calculate a straight line from all the vectors, but again, 'home' would have to be pretty large
Oh yeah! I totally agree, optimising paths in a control theory context is fascinating stuff - check out 'receding horizon'/Model Predictive Control (MPC), if the math/algorithms look like a pool of latex vomit then check out the results on youtube:
That's from ETH Zurich - Disney Research has an office there
Assuming that you are able to provide a beacon for the return point, I would use the KISS theory. No need for maps, nor backtrack, nor differential GPS. Your cleaner goes for a wall, and follows the wall until it reaches the room where the home beacon is, and then follows it until home base.
Of course, it will find obstacles in the "follow the wall" path, and in this case it should be able to circumvert them and follow the same wall.
One problem will be of the robot finds a descending stair (ascending is not a problem, for the robot it is wall), because it must recognize it, and follow the stair until it finds another wall.
1:1:
This assumes that the mechanism starts with its slop all 'backed up' (I don't know the exact term, maybe pre-loaded?) as if it had just changed direction - which, I agree, would be the case if it had just reversed in, so it's possible yes - but unlikely to be the case.
I would say that it's the case every time, except maybe, when it is first put on the ground. It has to have come from somewhere, in the opposite direction. If it's still moving in the same direction, there's no problem! There cannot be a path where the forward and return journeys don't have an equal and opposite amount of take up of slop. You can devise a path that will return the buggy/vac to it's starting point (a triangular path, reversing at each corner, will do this) with unequal slop, but if you then reverse the path, it will balance out.
Wheel-slip yes, agree - static/dynamic friction complications are another common one.
To go from A to B needs, say, 3.5 turns of the wheels. As long as your wheels turn 3.5 times (assuming no wheel-slip) you've got there, no matter how much friction or slop is encountered. Wheel-slip is the only problem that can't be overcome 100%. Wider, stickier, wheels and a heavier buggy will help, but not totally eliminate it.