hey, hi everyone.
i am new to then forum, and i've got a small problem.
i am working on a robotic lawn mower alias transport platform. i want it to do wavefront path finding with a ping sensor as object detection.
the garden is 13m x 13m so if i make a matrix of 130 x 130 this would devide the garden in areas of aprox. 10 cm. this looks ok but is the arduino capable of handling this or is it faster to do this on a computer and an wireles ethernet connection?
and,... is there aneyone who used the wavefront algorithm before and is willing to share it with me? :-[ ore give me some hints
a quick google search brings me upto speed on the wavefront algorithm. Have you searched it up?
If you're using a ping sensor I take it you don't have a "map" of the area so you're algorithm will have to be adaptive.
It's difficult to say whether or not the arduino will be capable of handling a grid size of 10cm. This depends on the speed of your robot. I would suggest processing all data on-board, as off-site processing is a challenge on its own.
thankx for the verry quick responce.
is completely understand the wavefront.
i was planning on making a map with the readings of the ping sensor.
the robot is not going to be verry fast but my consern is that regarding the size of the platform (50cm x 50cm) i need the ping to scan and by doing this losing lots of time.
and for as far as i know, the arduino is not capable "multitasking". so it's gonne need some fast coding.
How are you calculating your location? Unless you have a pretty good idea of where you are, generating a map isn't going to work very well. With a 10cm gridsize, you'll need to know your position accurate to about 10cm (i.e. which cell you're currently in).
hi,
i was planning on using 2 known distances like 2 walls, i would always position the robot on aprox the same starting position and then calculate the error. would this seeme a good plan to you or do you have an other system for accurate position determination?
GPS is still not accurate enough i gues
use an encoder on your wheels and you can measure distance travelled.
that was the plan.
and i would just use the ping to detect objects
Where are you planning to store the map? 130x130x2bytes = 33800 bytes.
If it doesn't have to find it's own position I would expect that a 16 MHz 8-bit processor could run the wavefront algorithm pretty easily.
Interesting application.
Forget using the PING to scan for objects. Why not place an array of IR sensors on the front of your robot and have it use that for close object detection. This way the PING can be employed for side to side scanning.
Maybe I'm not picturing the right thing here. A sample map would help.
P.S - Break this problem down into manageable chunks otherwise you will never solve it in time. As a start, forget about diagonal travel. Your robot should only travel in 4 directions. This makes calculating distance with the encoders trivial. From here you may expand these functions to add more compass points (diagonal travel)
sins the IR sensors are sensitive to sunlight end we have a sunny garden, it seend logic to me to not rely on IR sensors but to the sonar sensor witch is less sensitive to "nature influences" ( for as far as i know )
what do you mean by side to side scanning?
and by the way, arn't the the IR sensors not limited with a verry narrow beam. thinking of the fact that the robot is 50cm wide, it would take me apox. 10 pcs just to cover the front of the robot.
is did some calculation abaud the strorage of the map.
a bit dissapointet, i have to say that a resolution of 10cm wil be to much to handle for the memory. after some calculations i conclude that a resolution of 20cm will also do well. sins the blade is aprox ,22 cm this will do.
130/20 = 65 cells * 65 cells * 2 bytes = 8450 wich fits in the arduino memory
But what is the smallest object that you expect to encounter?
If the smallest object has a width of 10cm and your robot's width is 50 cm then 6 IR sensors oughta be enough.
the obects can be everyting from a small rock to garden furniture so, for the object detection i want the highest possible resolution
can you use IR sensor and a mirror to scan 360° continuosly or would the sensor just see the mirror
The IR light would reflect off the mirror but IR is only good for close object sensing so forget about tricks with mirrors.
As a side note: Why the wavefront algorithm? This algorithm is meant for moving from point a to b whilst avoiding obstacles. In your case you actually want to mow the entire lawn whilst avoiding obstacles.
to be honest,
i want it to be capable of finding it's home location and transporting garden stuff from point A to point B and, ... it just looks fancy
Ok that's fine then. The word lawnmower had me thinking that you wanted to mow your lawn
indeed, that is also one of the goals, but a want to try get as much out of as i can
Wheel encoders and distance measurements alone aren't really enough for good localization, since wheel encoders tend to drift over time and distance measurements assume you have an accurate map and a good idea of your current position. You'll have to use some kind of estimation technique to constantly correct your position, given you have a really good map. With a known starting point, wheel encoders, and a good map, this is probably achievable. If you're building your map as you go, you'll have to address the SLAM (simultaneous localization and mapping) problem. Doing SLAM on an arduino would be fairly difficult.
Why not use the roomba technique and wander around an area until your battery gets low?