@section(Sonar Mapping)
Primarily because of computational expense, practical real-world stereo
vision navigation systems @cite(moravec80, thorpe83) build very sparse depth
maps of their surroundings. Even with this economy our fastest system,
described in @cite(matthies84), takes 30 - 60 seconds per one meter step
on a 1 mips machine.
Direct sonar range measurements promised to provide basic navigation and
denser maps with considerably less computation. The readily available
Polaroid ultrasonic range transducer @cite(polaroid) was selected and a ring
of 24 of these sensors was mounted on Neptune.
We find sonar sensors interesting also because we would like to investigate
how qualitatively different sensors, such as a sonar array and a pair of
cameras, could cooperate in building up a more complex and rich description
of the robot's environment.
@subsection(Approach)
Multiple wide-angle sonar range measurements are combined to map
the surroundings of an autonomous mobile robot. A sonar range reading
provides information concerning @r(empty) and @r(occupied) volumes in a cone
(subtending 30 degrees in our case) in front of the sensor. The reading is
modelled as probability profiles projected onto a rasterized map, where
somewhere occupied and everywhere empty areas are represented. Range
measurements from multiple
points of view (taken from multiple sensors on the robot, and from the same
sensors after robot moves) are systematically integrated in the map.
As more readings are added the area deduced
to be empty expands, and the expanding empty area encroaches on and sharpens
the possibly occupied region. The map becomes gradually more detailed.
The final map shows regions probably occupied,
probably unoccupied, and unknown areas. The method deals effectively with
clutter, and can be used for motion planning and for extended landmark
recognition.
It was tested in cluttered environments using our @i(Neptune)
mobile robot.
For navigation and recognition we developed a way of convolving two sonar
maps, giving the displacement and rotation that best brings one map into
registration with the other, along with a measure of the goodness of the
match.
The sonar maps happen to be very useful for motion planning. They are denser
than those made by our stereo vision programs, and computationally about an
order of magnitude faster to produce. We presently use them with the
Path Relaxation method @cite(thorpe84) to plan local paths for our robot.
@subsection(The Sensor)
The sonar devices being used are Polaroid laboratory grade ultrasonic
transducers @cite(polaroid). These sonar elements have a useful measuring
range of 0.9 to 35.0 ft. The main lobe of the sensitivity function
corresponds to a beam angle of 30@+(o) at @m{-38} dB. Experimental results
showed that the range accuracy of the sensors is on the order of 1 %. We
are using the control circuitry provided with the unit, which is optimized
for giving the range of the nearest sound reflector in its field of view,
and works well for this purpose.
@subsection(The Array)
The sonar array, built at Denning Mobile Robotics, and mounted on the
@i(Neptune) mobile robot is composed of:
@begin(itemize)
A ring of 24 Polaroid sonar elements, spaced 15@+(o) apart, and
mounted at an height of 31 inches above the ground (see Fig.
@ref(Neptunerobot)).
A Z80 controlling microprocessor which selects and fires
the sensors, times the returns and provides a range value.
A serial line over which range information is sent to a VAX
mainframe that presently interprets the sonar data and performs
the higher level mapping and navigation functions.
@end(itemize)
@subsection(Representing the Sonar Beam)
Because of the wide beam angle individual rangings
provide only indirect information about the location
of the detected objects. We combine the constraints from individual
readings to reduce the uncertainty. Our inferences are represented
as probabilities in a discrete grid.
A range reading is interpreted as providing information about space volumes
that are probably @c(EMPTY) and somewhere @c(OCCUPIED). We model the sonar
beam by probability distribution functions. Informally, these functions
model our confidence that the various points inside the cone of the beam are
empty and our uncertainty about the location of the point, somewhere on the
range surface of the cone, that caused the echo. The functions are based on
the range reading and on the spatial sensitivity pattern of the sonar and
are a maximum near the center axis of the beam and taper to zero
near the edges.
These probability density functions are projected on a horizontal plane
to generate map information. We use the profiles that correspond to a
horizontal section of the sonar beam.
@subsection(Building Maps)
Sonar Maps are two-dimensional arrays of cells corresponding to a horizontal
grid imposed on the area to be mapped. The final map has cell values in the
range (@m(-)1,1), where values less than 0 represent probably empty regions,
exactly zero represents unknown occupancy, and greater than 0 implies a
probably occupied space. This map is computed in a final step from two
separate arrays analogous to the empty and occupied probability
distributions introduced above. The position and the orientation of the
sonar sensor at the time of the reading are used to register the profiles of
each beam with the map.
Different readings asserting that a cell is @c(EMPTY) will enhance each
other, as will readings implying that the cell may be @c(OCCUPIED) while
evidence that the cell is @c(EMPTY) will weaken the certainty of it being
@c(OCCUPIED) and vice-versa.
The operations performed on the empty and occupied probabilities are not
symmetrical. The probability distribution for @i(empty) areas represents a
solid volume whose totality is probably empty but the @i(occupied)
probability distribution for a single reading represents a lack of knowledge
we have about the location of a single reflecting point somewhere in the
range of the distribution. Empty regions are simply added using a
probabilistic addition formula. The @i(occupied) probabilities for a single
reading, on the other hand, are reduced in the areas that the other data
suggests is empty, then normalized to make their sum unity. Only after this
narrowing process are the @i(occupied) probabilities from each reading
combined using the addition formula.
One range measurement contains only a small amount of information. By
combining the evidence from many readings as the robot moves in its
environment, the area known to be empty is expanded. The number of regions
somewhere containing an occupied cell increases, while the range of
uncertainty in each such region decreases. The overall effect as more
readings are added is a gradually increasing coverage along with an
increasing precision in the object locations. Typically after a few hundred
readings (and less than a second of computer time) our process is able to
"condense out" a comprehensive map covering a thousand square feet with
better than one foot position accuracy of the objects detected. Note that
such a result does not violate information theoretic or degree of freedom
constraints, since the detected boundaries of objects are linear, not
quadratic in the dimensions of the map. A thousand square foot map may
contain as little as a hundred linear feet of boundary.
@section(Map Matching)
We have also developed a procedure that can match two maps and
report the displacement and rotation that best takes one into the other.
Our most successful programs begin with the thresholded maps
described above, with cell values that are negative if the cell is empty,
positive if occupied and zero if unknown.
A measure of the goodness of the match between two maps at a trial
displacement and rotation is found by computing the sum of products of
corresponding cells in the two maps. An occupied cell falling on
an occupied cell contributes a positive increment to the sum, as does an
empty cell falling on an empty cell (the product of two negatives). An empty
cell falling on an occupied one reduces the sum, and any comparison
involving an unknown value causes neither an increase nor a decrease.
This naive approach is very slow. Applied to maps with a linear
dimension of @i(n), each trial position requires @p(O)(@i(n@+(2)))
multiplications. Each search dimension (two axes of displacement and
one of rotation) requires @p(O)(@i(n)) trial positions. The total
cost of the approach thus grows as @p(O)(@i(n)@+(5)). With a typical
@i(n) of 50 this approach can burn up a good fraction of an hour
of Vax time.
Considerable savings come from the observation that most of the
information in the maps is in the occupied cells alone. Typically
only @p(O)(@i(n)) cells in the map, corresponding to wall and object
boundaries, are labelled occupied. A revised matching procedure compares
maps A and B through trial transformation @i(T) (represented by a 2x2
rotation matrix and a 2 element displacement vector) by enumerating
the occupied
cells of A, transforming the co-ordinates of each such cell through
@i(T) to find a corresponding cell in B. The [A, B] pairs obtained this way
are multiplied and summed, as in the original procedure.
The occupied cells in B are enumerated and multiplied with
corresponding cells in A, found by transforming the B co-ordinates through
@i(T)@+(@ @m(-1)) (the inverse function of @i(T)), and these products are
also added to the sum. The result is normalized by dividing by the total
number of terms. This procedure is implemented efficiently by
preprocessing each sonar map to give both a raster representation and a
linear list of the co-ordinates of occupied cells. The cost growns as
@p(O)(@i(n)@+(4)), and the typical Vax running time is down to a few
minutes.
A further speedup is achieved by generating a hierarchy of
reduced resolution versions of each map. A coarser map is produced from a
finer one by converting two by two subarrays of cells in the original into
single cells of the reduction. Our existing programs assign the maximum
value found in the subarray as the value of the result cell, thus preserving
occupied cells. If the original array has dimension @i(n), the first
reduction is of size @i(n)/2, the second of @i(n)/4 and so on. A list of
occupied cell locations is produced for each reduction level so that the
matching method of the previous paragraph can be applied. The maximum number
of reduction levels is @b(log)@-(2)@i(n). A match found at one level can be
refined at the next finer level by trying only about three values of each of
the two translational and one rotational parameters, in the vicinity of the
values found at the coarser level, for a total of 27 trials. With a moderate
a-priori constraint on the transformation this amount of search is adequate
even at the first (coarsest) level. Since the cost of a trial evaluation is
proportional to the dimension of the map, the coarse matches are inexpensive
in any case. Applied to its fullest, this method brings the matching
cost down to slightly larger than @p(O)(@i(n)), and
typical Vax times to under a second.
We found one further preprocessing step is required to make the
matching process work in practice. Raw maps at standard resolutions (6 inch
cells) produced from moderate numbers (about 100) of sonar measurements have
narrow bands of cells labelled @i(occupied). In separately generated maps
of the same area the relative positions of these narrow bands shifts by as
much as several pixels, making good registration of the occupied areas of
the two maps impossible. This can be explained by saying that the high
spatial frequency component of the position of the bands is noise, only the
lower frequencies carry information. The problem is fixed by filtering
(blurring) the occupied cells to remove the high frequency noise.
Experiment suggests that a map made from 100 readings should be blurred with
a spread of about two feet, while for map made from 200 readings a one foot
smear is adequate. Blurring increases the number of cells labelled
@i(occupied). So as not to increase the computational cost from this
effect, only the final raster version of the map is blurred. The occupied
cell list used in the matching process is still made from the unfiltered
raster.
With the process outlined here, maps with about 3000 six inch cells made
from 200 well spaced readings can be matched with an accuracy of about six
inches displacement and three degrees rotation in one second of Vax time.
@section(Results)
We incorporated the sonar map builder into a system that successfully
navigates the Neptune robot through cluttered obstacle courses. The
existing program incrementally builds a single sonar map by combining
the readings from successive vehicle stops made about one meter apart.
Navigation is by dead reckoning - we do not yet use the sonar map matching
code. The next move is planned in the most recent version of the map by a
path-planning method based on path relaxation @cite(thorpe84). Since this
method can cope with a probabilistic representation of occupied and empty
areas and does path-planning in a grid, it fits naturally into our present
framework. The system has successfully driven Neptune the length of our
cluttered 30 by 15 foot laboratory using less than one minute of computer
time.