kok.seng.chong@eng.monash.edu.au lindsay.kleeman@eng.monash.edu.au
Intelligent Robotics Research Centre (IRRC)
Department of Electrical and Computer Systems Engineering
Monash University, Clayton Victoria 3168, Australia
http://calvin.eng.monash.edu.au/IRRC/index.html
This paper presents a strategy for achieving practical mapping navigation using a wheels driven robot equipped with a sonarray (an advanced sonar array). The original mapping navigation experiment, carried out with the same robot configuration, builds a feature map consisting of commonplace indoor landmarks crucial for localisation, namely planes, corners and edges. The map exhaustively maintains covariance matrices among all features, thus presents a time and memory impediment to practical navigation in large environments. The new local mapping strategy proposed here breaks down a large environment into a topology of local regions, only maintaining the covariance among features in the same local region, and the covariance among local maps. This notion of two hierarchy representation drastically improves the memory and processing time requirements of the original global approach, while preserving the statistical details necessary for an accurate map and prolonged navigation. The new local mapping scheme also extends the endeavour towards reducing error accumulation made in the global mapping strategy by eliminating totally error accumulated between visits to the same part of an environment. This is achieved with a map matching strategy developed exclusively for the advanced sonar sensor employed. The local mapping strategy has been tested in large, real life indoor environments and successful results are reported here.
1 Introduction
This work is motivated by the need to extend the Julier Uhlmann Kalman Filter based mapping strategy developed by the authors [6] to large environments. The original strategy treats the robot’s configuration and the environmental features as evolving states, and exhaustively maintains covariance matrices among them. It works well in a reasonably sized environment where the number of landmarks to be mapped are limited. However, to map a very large environment, the strategy is challenged by the need to store and process an ever expanding list of features. This also implies gradual degradation of processing speed and increased demand for computer random access memory (RAM). For example, when a map has n features and a new measurement arrives, there are n features to test out for the possibility of fusion before calling it a new feature. If fusion is possible, the robot’s position and the state of all n existing map features, and as many as (n+1)(n+2)/2 covariance matrices must be updated. Even if fusion does not occur, to integrate it into the list of existing map features the new measurement must create a correlation matrix with every existing map feature. The requirement for memory grows quadratically and without bound. For this, [13] attempts to reduce the size of covariance matrix by declaring features with a small covariance as ‘confirmed targets’, thereby deleting its cross-covariance with the robot’s position and other features.
Figure 1: Robot exploring a large environment consisting of several ‘regions’
The original mapping strategy also cannot cope with the problem of error accumulation with complete success. It is well known that linearisation of non-linear equations introduces bias [2,10,13]. Bias also comes from the physical systems themselves such as the imperfect calibration of wheels and the placement offset of the sonar sensor from the ‘true centre’ of the robot. In addition, noise characteristics such as that of odometry, speed of sound and target bearing are fairly hard to come by accurately. All these factors make it very difficult to continually produce a consistent map. The reader is referred to the example in Figure 1. The robot has just mapped region A, and its path planning strategy leads it to explore region B first and then region C by traversing region A again. Theoretically speaking, the robot would localise with the features in region A to recover from the error accumulated in region B. In practice, if region B is large, the error accumulated will be large, so the robot might not be able to recognise that it is re-entering region A if it relies on Kalman Filter only. It then proceeds to build a conflicting map on top of the original map of region A. By the time region C has been mapped, its actual spatial positioning relative to region A is grossly inaccurate. The example just given illustrates a classical mapping problem - if a robot returns to its starting position after making a long distance navigation, can the robot identify it?
This work intends to tackle the above problems using a local mapping strategy. With this strategy, the environment is represented as a set of interconnected local maps. A new local map is created as usual until the covariance of position becomes large. That occurs when the robot has travelled a reasonably long distance since it first created its current local map. The large position covariance is a good indication that the features in the current local maps are not highly correlated with the features in the new local map. By not maintaining the covariance matrices among features from two separated local maps, the strategy gains the memory and processing advantages. The authors also attempt to alleviate the inevitable problem of error accumulation by map matching [4]. Refer to Figure 1 again, the authors’ local mapping scheme attempts to recognise region A when the robot reenters it by scrutinising the error in the robot’s position relative to region A. After affirming that the possibility of reentrance is high, it performs a map match with its new measurements on the local map of region A. If map matching is successful, the latest position of the robot will be accurate with respect to the local map of region A. The local map of region C generated will then be independent of the position error accumulated in the process of mapping region B.
Local mapping is not a new concept. The work in [1] resorts to a graph of local feature maps that register the three dimensional information of the edges on the floor obtained from a camera. A new local map is created when none of the features in the current local map is visible from the next position. The arcs between local maps contain the robot’s displacement information. To facilitate fast local mapping with sonar sensing, [9] stores a local map as a list of pre-processed sonar reflection points. Dynamic environments are effortlessly accommodated by deleting conflicting points of reflections. However, none of the above approaches exploit reobservation of features to enhance the accuracy of the maintained maps, and are preliminary in the sense that they have not been tested in the difficult task of exploring large environments. Local mapping is not confined to feature based environment models. The work proposed in [3], maintains a graph of local Bayesian distribution grid maps in its multi-sensory navigation scheme. Another version of the above approach is LOGnets [14], which adopts local occupancy grid with a special type of concentric, unevenly sized cells. Map update is a simple scheme of incrementing a cell frequency count if the returned sonar reading falls within the cells. In both grid based approaches, the methods for determining if an old local map has been revisited are purely heuristical. Other environmental models include principal eigenvector components [16].
The major contributions of this local mapping system are:
2 The Robot
Figure 2: The mapping robot, Werrimbi, with a sonarray on the top
The description of various hardware modules of the mapping robot, Werrimbi (Figure 2), can be found in [5]. Werrimbi has a highly accurate wheel based odometry system. Extereoceptive sensing is performed with an advanced sonarray [12] which can classify reflectors into discrete planes, corners or edges, and accurately estimate their ranges, horizontal bearings and vertical bearings. The above modules are controlled by a 486DX2-66MHz board through a ISA AT Bus.
3 The Global Mapping Scheme
The discrete primitives generated by the sonarray are fused together using a Julier-Uhlmann Kalman Filter based mapping scheme [6]. The states of the filter are the robot’s 2D coordinates, orientation, speed of sound, the line parameters of the planes and the 2D coordinates of the corners and edges. The extent of a plane is marked by the coordinates of its endpoints. Covariance ‘blocks’ are maintained among these entities [6]. To produce a realistic representation of the environment, the collinearity and correspondence constraints among the features are exploited. For example, the filter is activated if a new corner measurement is found at the intersection of two planes. The extent of both planes are then adjusted accordingly.
4 The New Local Mapping Scheme
The fundamental rationale behind the new local mapping strategy is that if two features are very far apart, the update of one feature will not significantly enhance the estimation of another feature through their correlation. Hence there is no reason for the storage of their correlation matrix. Eliminating matrices of loose correlation not only saves memory, it also improves processing speed because there are less matrices to update.
Figure 3 : Representation of a large environment as an interconnected set of local maps
With the new strategy, the map and measurements retained in the memory is exactly the same as the global mapping approach, except that they are much smaller in size because only a restricted set of objects surrounding the robot are present in the memory for processing at any one time. When the robot decides that there is a need for a new local map or suspects that an old local map has been revisited, the current local map is saved to hard disk. The memory is then cleared. If a new map is desired, the memory can be instantly put to use. If, on the other hand, an old map is to be revisited, it is retrieved from the hard disk. As a result only one small local map exists in the memory at one time, leaving more memory space for data processing. Throughout the navigation, the memory also constantly maintains, for each local map, a list of robot positions responsible for the formation of each of them. The purpose is to quickly test out if the robot has revisited an old local map before loading it into the memory and starts a rigorous map matching based validation. All positions are globally relative to each other. The reader can refer to Figure 3 for the two scenarios of creating a new local map and revisiting old local map as the robot maps a large environment. Adopting the terminology of graph theory, one can view each local map as a node of a graph, connected together by a set of directed arcs indicating the sequential relationship between two local maps.
The complete local mapping algorithm is shown as a flowchart in Figure 4. The robot executes its usual routine of sensing and mapping just like in the global approach until its position covariance signals it to switch to another local map. The criteria for the termination of the current local map is when the covariance of the robot’s position exceeds a threshold, PrTH. That is, when it is decided that the error in position might have become significant and the last few features in the current map are no longer significantly correlated with the initial few features. The robot then searches through the list of old positions to find out if it has revisited a local map. If one of the old positions is found to be sufficiently close to its current position, the corresponding local map is loaded from the disk and map matching is performed. The prior position information can be used to prune the map matching search space. The details of map matching are covered in section 5. If matching is successful, a revisit has occurred, so the robot carries on mapping with the loaded local map. Otherwise, another local map is tested until finally one, or none at all, is found. If the later is the case, a new local map is created for further mapping. Each local map is assigned an index to indicate the sequence of their generations.
The notion of map matching helps to alleviate the problem of error accumulation because the process of map matching almost completely discards the previous knowledge of the robot’s position and orientation by re-estimating them with the loaded old map and its new measurements. Only the speed of sound estimation is carried over to the next local map. While the environment is still not perfectly mapped in a global sense, the robot can now practically remove all the error accumulated between visits to the same area. As shown later, this helps the robot tackle such challenging environments as loops and long corridors.
4.1 Relative Covariance Among Local Maps
When a new local map is instantiated, its relative covariances with other local maps are created. The relative covariance, Pr, between two local maps is defined as the covariance between the first robot’s positions at which the two local maps are first created. Relative covariance among local maps must be maintained in order to estimate the uncertainty of a robot’s position in one local map relative to another local map. Such information is crucial for statistically determining if the robot is revisiting an old region (section 4.2), and for setting up a search bound for each measurement during map matching (section 4.3).
Referring to Figure 5, suppose that nlm
local maps have already existed. The covariance of the position at which
a new local map (local map nlm+1) is to be created is
with respect to the current local map i, and the covariance of the
current local map with respect to an old local map j (j<i)
is Pri,j, then the covariance of the new local map nlm+1
with
respect to the old local map j is
where
(2)
Figure 5 : Generating the relative covariance of the new local map with respect to an old local map
Equation (1) implicitly assumes that Pri,j
and
are uncorrelated. Attention
is drawn to the specification that only the relative covariance with the
old local maps with indexes less than the index of the current local map
(i.e. j<i) needs to be evaluated. Since local map indexes
are assigned in the order of their formations, this applies to any two
local maps which are monotonously linked together, that is, one
can reach local map i from local map j by traversing (following
the directed arcs) a set of local maps with monotonously increasing indexes.
Refer to the example in Figure 3 again, the relative covariance between
local map 3 and local map 4, Pr3,4 and Pr4,3
are not evaluated because one must pass through local map 2 to move from
local map 3 to local map 4, and 2 is less than 3. Local map 2 is defined
as the common root of local map 3 and local map 4. The common root
of two monotonously linked local maps is the one with the smaller index.
The reason for not evaluating the relative covariance among the non-monotonously
linked local maps is that the uncertainty of any robot’s position relative
to map 4 can be easily computed with a simple equation involving Pr3,2
and Pr4,2, as demonstrated in the next section. It also
has a secondary advantage of reducing storage space.
4.2 Reentrance of a Local Map
Supposed that the current local map has an index i, and the covariance of the latest robot’s position, pi, relative to the current local map, is Ppi,i. To check if an old map with index j is being revisited, the algorithm computes the distance between pi and all robot’s positions responsible for the generation of local map j. If the shortest among the computed distance, dmin, is less than a threshold dTH, local map j is loaded from disk for a trial map matching (section 4.3). However, if dmin is not within the distance threshold, there is still a possibility that local map j is being revisited, if the uncertainty associated with this shortest distance is accounted for. We can begin by computing the covariance of pi and the covariance of the position closest to it in local map j, pj, with respect to their common root, k. With the covariance of the two positions, Ppi,k and Ppj,k, the standard deviation of dmin can be subsequently determined.
Figure 6 : Illustration of the computation of the standard deviation of dmin
The final problem is that the covariance of pj relative to local map j is not stored in order to save memory. Nevertheless, one knows that it is bounded by PrTH, the threshold which triggers a new map. Here PrTH is regarded as a worst case approximation to Ppj,j.
By referring to Figure 6,
(3)
(4)
To compute the exact standard deviation of dmin, the correlation between pi and pj with respect to local map k is required. Since such exact value is unimportant here, computational load can be reduced by approximating the standard deviation of the distance between pi and pj by
(5)
Local map j is declared not revisited at pi if
(6)
4.3 Search Bound for a New Measurement
Map matching follows the loading of local map j. As will be explained in section 5.1, the map matching involves the search for the ‘correspondence’ of each new measurements in the local map. The search space can be pruned by exploiting the approximate knowledge of the robot’s position provided by local map i. More specifically, the search bound of a new measurement should be set directly proportional to the accuracy of pi relative to local map j.
Carrying forward the symbols defined in section 4.2, let the covariance of pi relative to local map j be Ppi,j. If local map i and local map j are monotonously linked,
(7)
(8)
if local map i and local map j are not monotonously linked and has a common root k,
(9)
for each measurement m=[r r ]T with covariance Cov(m) at pi, which comprises the range and bearing to a classified reflector, relative to pi. The Cartesian coordinates of the reflector are
(10)
and its covariance relative to local map j is
(11)
The search bound for m is defined as a circle centred at x, with a radius rBOUND given by
(12)
Since the position covariance is meant for establishing a search bound for a measurement, not map building, the value of b are not critical. If the bound is so large that it captures more than one map feature for a measurement, the map matching algorithm will eliminate the unsuitable ones with its measure of discrepancy function (section 5.2). In the current implementation, b is set to 4.
5 Map Matching
The map matching strategy localises a robot in a local map based on a combinatorial search scheme and a measure of discrepancy function. This best estimate of position is further enhanced with a least square formulation. Since the navigation mode is continuous, an approximate knowledge of the robot’s position is available to guide the map matching process.
5.2 Generation of Sub-map
Figure 7: A typical imperfect stored local map and the visible features at the position candidate
Once a rough initial estimate of the robot’s position has been established, a sub-map of the stored local map is then generated, which consists of all visible map features at the estimated position. They comprise the coordinates of the normal glints of planes, and the coordinates of both the standalone corners and the fused corners. All coordinates are Cartesian.
The stored map is not always perfect as it might include approximately overlapping planes and corners. To account for this, if the line of sight to a feature is blocked by a plane at a point very close to that feature, the feature is considered not blocked. In this case, the sub map will include conflicting features as illustrated in Figure 7. The matching cost function has been designed such that it is versatile enough to accommodate this problem.
(13)
where CTH is a threshold. CTH ensures that whilst the first property mentioned is satisfied, the cost contributed by an unmatched feature (indicated by a large square norm) will not overshadow the successful matching of other features. The measure of discrepancy Dm (units of metres) can be defined as
(14)
The chosen position candidate is the one which has the minimum Dm.
5.4 Least Square Formulation (LS)
Once the position candidate with the minimum discrepancy has been chosen, further enhancement can be sought by exploiting all matched feature pairs using a least square formulation. The strength of this formulation is that it makes immediate use of the position estimate previously generated and fully exploits the cross covariances among map features Pij and the covariances of the local measurements. The cross covariances among map features have been provided by Kalman Filter during the map generation stage [6].
Firstly, the linear least square formulation [17] is summarised. Suppose that a system has the following observation equation:
where z is the observation, H is the state
transformation matrix, and n is the noise with a covariance of
.
Under the notion of least square estimation, the best estimate of x0
is one which minimises the following weighted least square function
(16)
The solution to the above problem is well known [17].
The best estimate
, and
its covariance
, in a least
square sense, can be solved as
Before proceeding, the state of the robot x0
is expanded to include the speed of sound,
.
Supposed that at the position with the least cost
,
the matching strategy obtains a total of nr matched measurement-feature
pairs. Each matched pair forms a non-linear relationship G with
x0,
the measurement vector mi, and a set of map features
which
contribute to the corresponding sub map feature:
To apply the least square equations, linear expansion about the mean of the function parameters is required. Let’s assume, without a loss of generality, that two map features are involved. After linear expansion, equation (19) can be expressed as
(20)
where
(21)
(22)
By stacking all nr of measurements together,
(23)
(24)
(25)
where
(26)
and
(27)
The least square estimate of the robot’s position, orientation and the speed of sound can then be obtained using equation (17) and their covariance, P00, can be obtained using equation (18). The next step is to evaluate the cross covariance between x0 and all map features xk.
(28)
Since the true mean of all equation parameters are not
known, all matrix terms in the above equations are evaluated at the measured
values (for mi) or the estimates (for
).
For a plane and a standalone corner [6], the observation equation involves
only one map feature state (i.e.
is not present). Adjustment is then made to the above equations by setting
all
, with appropriate
dimension. The measurement equation involves two map states only if a fused
corner is involved [6], in which case the two states come from the two
planes which intersect at that corner. The observation equations and the
Jacobian matrices for all possible scenarios can be found in [6].
6 Experimental Results
The local mapping algorithm has been tested in two large, real life environments but only one will be shown here. It is composed of a long corridor and a loop into a laboratory. The robot starts at the position indicated with a ‘Start’ on Figure 9. It then moves right, turns right and enters a laboratory through a doorway, exits the lab at its starting position, moves left, makes a turn, travels back to its starting position again, enters the lab and moves towards the other doorway. The path was planned by a human operator. The tiny circles along the path indicate sensing points, which are uniformly separated by 1m. The total journey is 93m. The tiny line segments are plane measurements; the dark pointy objects are corner measurements and the light pointy objects are edge measurements. Typical landmarks the sonar sensor array pick up as map features are wall mouldings, table legs, wall discontinuities at doors, fire extinguishers, cupboards, concave corners between two walls and between a wall, trolleys and boxes. For the complete navigation, six local maps are produced. They are shown superimposed together in Figure 9.
The average size of a local map is only 41kbytes which is about 4% of the global map. The position clusters for all old local maps contributes another 0.3%. Figure 8 compares the time to process all measurements collected at every sensing position for the global and the local mapping algorithms. The growth rate of the processing time of the global approach is a lot higher than that of the local approach. The global mapping process has to be terminated at the 55th position because the number of features have reached 200 so the number of covariance matrices maintained are 200 ´ 201 / 2 = 20,100. The spikes on the global mapping graph in Figure 8 are proportional to the number of measurements fused into the map at various sensing points but some of which on the local mapping graph are caused by saving local maps to disk. The results for another ‘long corridor’ enviroment [7] are similar.
Figure 8 : Time to process all measurements collected at every position
7 Conclusion
The new local mapping strategy has been tested in large environments and is proven to be memory friendly, time efficient, and capable of dealing with the problem of error accumulation. In the future, on the fly navigation can be integrated with the stored local maps by predicting ahead which landmarks to sense to facilitate rapid localisation. For even larger environments, another layer of hierarchy can be mounted to group several adjacent local maps into a higher level local map. Another proposal worth researching is a way of fusing all local maps (including the overlapping ones), possibly using a least square approach, to generate one globally consistent map.
8 Acknowledgments
Mr. Greg Curmi’s assistance in the design of the robot, the funding of a large ARC grant, the financial assistance provided by a MGS scholarship and an OPRS scholarship are all gratefully acknowledged.
9 References
Figure 9 : Local mapping result with all local maps (dashed boxes) superimposed together