Anda di halaman 1dari 10

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

Friendly Robotics RL500 Robomow . . . . . . .


Test map . . . . . . . . . . . . . . . . . . . . .
General form of Behaviour Based robots . . . .
Result with all high level behaviours disabled .
Result with non-optimised high level behaviours
Run lengths with and without memory . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

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.

Figure 1: Friendly Robotics RL500 Robomow


The Robomow requires a wire to be embedded in the environment, indicating the border
of the property. It then drives randomly within the property, turning whenever it encounters
an obstacle (or the boundary wire).
Performance of the Robomow is not excellent. Mid-job, the lawn is not a pretty sight.
Instead, there are uncut stripes of lawn that may resemble a crop of Mohawk haircuts....
The perimeter of the lawn often needs trimming after the mower has done its work.[1]
MUX Elektronik in Sweden has created instructions and a kit for a do it yourself
robot lawnmower using off the shelf components[2]. Their robot, like the Robomow, wanders
randomly, and can be expected to perform about as poorly.
A large number of self driving prototypes have been developed for agricultural use[3].
The University of Illinois and John Deere have developed a self driving tractor[4], which can
follow a specified path in the field, and change tasks dynamically depending on its location[5].
The system must be told what route to follow, but can follow the route with high precision.

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.

Figure 2: Test map


The H indicates the starting position of the robot. The other structures are obstacles:
walls, trees, and anything else that should not be cut by the mower.
1

When we speak of free software, we are referring to freedom, not price.[7]

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

Behaviour Based Robotics

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

reason about behaviour of objects


plan changes to the world
identify objects
monitor changes
build maps
explore
wander
avoid objects

actuators

Figure 3: General form of Behaviour Based robots

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

Another method of determining location in space is to use a number of radio transmitters,


and compare the time difference between pairs of signals. Each pair defines uniquely a
hyperbola, so two pairs can uniquely determine the current point. This method has the
drawback of requiring several radio transmitters for each robot. In addition, changes in the
speed of light in air, due to changes in temperature, pressure, or humidity, will cause some
positioning errors.

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

Higher Level Behaviours

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

Figure 4: Result with all high level behaviours disabled


3.2.1

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

Figure 5: Result with non-optimised high level behaviours

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

Run Length (m)

250
+
200

+
+

First Run
Second Run +

Average

Average

10

11

150
100
50
0

6
7
Run #

12

Figure 6: Run lengths with and without memory

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.

Anda mungkin juga menyukai