I'm still in the general concept stage of this project but I just realized I'm basically making a robot by hacking my broken pool robot cleaner. My current big question is how does one steer such a robot?
There are only two motors. One that creates upward (vertical) suction to hold the robot on the pool bottom and suck debris into the waste filter. The second is a move the robot (horizontally) forward and backward. And the tracks are in tandem, not independent of each other, so there is no ability to do crazy spins or anything.
So, without knowing what I'm really talking about. Either these pool robots run and hope that randomly they'll cover most of the pool in its cleaning cycle, or they really do have navigation programs built in that map your pool. (I'm thinking it's a bunch of marketing b.s. at the moment)
But given both the motors are stepper motors I'm assuming they must be using these to track something (distance?) Could you use reverse the vertical thruster to lift the robot so slightly, turn it, then drop down and go that direction?
This is the post that inspired me to hack mine.
This is the actual stepper motor used in my pool robot for the vertical thrust.
My current big question is how does one steer such a robot?
How was it steered before it broke? Typically, they just bounce off of things, and then wander off in another direction.
Either these pool robots run and hope that randomly they'll cover most of the pool in its cleaning cycle
Exactly. Like a roomba.
or they really do have navigation programs built in that map your pool.
But given both the motors are stepper motors
Are you certain that they are stepper motors? Seems unlikely that a manufacturer would waste money using accurate position motors to generate suction or to randomly crawl around.
I'm assuming they must be using these to track something (distance?)
Well, you know what they say about assuming things.
@PaulS Thanks for the quick reply.
As I said in my post it does use a stepper motor (I linked to the installed motor as well). So, I think either they might be doing some sort of calulation, or probably they bought a bunch of this model motor and used it on all pool robots they sell. There is a higher-end cleaner that does have independent track steering, but mine does not.
As far as how does it navigate now? I don't know. That's why I'm asking how one might build a navigation, or not, for something like this. All the documentation from the manufacture is marketing mumbo-jumbo.
If it would be hard to navigate with this type of setup, I'd probably just get some cheaper motors and let random be my guide. But if it is possible then I'd like to investigate if I could pull this off. The other thing too is it needs to climb the walls, but not try to get out of the pool, etc. Not sure if stepper motors can monitor resistance, or not.
With out actually knowing what I'm talking about I would assume given my pool is a defined space I could setup some virtual map and the robot could tick off each time it's covered a certain area. Once it's done, or a time limit has been reached it would stop it's program.
Again, thank you for your thoughts.
I have exactly the same problem.
My pool cleaner isn't broken, but the navigation is very bad. Sometimes it's stuck in a corner for hours. Sometimes, when climbing the wall and reahing the surface, it bends to one side and lands on its back on the pool-bottom.
Very frustrating, I have to correct its direction almost every 5 minutes. Also, it denies some spots in the pool constantly. grrrrrrr.
I want to rebuild the cleaner with Arduino.
Is it possible to make a "map" af the pool and let the cleaner take every spot of the bottom and, if I choose so, clean the walls spot by spot.
If you want to control its position you need something that can act as a position marker.
Maybe it would be possible to use sonar to measure its distance from the walls - but even then I can't think how you would ensure it measures the distance along lines that are perpendicular to the walls.
Maybe you could have a camera above the pool - but that is far beyond the capacity of an Arduino.