Professional Documents
Culture Documents
Autonomous Lawnmower Control
Autonomous Lawnmower Control
Autonomous Lawnmower Control
Cameron Morland
98060792
July 24, 2002
Abstract
A short summary of previous work in autonomous lawnmowers and self-driving
tractors is presented. None of the existing solutions provide adequate performance at
clearing lawns; they take too long, drive too far, and do not clear the lawn very effectively. A new solution is proposed, based on the Behaviour Based approach to robotics
developed at MIT. By permitting the simulated robot to wander randomly, then adding
behaviours for goal selection, goal seeking, and obstacle marking, a lawnmower which
is both efficient and effective can be created. Several performance enhancements to
the basic design are described. The conclusion is that the new system should perform
quite well; to work out the details, it should be implemented on a physical robot.
Contents
1 Introduction
1.1 Previous Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Problem Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
1
2 Design Approach
2.1 Environment . . . . . . . . . . . .
2.2 General Methodology . . . . . . .
2.2.1 Behaviour Based Robotics
2.3 Structure . . . . . . . . . . . . .
2.4 Performance Measurement . . . .
.
.
.
.
.
2
2
3
3
3
4
.
.
.
.
.
.
.
.
.
.
4
4
4
5
5
5
5
6
6
6
6
3 Behaviours
3.1 Nave Solution . . . . . . . .
3.2 Higher Level Behaviours . .
3.2.1 Goal Selection . . . .
3.2.2 Goal Seeking . . . .
3.2.3 Obstacle Marking . .
3.2.4 Performance . . . . .
3.3 Performance Enhancements
3.3.1 Wall Following . . .
3.3.2 Block Filling . . . . .
3.3.3 Memory . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Recommendations
List of Figures
1
2
3
4
5
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
2
3
5
6
7
Introduction
This project was undertaken to determine the feasibility of developing an intelligent autonomous lawnmower. Proof of the success of the technique described is provided by computer simulation.
1.1
Previous Work
A number of autonomous lawnmowers exist or are being developed. The most visible is
Friendly Robotics RL500 Robomow, which is currently being sold at Home Hardware stores
in Canada. A photograph of the lawnmower is shown in Figure 1.
1.2
Problem Definition
The lawnmower is required to mow lawns. To do this, it must cross every point in a plane
and avoid collisions with obstacles. The mower will not sell well if it performs as poorly
1
as the existing commercial products described in Subsection 1.1. It should avoid crossing
points repeatedly to avoid wasting time, and drive in neat rows to ensure the lawn looks
good throughout the run. It should also be fully autonomous; this means it must not require
the user to give it a detailed path to follow, it must work it out on its own.
Due to heavy competition in the extremely low end market, the product should be targeted at mid range buyers, especially mowing companies and golf courses.
The robot should be able to operate without being provided any information about the
layout of the environment. Introduced to a new location, it must be able to function properly
immediately.
Design Approach
2.1
Environment
To develop the control structure and prove that the implementation of the robot is sound,
it is necessary to demonstrate a working model. Thankfully, it is possible to use a robot
simulator instead of building a real physical robot. The simulator used in this project is
Rossums Playhouse[6], a free software1 robot simulator written in Suns Java programming
language.
For most of the testing, the map shown in Figure 2 was used. It is more difficult than
most normal properties, so if the robot can work successfully in this environment it should
work in most other cases.
2.2
General Methodology
The behaviour based approach to robotics[8], developed by Rodney Brooks at MIT, has
proven itself to be extremely successful for mobile robotics.
2.2.1
In the behaviour based design philosophy, the Subsumption Architecture permits a handful of
very simple behaviours to guide the robot. These behaviours link sensory inputs to outputs,
using no more processing than simple finite-state machines, augmented with timing elements
[9]. Behaviours can subsume other behaviours, ie they can modify their inputs or override
their outputs.
The architecture comprises a parallel implementation, with motor commands closely tied
to sensor signals. The general form is shown in Figure 3.
sensors
actuators
2.3
Structure
The program which controls the robot is behaviour based, so it is formed of a set of layers.
The lowest level behaviour is an active bumper system, which can detect when the robot has
collided with an obstacle and move to become unstuck. The second lowest level behaviour
uses range sensors to determine how far away the wall is. Clearly, lower level behaviours tend
to have higher priority the robot cannot be expected to navigate or even avoid obstacles
when it is actually in contact with something.
To permit the robot to keep track of where it has mowed, it must have a means of
determining its position in space. Once it knows its position, a simple two dimensional array
of square tiles can be used to indicate which areas of the lawn have been cleared.
Several implementations of position measurement could be used. The simplest is to use
the Global Positioning System, which due to the end of Selective Availability can provide
10 m resolution very inexpensively. An improved system, differential GPS[10], yields 0.10 m
resolution[11]. A base station GPS receiver is required, which provides the robot with a
differential correction signal. The base station must be within 100 km of the robot. Many
areas, especially near sea ports, have publicly accessible dGPS base stations (in the US, at
least, they are provided by the Coast Guard). One base station can serve any number of
receivers.
3
2.4
Performance Measurement
To make a good decision of what behaviours to use, there must be a measure of the quality
of particular behaviour sets. A good set of behaviours will meet several criteria:
1. Time must be minimised to permit the greatest number of properties to be covered in
a short time.
2. Distance travelled should also be as short as possible, since driving around will drain
the battery excessively.
3. The robot should drive in a manner that is pleasing to human observers; it should not
leave unsightly tufts of uncut grass during the cutting, but even more importantly the
finished result must be flawless.
3
3.1
Behaviours
Nave Solution
It is common for behaviour based robots to be developed from the ground up, ie by building
and testing the lowest level behaviours first, then adding increasingly high level behaviours
one at a time. As each behaviour is added the system is tested, so it must give at least basic
performance throughout the development.
As a result of this development technique, it is possible to examine performance of the
system without all the behaviours running. With all behaviours except collision avoidance
disabled, the system becomes identical to the existing commercial autonomous lawnmowers
described in Subsection 1.1. How did it perform on the standard map?
Figure 4 shows the path followed by the robot after running for several hours. Significant
blocks in the south-west quadrant remain uncut, while other regions have been cut dozens
of times. Clearly such a random pattern is not acceptable.
3.2
To improve performance, a set of higher level behaviours was created. One behaviour selects
a goal, that is, a tile which the robot wishes to visit next, and selects another goal if the
current goal is reached or appears to be unreachable. The second behaviour drives towards
the goal. A third behaviour detects when the goal appears to be in space occupied by an
obstacle, and marks the obstacle on the map.
4
Goal Selection
The robot must choose as a goal a convenient tile. What does convenient mean in this
context? A good convenience score should be given to tiles which are easy to drive to and
near many already cut tiles. Tiles which are easy to drive to are those which are close to the
current position of the robot, straight ahead, and not separated from the robot by obstacles.
3.2.2
Goal Seeking
To see how the system system performs, a very simple goal seeking behaviour was added.
This behaviour tries to drive to the current goal tile, by turning in the direction of the goal
and driving forward. If an obstacle is encountered, lower level behaviours ensure that the
robot drives around the obstacle; once the robot is again in the clear the goal seeking
behaviour takes over again.
3.2.3
Obstacle Marking
It must be possible for the robot to give up on a tile, otherwise if it had selected as a goal a
tile which overlapped an obstacle, it would never be able to reach it, and would be stuck.
3.2.4
Performance
Even with very simple behaviours for goal selection, goal seeking, and obstacle marking, a
dramatic improvement was seen, as shown in Figure 5. This was the first trial run with the
new behaviours.
Note that the robot only counts crossing a tile when the centre of the robot enters the
tile. So there would not actually be a swath of uncut grass around the edge.
5
3.3
Performance Enhancements
Although the addition of higher level behaviours increased performance greatly, tweaking
the behaviours slightly continued to improve performance.
3.3.1
Wall Following
The first behaviour modification was to make the robot tend to drive along walls, by modifying the collision avoidance behaviour to consider not only distance but also change in
distance. This saved time while driving around the perimeter of the property.
3.3.2
Block Filling
The obstacle marking behaviour was modified to detect when the tile being marked is in a
region fully surrounded by obstacles, and mark the entire area as an obstacle. This could
happen, for example, if the robot had detected all the tiles surrounding a house. By marking
the entire area as a block it does not need to check every point in the house individually.
3.3.3
Memory
A third behaviour modification, but also the simplest and most effective, was to store the
position of the obstacles from run to run. This way, the robot already knows where the bulk
of the obstacles are, and need only deal with dynamic obstacles.
One problem with this initially was that some tiles would incorrectly be labelled as
obstacles, so the area would become speckled with false obstacles. Quite a large amount
of speckling is visible in Figure 5. The solution was to detect and remove these false obstacles
between runs. Because the majority of the false obstacles were only one tile wide, they could
6
be removed by repeatedly removing all obstacle tiles with three or more adjacent cut tiles
until no such tiles remained.
With the memory behaviour addition, average run length decreases from 259 m to 212
m, saving 18%. As shown in Figure 6, considerable scatter is still present due to the poor
goal seeking behaviour.
300
250
+
200
+
+
First Run
Second Run +
Average
Average
10
11
150
100
50
0
6
7
Run #
12
Recommendations
The simulator demonstrates that using a behaviour based approach can give excellent performance at cutting the grass in an unmapped environment, and that building an obstacle
map can improve performance. What is the next step?
The three high level behaviours could certainly be improved. Most importantly, choosing
goals which are not on the other side of obstacles would be helpful. On a related note,
improving the ability of the robot to drive towards goals, even going as far as being able to
solve mazes, would be helpful. This could be implemented using an optimal search algorithm
such as A? , described in many AI textbooks[12].
The edges still have a tendency to be somewhat ragged. A special behaviour to trace the
border might be a good idea.
Whatever improvements are done, due to differences between reality and the simulator,
further work should be tested on a real robot. Due to the long time required between runs
(to permit the grass to grow) having programs able to run on both the real robot and the
simulator would be helpful; the simulator will work with programs written in Java, but C
and C++ are also supported.
To get a reliable, working robotic lawnmower that can be modified, the best choice is
probably to buy a commercial robotic lawnmower and modify it. It should be fairly easy to
7
reverse-engineer the interface to the sensors and motors, and to then build a replacement
that can be connected to an embedded computer. The robot would require a differential
GPS setup for determining location; if bi-directional connectivity, such as a radio modem,
were used to transmit the dGPS correction signal, it could also be used to log information
to a base computer.
References
[1] Susan Bourette. Grass is greener when you have this little fella on duty. The Toronto
Star, April 4th 2002.
[2] Parallax Inc. Robocut: Do it yourself lawnmower robot. http://www.parallaxinc.
com/html_files/customer_apps/apps_robocut.htm.
[3] Dr. John F. Reid. A status report on autonomous guidance of agricultural vehicles
in the US: New frontiers in the 21st century. http://www.age.uiuc.edu/oree/pdf/
asae983110.pdf, 1998.
[4] Jason Strait. Engineers develop tractor with everything but driver. http://www.
montanaforum.com/rednews/2002/05/24/build/ag/tractor.php, May 23 2002.
[5] David F. Salisbury.
Tractor drivers soon may say, look, ma!
no hands!.
http://www.stanford.edu/dept/news/report/news/september24/gsbtractor.html,
September 24 1997.
[6] G. W. Lucas. The rossum project. http://rossum.sourceforge.net/sim.html, 1999.
[7] Free Software Foundation, Inc. GNU general public license. http://www.gnu.org/
copyleft/gpl.html, June 1991.
[8] Rodney A. Brooks. Intelligence without reason. In Proceedings of the 1991 International
Joint Conference on Artificial Intelligence, pages 569595, 1991.
[9] Rodney A. Brooks. A robust layered control system for a mobile robot. IEEE Journal
of Robotics and Automation, pages 1423, April 1986.
[10] Peter H. Dana. Global positioning system overview.
http://www.colorado.Edu/geography/gcraft/notes/gps/gps.html.
[11] Michael Lough Dave Stowers Ronald J. Muellerschoen, Willy I. Bertiger and Danan
Dong. An internet-based global differential GPS system, initial results. Technical report,
Jet Propulsion Laboratory, California Institute of Technology, 2000. http://gipsy.
jpl.nasa.gov/igdg/papers/ion_paper_2000.pdf.
[12] Stuart Russel and Peter Norvig. Artificial Intelligence: A Modern Approach. PrenticeHall, Inc., 1995.