# Working of Autonomous Lawn mower(ALM) in an unbounded area without a perimeter wire

I have an Autonomous Lawn mower(ALM) which can mow a certain lawn area when that area is bounded by a perimeter wire. Even when that perimeter wire is removed, it has to mow the above mentioned area accurately without slipping into a neighboring area.

Constraints and problems:

1. The ALM is an open loop system.
2. Differential GPS was tried, but it did not yield proper results.
3. Any iterative pattern of area coverage can be used provided the error in each iteration is not added cumulatively which can result in unpredictable error in the end.

I do not expect full fledged solution. But I need a starting point to understand motion planning particularly for unbounded robotics to solve this problem.

I searched on internet to know about the knowledge sources about motion planning but could not get good results. Can anyone guide me to know about such sources preferably books and articles on internet which can help me to solve this problem?

The above picture shows the irregular lawn area which does not have any enclosures and perimeter wire 1.The red mark shows the center point of lawn .

2.The grey area is the initial scaled down area which resembles in shape to the larger area .I could not draw the grey area which exactly resembles the larger green area .

3.The grey lines are the contours which from the tracks to be followed by the lawn mower

Idea description:

1.Using planimeter app for onetime , the shape and dimension of the lawn area (green area) can be known Link:https://play.google.com/store/apps/details?id=com.vistechprojects.planimeter&hl=en

2.Center of polygon can be found by using the method in the following link http://en.wikipedia.org/wiki/Centroid#Centroid_of_polygon

3.Calculation of area of grey shape in the above figure .

4 . Grey shape is the least possible area which can be grazed by the ALM . Grey shape is similar to the green area shape and it is formed when Green area is scaled down

To determine the scale down factor which is a numerical value ‘ n’ (n<1) Where Grey area = n * Green area

Once the Grey area is known , the number of contours or tracks to be grazed by ALM have to be determined manually .

The width of contour is equal to the distance between the blades on the either end i.e. the width which can be grazed by ALM in a single stroke .

Green area = Grey area + area of track 1 + area of track 2 + area of track3 + . . . . . . + area of track n

5.Once the lawn mower is switched on ,it should reach the center of the lawn (red mark showed in the above figure)

6.Then, ALM should graze the least possible area or grey area .

7.After that ALM should Switch to contour circumscribing the grey area . It should continue circumscribing in each track till all the tracks are completed( decision has to be made by validating against the calculated and preset value ' No.of tracks' in ALM)

In this way entire lawn can be mowed without the need of perimeter wire and also ALM would not mow the neighbor’s lawn

Challenges :

a. Enable ALM to reach the center point of the lawn

a. To make ALM mow the grey area accurately

b. To make the ALM switch from one track to track .

c. To bypass the obstacle in track and return to the same track .

When i mentioned this idea to my colleague ,he mentioned the about possible cumulative addition of error in each iteration resulting in an unpredictable error in the end .

I intend to minimize the error and fix the boundary as correct as possible. In fact this deviation should be predictable before it can be corrected .

• Welcome to robotics user1394, but from our faq: You should only ask practical, answerable questions based on actual problems that you face. Chatty, open-ended questions diminish the usefulness of our site. Check out How to Ask and tour for a good introduction for how stack exchange works. May 30, 2013 at 10:40
• I suggest asking a question like "How can a robot of type X do action of type Y". That is more likely to get good responses. May 31, 2013 at 14:58
• @Josh:I hope now the question is specific .Please look into it Jun 3, 2013 at 6:05
• Thanks for the update @user1394 your revised question is much clearer, but I'm not sure how practical it is. You basically discount the standard solutions to this problem before you even start. Open loop control, inadequate GPS and no boundary conditions basically make this an unsolvable problem without removing some of your constraints. Take a look at this question and the Concepts section of my answer to a similar question. Jun 3, 2013 at 10:09
• Given the major edit to this question, I have closed and reopened it to clear the now obsolete close votes. Jun 3, 2013 at 10:23

You have an interesting approach, but I think it's the wrong approach; you've painted yourself into a corner by trying to avoid some technical obstacles (instead of just tackling them).

Based on the information you've provided, it sounds like the goal is for this robot to successfully mow an irregularly-shaped lawn while staying within an invisible boundary -- defined using GPS.

A positioning system (enabling closed-loop control) is critical to accomplishing this goal. Going without one is the equivalent of pushing the lawnmower around the yard while blindfolded; not only is it impractical, having a spinning blade on a blindfolded robot borders on unethical. There are ways to improve the accuracy of GPS, e.g.

Once you have a robot that knows its precise location, you do not need to pick your algorithm based on minimizing error; you need only visit every position in the lawn area. (Remember, you will have already used a GPS to draw the boundary of the lawn.) I would refer you to other questions on this site that concern coverage, such as:

• Dear Ian , Thanks a lot for the comprehensive answer.Hope I will be able to use the mentioned content and solve the problem Jun 7, 2013 at 5:05
• These are good questions, so don't stop asking them :)
– Ian
Jun 7, 2013 at 16:42

As others have said, you over constrained the problem. In order to be workable you need to loosen some constraints. Chiefly, you need to close the loop. You have admitted as much when you said "There should also be a validation at certain crucial points of task, to check whether it's acting according to the algorithm"

You must recognize that an open loop motion command does not always result in consistent motion. There will usually be one side driving on long grass and the opposite side on short, so it will tend to accumulate systematic error which can be compensated. With careful observation, you could tune out path error caused by ground contour; for one location only, not a very universal solution. But how do you compensate for varying moisture levels(coefficient of friction), obstacles, changing power levels in prime mover, wheel spin. These are just a few of the problems unaddressed by your plan. You just need some type of sensor feedback.

The simplest feedback system I can think of is a number of lever switches around the front and both sides with 9in^2 paddles that float on top of the grass and detect grass height(mowed or unmowed).

The operator would begin by manually mowing a perimeter strip. Finishing with one side on already mowed grass then engaging autonomous mode. If at any point all of the switches detect mowed grass, stop because you are done, or on your way to a neighbors yard. Also stop if all switches detect unmowed grass because then you are again blazing a trail to the neighbors yard. Either way, operator intervention is now required. As long as one side is mowed and the opposite unmowed, proceed forward. Use the array off switches along the front to proceed with a line following algorithm.

Working from the outside inward is preferred as the operator would still be onsite to observe the first few passes which present the greatest risk and probability of failure. Is there a compelling reason that you chose to work from the inside outward without any way to detect the perimeter?

So you want your robot to stay in a fixed area, without giving any sensor feedback? Don't move the robot...

More seriously, I don't see how you could get away with having no sensor feedback. You tagged your question as motion planning. Yes, you could find a coverage pattern which minimizes your dead reckoning error, e.g. by looking for the least amount of turns or shortest path. But if you want to use the system in the real world I don't see how this would ever result in the robot not going over your boundary.

Ah.. wait. Lets say you know your boundary and your starting position, the best I could think of here would be to go straight to your bounds and then move along the bounds at a distance of lets say three sigma of your position uncertainty. You would try to cover your area from the outside to the inside, and always keep a three sigma distance of your position uncertainty to the borders. At some point your uncertainty ellipse will not fit into the area anymore and you will have to stop. With a bit of luck, large parts of your area may have been covered. Not sure if its practical, since I would not expect lawn movers to have very good odometry.

• If there's a perimeter wire ,there's no problem in coverage .But my problem is to fix the boundary which i thought coverage algorithm would do itself .please see edit of my question. Jun 4, 2013 at 10:57