Copyright © IFAC Intelligent Autonomous Vehicles, Madrid, Spain, 1998
DETERMINING MOBILE ROBOT ORIENTATION BY ALIGNING 2D SEGMENT MAPS· Antonio Reina and Javier Gonzalez Dpto. Ingenieria de Sistemas y Automatica. Universidad de Malaga. Plaza El Ejido sin. 29013 Malaga. FAX: +34 -5-2131413. E-MAIL:
[email protected] ..
[email protected]
Abstract: This paper describes a new method to detennine the orientation of a mobile robot by aligning two segment maps of the environment. This method implements a voting process based on the generalized Hough transfonn that allows to estimate the robot orientation without explicitly solving for line segment correspondence. One of the major advantages of this method is that of working with no position infonnation and only with a rough initial orientation. Thus, we believe this approach may be very useful to decouple the problem of estimating the robot orientation and the robot position. We present experimental results that show the accuracy of this method even when poor quality maps are used. Copyright © 1998 IFAC Keywords: Position estimation, Robot navigation, Hough Transform, Laser Range-finders.
1. INTRODUCTION
2. RELATED WORK AND MOTIVATION
Determining the location (position and orientation) of a mobile robot is one of the fundamental requirements for autonomous navigation. In a two dimensional space, the problem consists of estimating the triplet (lx, ty, 8) that represents the translation (lx, ty) and orientation 8 of the mobile coordinate system (Robot Frame) with respect to an absolute coordinate system (World Frame) (Figure
Mobile robot self-location has received a great attention in the literature and a variety of techniques have been proposed to address it (see Talluri and Aggarwal, 1993, for a review). Since methods using trajectory integration (dead-reckoning or inertial navigation systems) suffer for error accumulation, registration with the environment is required. In consequence, the key issue in robot localization is that of properly matching sensor data to a world model.
1).
In this paper we focus on the particular problem of estimating the mobile robot orientation (heading) regardless what its position (lx, ty) is. We assume that the robot is provided with a 2D segment-based global map of the world and it is equipped with a radial laser range sensor that gives a polar representation of the environment by scanning in a plane parallel to the ground. From this data the robot obtains a robot-centered polygonal contour (called the local map) that approximates the shape of the surrounding obstacles (see figure 1). The proposed method determines the robot orientation by aligning the global and the local map using a weighted generalized Hough transform.
GLOBAL
,-lr-"_
I y
World frame
~
MAP
/
i-li e--J
~
Local map seeing from location P
X
Figure 1.- World frame and robot frame . The global
map is referred to the world frame while the local map is given in the robot frame .
• This work has been supported by the Spanish Government under the research project CICYT-TAP96-0763
189
task is commanded in terms of orientation information, for example: "moves straight on the direction at 40° degrees until the first junction appears". Finally, since the biggest drift when using trajectory integration methods arises in the robot orientation, we believe that our algorithm can be used, in some cases, to correct those errors.
In the particular case of determining robot location through the matching of 2D maps, three different approaches have been proposed: Point to point correspondence. This scheme intends to directly match one range scan to another in order to derive the robot relative pose. The registration is accomplished without explicitly using the underlying features existing in the scans. A notable example is the iterative point correspondence algorithm developed by Lu (1995).
3. DESCRIPTION OF THE ALGORITHM The basis of the proposed algorithm consists of aligning the local map (LM) and the global map (GM) through a weighted generalized Hough transform. The algorithm works according to the following three steps:
Point to feature correspondence. The range points of the scan are matched against features of a model or a map obtained from previous scans. The position estimation algorithms proposed by Cox (1991) and Gonzalez et al. (1995) are some examples of this approach.
1. Building the reference table (R-table). The Rtable is a look-up table that stores the length ~s of each segment of the global map indexed by its absolute orientation ~Gs. The orientation ~GS represents the slope of the line supporting the segment and it is quantified at integer values between 0° and 180°. The length ~s is expressed within a resolution of millimeters. In order to account for more than one segment in the global map having the same orientation, the R-table has to record as many lengths ~s as segments exist for each particular orientation ~Gs :
Feature to feature correspondence. Registration of the two scans is accomplished by first extracting a set of features (usually segments and corners) and then making correspondences between pairs of features on the two scans. Some examples of this approach are the works reported by Shaffer (1995) and Castellanos et al. (1996). All these works rely on a minimum distance criterion (either Euclidean or Mahalanobis) to establish correspondence pairs of the elements (features or points) of the two maps. The robot location is then estimated as the appropriate rigid transformation which minimizes a certain function that combines the distance errors for all these correspondence pairs. Unlike these works, our algorithm determines the robot orientation without explicitly solving for correspondence. The procedure consists of a voting process based on the generalized Hough transform (Davis, 1990). A similar approach for estimating both the position and orientation of the robot is presented in Forsberg et al. (1995). Although their algorithm provides excellent results navigating in indoor cluttered environments, it is restricted to operate in rectangular-shaped scenarios where no more than two predominant walls are present for each direction.
R-table
(~Gs) = [~s( 1),
AGs(2), ... ]
Notice that each time the GM is updated, for example by fusing it with a new LM, the R-table needs to be reconstructed. However, if the GM is fixed this table will be computed just once. 2.- Defining the accumUlation array. The accumulation array is a vector AC indexed by all the possible discrete robot orientations a (in degrees) with respect to the world frame . Each element AC(a) represents the number of votes that the orientation a receives according to the voting process described below. The orientation that receives the greater number of votes will correspond to the best alignment between the LM and the GM.
In spite of the position is not available, we believe that the precise knowledge of the robot heading has a great importance for three main reasons. First, the estimation of the robot position becomes a much easier problem (usually linear) that can be solved in closed-form. Second, in some situations only the orientation is relevance for the navigation task. For instance, when a robot is moving through a corridor the position of the robot is irrelevance while the heading has to be kept within a narrow interval. Another kind of situation occurs when the navigation
The range of possible robot orientations depends on the prior information that the system may have. If none information is available, the accumulation array AC will consider the full orientation range, that is, from 0° to 360°. In case that an initial estimation a o and a bounded uncertainty interval 0 were available, for instance provided by the dead-reckoning, the array AC would account only for the candidates in this interval, that is, ae[ao-o, ao+o]. The AC array is initialized to zero.
190
Once all the angles a have been processed the maximum of the accumulator AC provides the estimate robot orientation.
3.- The voting process. The idea of the voting process consists of rotating the LM a tentative angle a and then checking for the number of equallysloped segments from both the global and the local map, regardless their relative positions (see figure 2).
In the following table a pseudo-code summarizes the complete algorithm. 1.- Build the R-table using the segments in the GM R-table (PGs) = [)"Gs(J), AGs(2), •.• } 2.- Quantize the accumulator array: identify the maximum and minimum values of possible robots orientations: amlJXimum = ao + 0 aminimum = ao - 0
3.- Generate and initialize the accumulator array (A C). AC (a)
= 0;
a
= aminimum
.. amlJXimum
4.- For all the possible robot orientations a do For each local segment LS do compute slope (J'LS and length A.LS ofLS rotate LS, PLS = (J'LS + a obtain the entries in R-Table(pLSJ if only one entry appears then AC (a) = AC(a) + ALS' AGS if several entries appear select the AGS closest to ALS AC (a) = AC(a) + ALS . AGS
Global map Local map rotated a+ 15° Local map rotated a-15°
Figure 2.- Two tentative alignments between the local and the global map.
More precisely, for a particular robot orientation a, the new slopes ~LS of the segments of the LM are computed by:
5.- Search for the maximum value in AC; the corresponding a gives the estimated robot orientation.
We have also includi12ng:
where
tested
other voting
strategies,
AC (a) = AC (a) + 1
(Eq. 2)
AC (a) = AC (a) + ALS
(Eq.3)
AC (a) = AC (a) + (ALS+
~s)
(Eq.4)
(Eq. 1) but they have performed worse than the one proposed above. Note that the simplest voting process with no weighting given by equation 2 provides the number of equally-sloped segment pairs found between the two maps. A comparative between all of them is presented in the next section.
where ALS is the length of the local segment being considered and A GS is the more similar length among the entries indexed by ~L/ Obviously, in the event that there is no entry for a particular ~LS' the accumulator AC is not modified. Notice how this weighting process takes into consideration the intuitive fact that the longer the paired segments are the more likely the robot orientation a is.
4. EXPERIMENTAL RESULTS The proposed algorithm has been tested using simulated and real data. In the first case, the range measurements used to build the maps are obtained from a probabilistic sensor model that considers the sensor readings to be affected by a gaussian noise as well as truncated by the a certain resolution (Reina and Gonzalez, 1997). We have used different
I Since no additional information is considered (for example regarding the position of the robot). the global segment which length AoS is more similar to A-LS is considered the best candidate to be voted.
191
synthetic environments and in all cases the errors have been under 1 degree (the resolution of the AC) . The real experiments were carried out using the two global maps shown in figure 3. They were obtained in the hall near our Mobile Robot laboratory by using a map builder with two different set of parameters (Gonzalez et al., 1994). The main difference between the two maps are the number and size of the segments they contain. The first map, denoted as GM-I , is mostly composed by long segments while the second, denoted as GM-2 , exhibits denser clusters of short segments. Note that the orientation of a segment is as more reliable as longer the segment is.
I-~-L
-
1-1--,
I
Figure 4.- The Explorer laser range scanner mounted on the RAM-2 mobile robot .
r-- l I
~
At each location the initial robot heading a o was taken as the real orientation a R plus an uniform random error bounded by ±20°. Thus, the array AC was dimensioned to check for all the orientations aE [ao-20, a o+20).
1 1
1-3Om 1-
/
L
-l ,
-
I
Figure 6 plots the errors, calculated as surveyed minus computed, for the ten locations and for the two global maps. As expected, the errors are slightly greater when using the GM-2 due to the lower quality of their segments. The mean squared errors were 0.3412° and 0.9154°, respectively.
i (
,
~-J- -
- \ --- -I -
\
I-J
Orientation Error (in degrees)
Orientation Error
(in degrees)
" 10
GM-l
10
\
GM-2
\
1\
7
-,
Figure 3.- Two global maps of the same scenario built using two different set of parameters. GM-1 has 54 segments while GM-2 has just
J
l\
\ 11
C\
\ /
-5
\
-10
\
2
J
'I
S
•
1
•
,
10
\11
/
\11
-10
•
~
l\ ,/
,
2
3
4
S
I
7
e
8
10
Robot location along the path
133. In this scenario, the RAM-2 mobile robot (see figure 4) equipped with the Explorer laser rangefmder was initially positioned at location 1, and instructed to move to the next locations along the path, as shown in figure 3.
Initial orientation error Error in the estimated orientation
Figure 5.- Orientation errors for the 10 locations along the path when using the GM-1 (left) and GM-2 (right).
At each of these locations the proposed algorithm was executed and the real heading a R of the robot was determined by surveying the position of two distinctive points on the main axis of the robot near the floor. These points were measured by triangulation using a tape-measure.
It should be pointed out that the local maps used in each of the two experiments were obtained with the same set of parameters that were used to build the two global maps (see figure 6). Notice the notable discrepancies between the local and the global maps.
192
To illustrate the performance of the voting process, Figure 7 shows the number of votes in the array AC at the location 5 of the path for the experiments using the two global maps. Observe that a simple counting of the number of pairs found (given by voting process with no weighting) does not produce a clear maximum in the accumulator AC. In contrast, the proposed voting scheme, given by equation 1, ends up with a clear peak at 1 degree off from the orientation corresponding to the real heading of the robot.
G'
,---LM-l
Finally, we also show the orientation errors provided by the three alternative voting schemes mentioned in section 3. All of them performed worse than the one proposed, although the one corresponding to equation 4 gives very similar results which reveals the importance of taking into account the lengths of both matched segments.
LM-2 Figure 6.- Local maps obtained at the location 5 of the path for two different set of parameters. LM1 contains 16 segments while LM-2 has 43.
With regard to the computation time, in all the tests that we have carried out it has been negligible even when a few hundred of segments were involved. Error using EQ 2 (in degrees)
AC using GM-\ x5
5 0
Simple votes
5
oWeighted
votes
-.-
5 0
J
t I I
II
, --
5 0
r--
---
_1 _ _ -
I
--+----I
I
i
i 5
-+-I
-
-
i
\"
I
\ i n "\A
,~
Error using EQ 3 (in degrees)
.
I
3
8
6
9
10
I
".. ~ ~ J......L
.:8 f f +, f + + Error using EQ 4 (in degrees)
Robot orientation (degrees)
of
AC using GM-2
1
2
3
5
6
7
8
10
Robot location along the path Simple votes
Figure 8.- Orientation errors obtained for the GM-1 using other voting schemes.
Weighted votes
5. CONCLUSIONS Robot orientation (degrees)
In this paper we have presented a simple and effective algorithm to estimate the robot orientation by aligning two segment-based maps of the environment. These two maps are a known global map referred to the absolute reference frame and a local map built at a certain location of the robot.
Figure 7.- The final votes in the array AC at the location 5 of the path for both experiments, using GM-1 and GM-2. The weighted votes refer to the result of the proposed voting scheme. The simple votes indicate the number of votes with no weighting.
193
Gonzalez, 1., A. Ollero and A. Reina (1994). "Map Building for a Mobile Robot equipped with a Laser Range Scanner". IEEE Int. Conference on Robotics and Automation, San Diego, CA, USA.
The algorithm is based on a weighted generalized Hough transform that describes the maps through two parameters: the orientation relative to its reference frame and the length of the segments. One of the main advantages of this approach is that the correspondence between segments of the two maps is not explicitly addressed.
Gonzalez, 1., A. Stentz and A. Ollero (1995). "A Mobile Robot Iconic Position Estimator using a Radial Laser Scanner". Journal of Intelligent & Robotic Sys. 13 : 161-179. Kluwer Academic Press.
We have extensively tested the algorithm obtaining very accurate estimates. In particular, in this paper we have presented real experiments that demonstrate the performance of the algorithm even when a large number of short segments are used. The results are also independent of the position of the robot.
Lu,
F. (1995). "Shape Registration using Optimization for Mobile Robot Navigation" . PhD . Dissertation. Univ. of Toronto. Canada.
Reina, A. and 1. Gonzalez (1997). "Characterization of a Radial Laser Scanner for Mobile Robot Navigation" . Proc. IEEEIRSJ Int. Conf. On Intelligent Robots and Systems, Grenoble, pp.579-585.
REFERENCES Castellanos 1. A. , 1.D. Tardos and 1. Neira (1996). "Costraint-based Mobile Robot Localization". Int. Workshop on Advanced Robotics and Intelligent Machines. Salford, Great Britain.
Shaffer, G. (1995). "Two-Dimensional Mapping of Expansive Unknown Areas". PhD. Dissertation. Carnegie Mellon University. Pittburgh, PA. USA.
Cox, I.G. (1991) "Blanche-An Experiment in Guidance and Navigation of an Autonomous Robot Vehicle". IEEE Transactions on Robotics and Automation, Vol. 7, no. 2.
Talluri, R., and 1.K. Aggarwal (1993). "Position Estimation Techniques for an Autonomous Mobile Robot- A Review". Handbook of Pattern Recognition and Computer Vision. pp. 769-801. Eds. C.H. Chen, L.F. Pau and P.S. Wang. World Scientific Publishing Company.
Davis, E. R. (1990). "Machine Vision . Theory, Algorithms, Practicalities". Academic Press. Forsberg 1., U. Larsson and A. Wernersson (1995) . "On Mobile Robot Navigation in Cluttered Rooms using the Range Weighted Hough Transform IEEE Robotics and Automation Society Magazine. H.
194