Homing algorithm for robot

Hi guys,

I'm currently working on a vacuum cleaner project.

One of the specification proposed is that the robot is able to return to the base, after the cleaning process is done.

Is there any recommended approach or algorithm for doing this ? (For eg, IR ?)

It will be great if there's any relevant tutorials / links provided.

Appreciate for your guidance :slight_smile:

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!

no22ben:
Hi guys,

I'm currently working on a vacuum cleaner project.

One of the specification proposed is that the robot is able to return to the base, after the cleaning process is done.

Is there any recommended approach or algorithm for doing this ? (For eg, IR ?)
It will be great if there's any relevant tutorials / links provided.

Assuming that your robot started from its base, just reverse all the steps it has taken since leaving.

Maybe some info below.

https://www.google.com/search?as_q=beacon&as_epq=&as_oq=&as_eq=&as_nlo=&as_nhi=&lr=&cr=&as_qdr=all&as_sitesearch=http%3A%2F%2Fforum.arduino.cc%2Findex&as_occt=any&safe=images&tbs=&as_filetype=&as_rights=&gws_rd=ssl

Henry_Best:
Assuming that your robot started from its base, just reverse all the steps it has taken since leaving.

Yes! The double-vacuuming feature! Any dust it missed the first time will be missed on the return trip too.

Henry_Best:
Assuming that your robot started from its base, just reverse all the steps it has taken since leaving.

This will only work in the most minimal and simplistic cases :slight_smile:

How are you going to model in all the non-linear and time variant aspects of the motion ?

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.

...R

MorganS:
Yes! The double-vacuuming feature! Any dust it missed the first time will be missed on the return trip too.

But the path it takes will be extra clean. :slight_smile:

1:1:
This will only work in the most minimal and simplistic cases :slight_smile:

The OP didn't state how complex his case is.

How are you going to model in all the non-linear and time variant aspects of the motion ?

The distance will be the same in the reverse direction over the same path.

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. :wink:

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. :wink:

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.

Or, as suggested, it can backtrack.

Fascinating topic.

Have you noticed that the people who pose interesting questions usually seem to have a lot less interest in them than we have?

...R

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 :slight_smile:

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 :wink:

Robin2:
Have you noticed that the people who pose interesting questions usually seem to have a lot less interest in them than we have?

Totally! Quite a few examples of this huh

Better than the opposite I guess :smiley:

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.

cgriell:
goes for a wall, and follows the wall

Reply #6

...R

Following the wall, apart from the Dalek problem (stairs), may also lead you up the garden path, if the door has been left open. :slight_smile:

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.