Automated Lawn mower

Hi guys!! Can i have some knowledge about obstacle avoidance? Im currently doing my project entitled automated lawn mower and i need some algorithm that will mow the lawn entirely. It will stop as long as it completed cutting the tall grasses. Need some help guys :D thanks in advance

How do you plan to control the path of the mower? Or stop it going outside the lawn area?

Weedpharma

The lawn mower is automated so it has no remote control. The only controls is that it will continue to move and cut grass as long as it detects tall grasses. Though the lawn area is predefined!! I used an ultrasonic sensors to detects obstacles. I need help for an algorithm that it will cover and cut grass the whole lawn area. I already have the algorithm that in every detection of obstacles it will turn right, but still in will not cover the whole lawn area for it will only form a box and it will only go on the same spot. Tsss need help guys

Is the shape of the lawn random, or will it always be the same outline? The simplest algorithm is a spiral which will cut most of the grass. That will just leave corners if the lawn is rectangular.

Paul

I can just see it now during the debug process .... "howdy neighbor - sorry about that flower bed of yours". As far as the turn goes, don't use 90 degrees and you will avoid the box issue - use something like maybe 120 degrees so that it detects an obstacle and goes away at a different direction. I think you need a good fence though to avoid having unhappy neighbors if (when) that thing gets away. :o

Paul_KD7HB: Is the shape of the lawn random, or will it always be the same outline? The simplest algorithm is a spiral which will cut most of the grass. That will just leave corners if the lawn is rectangular.

Paul

The shape of the lawn will depend on the size of the lawn mower and it would be rectangle in shape probably!!!

gpsmikey: I can just see it now during the debug process .... "howdy neighbor - sorry about that flower bed of yours". As far as the turn goes, don't use 90 degrees and you will avoid the box issue - use something like maybe 120 degrees so that it detects an obstacle and goes away at a different direction. I think you need a good fence though to avoid having unhappy neighbors if (when) that thing gets away. :o

I already think about having a 135 degrees everytime it turns however i was thinking if the lawn mower was being cornered and it needs to do some backward directions.

There are lots of lawns that are nowhere near rectangular. Mine isn't for sure. There might be squarish corners to deal with - intersection of driveway with house, or street, or maybe a corner of the yard. Also plenty of obstacles to deal with - driveway, house, trees, watery areas, garden, etc.

I don't know how to code to look for the absence of any long grass - say you had a big front yard, it was all cut, how long do you decide to look before saying "all done!" and totally miss the back yard?

CrossRoads: I don't know how to code to look for the absence of any long grass - say you had a big front yard, it was all cut, how long do you decide to look before saying "all done!" and totally miss the back yard?

This was my problem of how to switch off the lawn mower. Though i have in my mind that the only trigger point to switch it off was that it will mow the lawn area totally 100% and no more tall grasses to be detected. Do i have to put a sensor to detect tall grass? and what kind of sensor? Please help

I think the best sensor is the human eye. You may have to organize the lawn into sections with buried wire sensor, and use different algorithms to cut one area vs another. For instance, I have a squarish section in front of my house with house, driveway, sidewalk, and neighbor making a squarish cornered rectangle. Just 1 small tree to deal with. The other side of the driveway is much larger, with several trees, sloping lawn, and a vegetable garden. The back of the yard is very oddly shaped, lots of individual trees, an island kind of area of trees, swingset, back deck, and picnic table. When I cut it with my riding mower, each section gets cut differently, and I can see where I'm going to make sure I don't waste time overlapping areas a lot. You may want to get a Roomba vacuum and see how it cleans a house, see if you can detect any pattern to how it goes around - and then finds its way back to a charging dock when done.

CrossRoads: I think the best sensor is the human eye. You may have to organize the lawn into sections with buried wire sensor, and use different algorithms to cut one area vs another. For instance, I have a squarish section in front of my house with house, driveway, sidewalk, and neighbor making a squarish cornered rectangle. Just 1 small tree to deal with. The other side of the driveway is much larger, with several trees, sloping lawn, and a vegetable garden. The back of the yard is very oddly shaped, lots of individual trees, an island kind of area of trees, swingset, back deck, and picnic table. When I cut it with my riding mower, each section gets cut differently, and I can see where I'm going to make sure I don't waste time overlapping areas a lot. You may want to get a Roomba vacuum and see how it cleans a house, see if you can detect any pattern to how it goes around - and then finds its way back to a charging dock when done.

So what would be the best algorithm would i be using? I cant decide it for myself, i need some professionals who could tell it to me :D Should i go with spiral algorithm, square algorithm, 135 degrees algorithm?

The big problem I see with detecting "tall grass" is telling the difference between tall grass, a shrub off the lawn or even a lawn that slopes up at some point. Get a goat :)

chaozknight2:
So what would be the best algorithm would i be using? I cant decide it for myself, i need some professionals who could tell it to me :smiley: Should i go with spiral algorithm, square algorithm, 135 degrees algorithm?

Why don’t you write a program to “mow” ten or twenty thousand simulated yards of various shapes. Try a bunch of mowing algorithms. Start them in random locations and directions. Also write an algorithm to “grade” the simulated mowers, and choose the “best” one (covers the entire area in the least amount of travel time, doesn’t get stuck in odd-shaped corners, etc.) Then try it out in the real world, carefully.

gpsmikey: The big problem I see with detecting "tall grass" is telling the difference between tall grass, a shrub off the lawn or even a lawn that slopes up at some point. Get a goat :)

Yeah, thats why i didnt push through the sensor that detects tall grass. Im thinking also that if i where going to put some whiskers so that it will move according to the size of the obstacles, it will continually just bump to the obstacle until it reaches a clear path to turn right or left

chaozknight2: Yeah, thats why i didnt push through the sensor that detects tall grass. Im thinking also that if i where going to put some whiskers so that it will move according to the size of the obstacles, it will continually just bump to the obstacle until it reaches a clear path to turn right or left

Look, your only real answer is to contact Google and see if they will let you use their self-driving automobile code.

Paul

Paul_KD7HB:
Look, your only real answer is to contact Google and see if they will let you use their self-driving automobile code.

Paul

Hahaha i think my project is impossible to mow 100% given the predefined area with random obstacles tssss