BS-SLAM: Shaping The World

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

BS-SLAM: Shaping the World

Luis Pedraza∗, Gamini Dissanayake†, Jaime Valls Miro† , Diego Rodriguez-Losada∗, and Fernando Matia∗
∗ Universidad
Politecnica de Madrid (UPM)
C/ Jose Gutierrez Abascal, 2. 28006, Madrid, Spain
Email: luis.pedraza@ieee.org
† Mechatronics and Intelligent Systems Group. University of Technology Sydney (UTS)

NSW2007, Australia

Abstract— This paper presents BS-SLAM, a simultaneous has been successful in many indoor environments, presence of
localization and mapping algorithm for use in unstructured curved elements can create significant problems. In particular,
environments that is effective regardless of whether features attempting to interpret information from a sensor using an
correspond to simple geometric primitives such as lines or not.
The coordinates of the control points defining a set of B-splines incorrect model is one of the major causes of failure of many
are used to form a complete and compact description of the estimation algorithms. Some efforts have been made in the
environment, thus making it feasible to use an extended Kalman past when circle features are available [20], but that’s still
filter based SLAM algorithm. The proposed method is the first a big simplification. Thus a more generic representation of
known EKF-SLAM implementation capable of describing both the environment can potentially improve the robustness of the
straight and curve features in a parametric way. Appropriate
observation equation that allows the exploitation of virtually SLAM implementations.
all observations from a range sensor such as the ubiquitous Alternative to using a specific environmental model is to
laser range finder is developed. Efficient strategies for computing use information from sensor observations from different robot
the relevant Jacobians, perform data association, initialization poses to obtain an accurate relationship between these poses.
and expanding the map are presented. The effectiveness of the While this strategy has been successfully used to generate
algorithms is demonstrated using experimental data.
accurate visualizations of complex structures [7] and detailed
maps of indoor environments [8], it can not exploit the inherent
I. I NTRODUCTION
information gain that occur in traditional SLAM due to the
Developing an appropriate parameterization to represent the improvement of map quality.
map is the key challenge for simultaneous localization and In this paper, it is proposed to use B-splines to represent
mapping in unstructured environments. While a substantial the boundary between occupied and unoccupied regions of
body of literature exists in methods for representing unstruc- a complex environment. B-splines provide naturally compact
tured environments during robot mapping, most of these are descriptions consisting of both lines and curves. Vertices of
unsuitable for use with the Kalman filter based simultaneous the control polygons that describe a set of B-splines are
localization and mapping. For example, the use of popular oc- used to represent a complex environment by a state vector.
cupancy grid approach [13], based on dividing the environment Computationally efficient strategies for (a) initializing and
into small cells and classify these as occupied or unoccupied, extending the state vector when new parts of the environment
and its variants such as those using quad-trees would result in are discovered, (b) formulating a suitable observation equation
an impractically large state vector. that allows the exploitation of virtually all the information
In much of the early SLAM work the map is described gathered from a laser range finder, and (c) evaluation of
by a set of points [6], [9], [11]. While this simplifies the appropriate Jacobians for easy implementation of Kalman filter
formulation and the complexity of the SLAM estimator, there equations are presented in detail. The algorithms proposed
are two main disadvantages in relying solely on point features. are evaluated for effectiveness using data gathered from real
The obvious problem arises if the environment does not have environments.
sufficient structure to be able to robustly extract point features, The paper is organized as follows. Section II introduces
for example in an underground mine [12]. The more significant some general concepts and properties of B-spline curves.
issue is the fact that much of the information acquired from a Section III shows how these powerful tools fit into the EKF-
typical sensor, such as a laser range finder, does not correspond SLAM framework. Finally, some experimental results and
to point features in the environment. Therefore, the raw infor- conclusions are presented in sections IV and V.
mation from the sensor needs to be analysed and observations
corresponding to stable point features extracted. During this II. S PLINES F UNDAMENTALS
process, typically more than 95% of the observations are In this section, a brief introduction to the fundamental
discarded and the information contained in these observations concepts of the B-splines theory is presented. The term spline
wasted. One strategy to exploit this additional information is to is used to refer to a wide class of functions that are used
model the environment using alternative geometric primitives in applications requiring interpolation or smoothing of data
such as line segments [3], [15] or polylines [18]. While this in a flexible and computationally efficient way. A spline of
degree k (order k − 1) is a piecewise polynomial curve; i.e. a 4) As a consequence of property 3, the value of s (t) at a
curve divided into several pieces, where each of these pieces is site ξj ≤ t ≤ ξj+1 for some j ∈ {k − 1, . . . , n} depends
described by a polynomial of degree k, and the different pieces only on k of the coefficients:
accomplish with certain continuity properties at the joint points j
X
or knots. Their most common representation is based on the s (t) = xi βi,k (t) (5)
utilization of B-splines (where B stands for basic). i=j−k+1

A. B-Splines Definition 5) The sum of all the B-spline basis functions for any value
Letting s (t) be the position vector along the curve as a func- of the parameter t is 1:
tion of the parameter t, a spline curve of order k, with control n
X
points xi (i = 0 . . . n) and knot vector Ξ = {ξ0 , . . . , ξn+k } βi,k (t) = 1 (6)
can be expressed as: i=0

n
X 6) The derivative of a B-spline of order k is a spline of
s (t) = xi βi,k (t) (1) one order k − 1, whose coefficients can be obtained
i=0 differencing the original ones [4].
where βi,k (t) are the normalized B-spline basis functions n
ds (t) 0
X xi − xi−1
of order k which are defined by the Cox-de Boor recursion = s (t) = (k − 1) βi,k−1 (t) (7)
dt ξ
i=0 i+k−1
− ξi
formulas [16], [4]:
 For further information and justification of the previous
1 if ξi ≤ t ≤ ξi+1
βi,1 (t) = (2) properties, please see [4], [14], [1] and [16].
0 otherwise
and C. Curve Fitting
(t−ξi ) (ξi+k −t) Here we consider the problem of obtaining a spline curve
βi,k (t) = βi,k−1 (t)+ βi+1,k−1 (t) (3) that fits a set of data points dj , j = 0 . . . m. If a data point
ξi+k−1 −ξi ξi+k −ξi+1
lies on the B-spline curve, then it must satisfy equation 1:
The knot vector is any nondecreasing sequence of real
numbers (ξi ≤ ξi+1 for i = 0, . . . , n+k−1) and can be defined dj = β0,k (tj ) x0 + . . . + βn,k (tj ) xn , j = 0...m
in two different ways: clamped, when the multiplicity of the
system of equations which can be more compactly written as
extreme knot values is equal to the order k of the B-spline,   T
and unclamped [16, 14]. When clamped knot vectors are used,  d =
 d0 d1 . . . dm

  T
first and last control polygon points define the beginning and 
 x =  x0 x1 . . . xn


end of the spline curve. d = Bx β0,k (t0 ) . . . βn,k (t0 ) (8)

  .
.. . .. .
.. 
 B = 
4 4 
 
3.5 3.5
x1 x2 x1 x2 

3

2.5 ξ4 x3
3

2.5
x0 ξ3 ξ4 x3
β0,k (tm ) . . . βn,k (tm )
x0
2
ξ 2
ξ5
1.5
ξ0 = ξ1 = ξ2 = ξ3 x5
5
1.5 ξ2
x5 ξ6 Matrix B, usually referred to as the collocation matrix, has
1 1

0.5
x4
0.5
ξ1
ξ4 ξ7
x4
for each of its rows at most k non-null values. The parameter
0 0 ξ0
−0.5
ξ6 = ξ7 = ξ8 = ξ9
−0.5
ξ9
ξ8
value tj defines the position of each data point dj along the
−1
−1 0 1 2 3 4 5 6 7 8
−1
−1 0 1 2 3 4 5 6 7 8
B-spline curve, and can be approximated by the chord length
between data points:
Fig. 1. Examples of splines in B-spline form. a) Cubic spline with clamped
knot vector (Ξc : ξ0 = . . . = ξ3 ≤ . . . ≤ ξ6 = . . . = ξ9 ). b) Cubic spline

t0 = 0
with unclamped knot vector (Ξc : ξ0 ≤ . . . ≤ ξ9 ). Pj (9)
tj = s=1 |ds − ds−1 | , j≥1
being the total length of the curve
B. Properties of Spline Curves
m
X
In this section, some properties of spline curves, defined as `= |ds − ds−1 | (10)
linear combination of B-splines, are summarized. s=1
1) The curve generally follows the shape of the control which is taken as the maximum value of the knot vector.
polygon. The most general case occurs when 2 ≤ k ≤ n+1 < m+1;
2) Any affine transformation is applied to the curve by the problem is over specified and can only be solved in a mean
applying it to the control polygon vertices. sense. A least squares solution can be computed making use
3) Each basis function βi,k (t) is a piecewise polynomial of the pseudoinverse matrix of B:
of order k with breaks ξi , . . . , ξi+k , vanishes outside the  −1 T
interval [ξi , ξi+k ) and is positive on the interior of that x = BT B B d = Φd (11)
interval:
Once the order of the B-spline bases k is predefined, the
βi,k (t) > 0 ⇔ ξi ≤ t < ξi+k (4) number of control polygon vertices n + 1, and the parameter
values along the curve are known (as calculated from equation 2) Splines Association: In this section, the data association
9), the basis functions βi,k (tj ) and hence the matrix B can process is described. At each sampling time, k, a new set of
be obtained. splines is obtained, being necessary to achieve a good feature
In the work here presented, clamped knot vectors are gen- association between the curves that are already contained in
erated taking the total length of the curve ` (equation 10), and the map (sm,1 , . . . , sm,N ), and the new ones that have just
defining a knot density which depends on the complexity of the been detected (so,1 , . . . , so,N2 ).
environment. Recall that knots are the joints of the polynomial The process is explained with an example. Take the situation
pieces a spline is composed of, so complex environments displayed in figure 3. Figure 3.a shows the initial configu-
need a high knot density, while segments can be described ration: a map containing one spline sm,1 (t), and two new
properly using longer polynomial pieces (lower knot density). features which have just been detected, so,1 (u) and so,2 (v)
The interested reader is referred to [5] and [2], where more (notice the lack of correspondence between the parameters of
information about curve fitting methods can be found. different curves). A rough measure of the distances between
the splines can be obtained by measuring the distances be-
III. SLAM WITH B-S PLINES tween the control points of each spline (recall here property
1). In order to improve this search, the map can be simplified
A. Data Management choosing only the splines that are close to the robot’s position.
A commonly used sensor in mobile robotics is the laser At each sampling time, the position of the observed splines
range-finder. Whenever a robots makes an observation of its is calculated taking into account the best available estimation
environment with such a device, a set of m data points di ∈ <2 for the robot’s position and orientation. Then, the distances
is obtained (we’re considering here the 2D scenario). In this from the control points of each of the detected splines to
section, methods for extracting parametric splines representing the control points of the splines contained in the map are
the physical detected objects are presented. It is also shown the calculated, and each of the observed splines is matched to
way of performing data association, establishing comparisons the closest one on the map, following this criterion:
between the detected splines and the map splines. 
1) Obtaining Splines: When a new data set is obtained from i = 1 . . . nm
min (dist (xm,i , xo,j )) ≤ dmin , (12)
an observation of the environment, splines are extracted in a j = 1 . . . no
three-stages process (see Fig. 2): where xm,i are the control points of the map spline, xo,j
• Primary segmentation: Data stream is split into pieces are the control points of the observed spline, nm and no are,
separated by measurements out of range, if any. A set of respectively, the number of control points of the spline in the
N1 data vectors is obtained, called primary segmentation map and the detected spline, and dist (xm,i , xo,j ) represents
objects, and denoted F1,1 , F1,2 , . . . , F1,N1 (see Fig. 2.c). the euclidean distance between two control points.
• Secondary segmentation: An analysis of the relative
positions of consecutive data points is performed. The a) b) e
so,2(v) b
aim is to detect points close enough as to belong to the
sm,1(t) d
same feature, and also detect corners, but allowing points
so,1(u) c a
not to lie on the same segment (Fig. 2.f). A set of N2
secondary segmentation features is obtained (Fig. 2.d). Fig. 3. Data association process. Comparison of control points positions (a)
• Fitting: Each of the secondary segmentation objects is and parameters correspondence (b).
fitted by a cubic spline, as described in section II-C.
If no spline in the map is close enough to a detected spline
(as occurs with so,2 in figure 3.a) then, this new object is added
a) b) c)
F1,2 to the map once its position has been updated. If a spline is
associated with a map feature, then it is necessary to obtain
F1,1 a matching between their points, as depicted in figure 3.b.
This matching provides information about the correspondence
d) e) f) between the parameterizations of both curves, and is very
F2,4
F2,6 F2,7 d i+1
F2,5 αi useful when a spline extension is required. The process is as
F2,3 p p
F2,2
F2,8 i di i+1
follows:
F2,9 d i-1 • One of the extreme points of the observed spline is
F2,1
considered (point a)
Fig. 2. Splines detection steps: a) Robot and environment. b) A new data set • The closest point [19] on the map spline to the point a
is acquired. c) Primary segmentation. d) Secondary segmentation. e) Obtained
splines, fitting each of the data sets in d). f) Data points relative position. is calculated (point b)
|αi | ≤ αmax and max(|pi | , |pi+1 |) ≤ η · min(|pi | , |pi+1 |) are checked • If b is one of the extreme points of the map’s spline, then,
(typically αmax ∈ [0, π/4] and η ∈ [1.5, 2]). the closest point to b on the observed spline is calculated
(point c). Else, point a is matched with point b.
• The process is repeated taking as starting point the other C. The Observation Model
extreme of the observed spline (point d in the picture), The implementation of a EKF-SLAM algorithm requires
which is associated with the point e on the map spline. of an observation model; i.e. some expression which allows
At the end of this process, not only correspondent pairs of to predict the measurements that are likely to be obtained
points (c, b) and (d, e) are obtained, but also a correspon- by the robot sensors given the robot pose and the current
dence between the map spline parameter t and the observed knowledge of the environment. This measurement model can
spline parameter u: (uini , tini ) and (uf in , tf in ), given that be understood, in our particular case, as the calculation of the
intersection of the straight line defined by a laser beam (for
c = so,1 (uini ) b = sm,1 (tini ) each position across the laser angular range) with the splines
(13)
d = so,1 (uf in ) e = sm,1 (tf in ) contained in the map (Fig. 4). Unfortunately, calculating the
The simple data association process described in this sec- intersection of a straight line with a parametric curve, in the
T
tion, though quite simple and based upon euclidean distance form s (t) = [sx (t) , sy (t)] is not suitable for an explicit
metric, has performed very robustly in our experiments. How- mathematical formulation. There is a whole field of research
ever, benefits of parametric representation are not yet fully regarding this complex problem known as ray tracing [17].
exploited, and further research is being undertaken in this
sense. ^z η
rotation and translation

laser
z of control points
B. The State Model s(x i,t) uL uR

bea
vR vL s(x i,t)
The state of the system is composed by the robot (the only τ µ

m
vW s(x i,t) φR
mobile element) and all the map features, modeled in the uL
vL
work here presented by cubic splines. When these splines are
x R= (xR, yR , φR)
expressed as linear combination of B-splines, the state of each uW
sx(x i,t)
of them can be represented by the positions of their control
polygon vertices, given a fixed and known knot vector which Fig. 4. Observation model
generates a basis of B-splines for each of the map features.
Referring all the positions and orientations to a global In this document, the predicted measurement is calculated
reference system {uW , vW }, and assuming the robot as the in an iterative way, making use of property 2 in section II-
first feature in the map (F0 ) the following expressions describe B and the Newton-Raphson method for calculating the zeros
the state of the system at a certain time k: of a function. The first step is to define an orthonormal
T
reference system {uL , vL }, centered in the robot reference
xF0 = xr = [xr , yr , φr ] (14) system {uR , vR } and with the abscissas axis uL defined
T
xFi = xsi = [xi,0 , . . . , xi,ni , yi,0 , . . . , yi,ni ] (15) by the laser beam direction and orientation (see Fig. 4).
i = 1, . . . , N Let s̄ (x̄i (xi , xr ) , t) be the position vector along a spline
curve expressed in such a reference system (we’re making
and finally here explicit the functional dependency between a spline and
 T its control points). The relationship between control points
x = xTr , xTs1 , . . . , xTsN (16) T T
xi = [xi , yi ] and x̄i = [x̄i , ȳi ] , i = 0 . . . n, is given by:
In the previous equations, N is the number of map static     
x̄i cosµ sinµ xi − xr
elements (map features) and ni is the number of control points = (20)
ȳi −sinµ cosµ yi − yr
for each of them. Note that the number of control points for
each of the splines contained in the map can be variable, being µ the angle of the considered laser beam in the global
as features are progressively extended as new areas of the reference system; i.e. given the laser orientation in the robot
environment are explored. reference system, τ :

x (k) ∼ N (x̂ (k|k) , P (k|k)) (17) µ = φr + τ (21)

where In this context, the measurement prediction ẑ = h (xi , xr ) is


  given by the value of s̄x (x̄i (xi , xr ) , t∗ ), where t∗ is the value
x̂ (k|k) = x̂r (k|k) x̂s1 (k|k) . . . x̂sN (k|k) (18) of the parameter t that makes s̄y (ȳi (xi , xr ) , t∗ ) = 0. As only
a reduced set of k control points affect the shape of the curve
and for each value of the parameter t, a small number of this points
 
Prr (k|k) Prs1 (k|k) . . . PrsN (k|k) need to be rotated and translated to the new reference system.
 Ps1 r (k|k) Ps1 s2 (k|k) . . . Ps1 sN (k|k) The initial guess for each map spline associated with an
 
P (k|k) = .. .. .. ..  (19) observation can be obtained directly from the data association
 . . . . 
stage, and for each of the laser beams positions the solution
PsN s1 (k|k) PsN s2 (k|k) . . . PsN sN (k|k) obtained in the previous prediction can be used as initial guess.
During the experiments, a maximum of two iterations were and its covariance:
needed for this calculation, with a precision of 0.0001 m.
Despite the lack of an explicit observation model, it is P (k + 1|k) = Fx (k + 1) P (k|k) FTx (k + 1) +
still possible to calculate the derivatives of this expected +Fu (k + 1) Q (k + 1) FTu (k + 1) (33)
measurements with respect to the map state in an approximate
way. Once calculated the value t∗ which makes s̄y (t∗ ) = 0, The Jacobian matrices are
the expected measurement in the nearness of this parameter 
∂fr

location, assuming small perturbations in the state vector, can 0 ... 0
 ∂xr x̂r (k|k),û(k+1) 
be approximated by:  0 I2n1 ... 0 
  Fx (k + 1)=   (34)
s̄y (ȳi (xi , xr ) ,t∗ )  .
.. .. .. . 
h (xi , xr ) = s̄x x̄i (xi , xr ) , t∗ − 0 (22)
 . . .. 
s̄y (ȳi (xi , xr ) ,t∗ ) 0 0 . . . I2nN
and derivating with respect to the control points positions:  ∂fr 
∂u x̂r (k|k),û(k+1)
∂s̄0y ∂ ȳi ∂s̄ ∂ ȳi 0  0 
∂h ∂s̄x ∂ x̄i (t∗ ) − ∂ ȳyi ∂x
∂ ȳi ∂xi s̄y s̄ (t∗ )
i y
 
= + s̄0x (t∗ )  2 Fu (k + 1)=  ..  (35)
∂xi ∂ x̄i ∂xi s̄0y (t∗ )
 . 
∂s̄x ∂ x̄i 1 ∂s̄y ∂ ȳi 0
= − (23)
∂ x̄i ∂xi tan (η − µ) ∂ ȳi ∂xi where fr depends on the mobile platform being considered.
The partial derivatives in equation 23 can be easily obtained 2) Kalman Filter Update: Once obtained the expected
looking at equations 1 and 20. For example from equation 1 measurements for each of the laser beams positions of an
we can obtain: observation associated with a map spline, the innovation
∂s̄x ∂s̄y
= = βi,k (t) (24) covariance matrix is given by [6]:
∂ x̄i ∂ ȳi
So, finally, we can write: S (k + 1) = Hx (k + 1) P (k + 1|k) HTx (k + 1) + R (k + 1)
  (36)
∂h ∗ sinµ
= βi,k (t ) cosµ + (25) where the Jacobian is:
∂xi tan (η − µ)
  h i
∂h cosµ ∂h ∂h
Hx (k + 1) = ∂xr 0 . . . 0 ∂xsi 0 . . . 0 (37)
= βi,k (t∗ ) sinµ − (26)
∂yi tan (η − µ)
Similarly, making use of property 5, and equations 1 and ∂h
In the previous equation, the term ∂x r
is calculated making
20, we can obtain: use of equations 27, 28 and 29, and term ∂x ∂h
is calculated
si
from 25 and 26. The gain matrix is calculated as follows
∂h sinµ
= −cosµ − (27)
∂xr tan (η − µ) W (k + 1) = P (k + 1|k) HTx (k + 1) S−1 (k + 1) (38)
∂h cosµ
= −sinµ + (28) Finally, the state estimation and its covariance are updated
∂yr tan (η − µ)
according to:
∂h ẑ
= (29)
∂φr tan (η − µ) x̂ (k+1|k+1) = x̂ (k+1|k)+W (k+1) h (k+1) (39)
These equations will allow the efficient calculation of the
relevant Jacobians in the following sections. P (k+1|k+1) = [I−W (k+1) Hx (k+1)] P (k+1|k) (40)
D. Applying the EKF
E. Extending the Map
In this section, results obtained in previous sections are put
together and combined in the working frame of the Extended The map is incrementally built in two ways: adding new
Kalman Filter with the aim of incrementally building a map objects, and extending objects already contained in the map.
of an environment modeled with cubic splines. 1) Adding New Objects to the Map: Whenever a new
1) Kalman Filter Prediction: Between the times k and k+1 observation is not associated with any of the objects already
the robot makes a relative movement, given by the vector contained in the map, it is considered as a new object, and the
spline which defines its shape is added to the map. Given a
u (k + 1) ∼ N (û (k + 1) , Q (k + 1)) (30)
map containing N static features, and a set of measurements
Under the hypothesis that the only moving object in the zi , i = p . . . p + q corresponding to a new detected feature, the
map is the robot, the a priori estimation of the state at time augmented state vector is:
k + 1 is given by:  a
 xr = xr
x̂r (k + 1|k) = fr (x̂r (k|k) , û (k + 1)) (31) xa = g (x, z) ⇔ xasi = xsi ,i = 1, . . . , N (41)
 a
x̂si (k + 1|k) = x̂si (k|k) (32) xsN +1 = gsN +1 (xr , z)
a) ξ5 ξ6 ξ 9= ξ10= ξ11= ξ12 b) ξ5 ξ6
where gsN +1 (xr , z) is defined by the fitting of the q new data ξ7 t ξ7
ξ4 ini ξ tfin ξ4 ξ8 ξ9
points as described in section II-C: s j (t)
8
s (t)e
j
    u ini ufin
xN +1,0 xr + zp cos (φr + τp ) ξ0= ξ1= ξ2= ξ3 ξ10= ξ11= ξ12= ξ 13
ξ0= ξ1= ξ2= ξ3 data to be added
 ..   ..  parameter correspondence
 .  = Φ .  (42) knot

xN +1,nN xr + zp+q cos (φr + τp+q )


    Fig. 5. Map spline extension with new data after Kalman filter update.
yN +1,0 yr + zp sin (φr + τp )
 ..   .. 
 .  = Φ .  (43)
In [14] an unclamping algorithm is proposed, which is
yN +1,nN yr + zp+q sin (φr + τp+q )
successfully applied in [10] with the goal of extending a B-
The new covariance matrix for the augmented state vector spline curve to a single given point. Our problem is to extend
is: a map spline, given a new set of measured data points. The
Pa = Gx PGTx + Gz RGTz (44) following equations show how, combining the unclamping al-
and the Jacobians Gx = ∂x∂g
and Gz = ∂g gorithm with the approximation scheme previously proposed,
∂z :
it is possible to extend the map features as new measurements
   
Ir 0 ... 0 0 are obtained. Given a spline curve, defined by a set of control
 0 I2n1 . . . 0   0  points xi and clamped knot vector in the form:
 .. .. . . ..   .. 
   
Gx =  . . . .  , Gz =  .  (45) Ξ : ξ0 = . . . = ξk−1 ≤ ξk ≤ . . . ≤ ξn ≤ ξn+1 = . . . = ξk+n
    | {z } | {z }
 0 0 . . . I2nN   0 
∂gsN +1 k k
∂gSN +1
∂xr 0 ... 0 ∂z the unclamping algorithm proposed in [14] calculates the new
with    control points corresponding to the unclamped knot vectors:
1 0 −zp sin µp
  .. .. ..  Ξr: ξ0 = . . . = ξk−1 ≤ ξk ≤ . . . ≤ ξn ≤ ξ̄n+1 ≤ . . . ≤ ξ̄k+n
Φ . . .  | {z }
  k
∂gsN +1  1 0 −zp+q sin µp+q 
∂xr
=
 
0 1 zp cos µp

 (46) Ξl: ξ¯0 ≤ . . . ≤ ξ¯k−1 ≤ ξk ≤ . . . ≤ ξn ≤ ξn+1 = . . . = ξk+n
  | {z }
  .. .. .
..   k
 Φ . .  
0 1 zp+q sin µp+q The right-unclamping algorithm (on the side corresponding
   to higher values for the parameter t) of a spline of order k,
cos µp ... 0 converting the knot vector Ξ into Ξr , and obtaining the new
 Φ  .. .. ..  control points xri is as follows:
  .
 . . 

∂gsN +1 
 0 . . . cos µp+q   xi , i = 0, 1, . . . , n − k + 1

=  (47) xri = (50)
∂z 
 sin µp ... 0 
 xik−2 , i = n − k + 2, n − k + 3, . . . , n
  . .. .. 
 Φ  .. . .   where
0 . . . sin µp+q 
 xij−1 , i = n − k + 2, n − k + 3, . . . , n − j
2) Extending Map Objects: Frequently, observations are xji = xj−1 −(1−αji )xji−1 (51)
only partially associated with a map feature (as in figure 3).  i
αji
, i = n − j + 1, . . . , n
This means that a new unexplored part of a map object is being
being
detected and, consequently, this spline must be extended. Take
ξ̄n+1 − ξ̄i
for instance the situation displayed in figure 5, where the j-th αji = ¯ (52)
map spline has been partially associated with an observation, ξi+j+1 − ξ¯i
and the information contained in a new set of data points and the initial values are set to
 x  
di xr + zi cos µi x0i = xi , i = n − k + 2, n − k + 3, . . . , n (53)
di = = , i = q, . . . , q + m (48)
dyi yr + zi sin µi
If all the splines are cubic B-splines (k = 4), the previous
must be integrated into the map feature. The extended state
expressions can be reduced to:
vector will be: 
 e
 xr = xr xri = xi , i = 0, . . . , n − 2 

xe = ge (x, z) ⇔ xesi = xsi , i 6= j (49) xrn−1 = −Γ2n−1 xn−2 + γ 21 xn−1
n−1
 2  (54)
 xe = gsej (xr , xj , z) r 2 2 Γn Γ1n 1 
sj xn = Γn Γn−1 xn−2 − γ 2 + γ 2 xn−1 + γ 1 γ 2 xn 
n−1 n n n

With the objective of calculating gsej (xr , xj , z), a similar


being
scheme to the one used during the data approximation is ξ̄n+1 −ξ̄i 1−γij
followed. γij = ξ̄i+j+1 −ξ̄i
and Γji = γij
(55)
Similar results can be obtained when converting a clamped being
knot vector Ξ into a left-unclamped one Ξl : 
 
 2  1 0 −zp sin µp
Ω Ω1
   .. .. .. 
xl0 = ω11ω2 x0 − ω20 + ω20 x1 + Ω20 Ω10 x2 
  Φe . . . 
0 0 1 0      
xl1 = ω12 x1 − Ω21 x2 (56)  1 0 −zp+q sin µp+q  e 0 0
1 
 e 
∂gsj 
 e
 ∂gsj  Φ
xli = xi , i = 2, . . . , n 0 0 0  Inj 0  

=   , =
∂xr  0 1 zp cos µp  ∂xsj
  e 0 0

 .. .. .. Φ
with 
 e . .
 0 Inj
ξ̄k−1 −ξ̄i+k 1−ωij Φ  . 

ωij = ξ̄i+k−j−1 −ξ̄i+k
and Ωji = ωij
(57)   0 1 zp+q sin µp+q 
0 0 0
These results can be combined with the methodology pro-
posed in section II-C for obtaining new splines as new data is and  

acquired, being aware of the following considerations: cos µp ... 0
  .. .. .. 
• A parametrization for the new measurements to be in-  Φe  .
 . . 


tegrated in the spline, congruent with the map spline   0 . . . cos µp+q  
 
parametrization, can be obtained easily from the data ∂gsej ...
 0 0
 
= 
association stage. ∂z 
 sin µp ... 0 

The knot vector needs to be unclamped and might need  e  ... .. ..
•   
Φ  . . 
to be extended with p extra knots in order to make 
  0 . . . sin µp+q  
room for the new span being added. New knots number
and spacing are chosen according to the specified knot 0 ... 0
density, and as many new control points as new knots IV. E XPERIMENTAL R ESULTS
need to be added.
This way, the system of equations 8 is written for the new Several experiments have been performed with real data in
data points, extended with previous equations 54 and/or 56, order to validate the results here presented. Figure 6 shows
and its least-squares solution provides a matrix-form linear a map representing an environment with predominant flat
relationship between the old control points xj and the sampled features (segments), with 81 splines defined by 332 control
data di , and the new control points xej : points. Figure 7 depicts the map of a bigger and more
   y  20
dxq dq Odometry Estimated
 .   . 

xej,0
  ..   y e   .. 
 x  j,0  y  15
.. e  dq+m   .. e  dq+m 
      
 . = Φ ,
 xj,0   . = Φ  yj,0  (58)
   
xej,nj +p  .  yj,n e
j +p
 . 
 ..   ..  10

xj,nj yj,nj

Note that once chosen an unclamped knot vector Ξe for the 5

extended spline, Φe can be considered a constant matrix. The


new covariance matrix after extending the j-th spline is:
0

Pe = Gex PGex T + Gez RGez T (59)


e e
where the involved Jacobians Gex = ∂g e ∂g
∂x and Gz = ∂z have
−5
−10 −5 0 5 10 15
the following appearance:
  Fig. 6. Map of a career fair held at the School of Industrial Engineering
  (UPM) in Madrid.
Ir 0 . . . 0 . . . 0 0
 0 I2n . . . 0 . . . 0   0 
 1 
 . . . .   complex environment with a mixture of both straight and
 .. .. . . . .. . . . .. 
  . 
   ..  curved features. In this case 461 control points defining a total
Gex =  e  e 
 gsj ... . . . ∂gsj . . . ...  , Gz = 
e e  ∂g 
 sj  of 96 splines are necessary. In both experiments, a B21r robot
 ∂xr ∂xsj   ∂z 
   ..  with a SICK laser was used for the data acquisition with a
 .. .. . . . .. . 
 . . . .. . ..   .  sampling frequency of 5 Hz, and density of 2 knots/m was
0 0 . . . 0 . . . I2nN 0 used for knot vectors generation. No geometric constraints
(60) have been used in the map building process.
150
60
ACKNOWLEDGEMENT
The first author thanks to the “Consejerı́a de Educación
de la Comunidad de Madrid” for the PhD scholarship being
granted to him, and to the “ACR Centre of Excellence for
Autonomous Systems” for having him as visiting postgraduate
40 research student during some months in 2006.
100 R EFERENCES
[1] J. H. Ahlberg, E. N. Nilson, and J. L. Walsh. The Theory of Splines
and their Applications. Academic Press, New York, USA, 1967.
20 [2] A. Atieg and G. A. Watson. A class of methods for fitting a curve
Odometry or surface to data by minimizing the sum of squares of orthogonal
Estimated distances. J. Comput. Appl. Math., 158(2):277–296, 2003.
[3] J. A. Castellanos, J. M. M. Montiel, J. Neira, and J. D. Tardós. The
SPmap: A probabilistic framework for simultaneous localization and
map building. IEEE Trans. Robot. Automat., 15(5):948–952, October
50 1999.
0
0 10 20 30 40 [4] C. de Boor. A Practical Guide to Splines. Springer, 1978.
[5] C. de Boor and J. Rice. Least squares cubic spline approximation I –
fixed knots. Technical Report CSD TR 20, Dept. of Computer Sciences,
Purdue University, 1968.
[6] M. W. M. G. Dissanayake, P. M. Newman, H. F. Durrant-Whyte,
S. Clark, and M. Csorba. A solution to the simultaneous localization
starting
and map building (SLAM) problem. IEEE Trans. Robot. Automat.,
point 17(3):229–241, 2001.
[7] R. Eustice, H. Singh, and J. Leonard. Exactly sparse delayed-state
0 filters. In Proc. of the IEEE International Conference on Robotics and
Automation (ICRA), pages 2428–2435, Barcelona, Spain, April 2005.
[8] G. Grisetti, C. Stachniss, and W. Burgard. Improving grid-based slam
−20 0 20 with rao-blackwellized particle filters by adaptive proposals and selective
resampling. In Proc. of the IEEE International Conference on Robotics
Fig. 7. Map of the Museum of Science “Principe Felipe” (Valencia, Spain) and Automation (ICRA), pages 2443–2448, 2005.
(left). Detail view and photography (right). [9] J. Guivant, E. Nebot, and H. Durrant-Whyte. Simultaneous localization
and map building using natural features in outdoor environments.
Intelligent Autonomous Systems 6, 1:581–586, July 2000.
[10] S.-M. Hu, C.-L. Tai, and S.-H. Zhang. An extension algorithm for B-
V. C ONCLUSION Splines by curve unclamping. Computer-Aided Design, 34(5):415–419,
April 2002.
[11] J. J. Leonard, H. F. Durrant-Whyte, and I. J. Cox. Dynamic map building
A new methodology for simultaneous localization and map- for an autonomous mobile robot. Int. J. Rob. Res., 11(4):286–298, 1992.
ping in arbitrary complex environments has been proposed. For [12] R. Madhavan, G. Dissanayake, and H. F. Durrant-Whyte. Autonomous
the first time, it has been shown how the powerful and com- underground navigation of an LHD using a combined ICP–EKF ap-
proach. In Proc. of the IEEE International Conference on Robotics and
putationally efficient mathematical tools that splines are, fit Automation (ICRA), volume 4, pages 3703–3708, 1998.
into the EKF-SLAM framework allowing the representation of [13] H. Moravec and A. Elfes. High resolution maps from wide angle
complex structures in a parametric way. Despite the apparent sonar. In Proc. of the IEEE International Conference on Robotics and
Automation (ICRA), volume 2, pages 116–121, March 1985.
difficulty that this symbiosis between EKF-SLAM and splines [14] L. Piegl and W. Tiller. The NURBS Book (2nd ed.). Springer-Verlag
theory could involve, simple and easily programmable matrix- New York, Inc., New York, NY, USA, 1997.
form expressions have been obtained. Specifically, the new [15] D. Rodriguez-Losada, F. Matia, and R. Galan. Building geometric
feature based maps for indoor service robots. Robotics and Autonomous
ray tracing method here proposed, constitutes a mathematical Systems, 54(7):546–558, July 2006.
artifice that not only provides an effective observation model, [16] D. F. Rogers. An introduction to NURBS: With historical perspective.
but also makes easier the obtaining of the Jacobians for Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2001.
[17] A. J. Sweeney and R. H. Barrels. Ray-tracing free-form B-spline sur-
the Kalman filter update. It seems clear that, when simple faces. IEEE Computer Graphics & Applications, 6(2):41–49, February
descriptions of the environment are insufficient or unfeasible, 1986.
any other SLAM algorithm could benefit from the versatility [18] M. Veeck and W. Burgard. Learning polyline maps from range scan data
acquired with mobile robots. In Proc. of the IEEE/RSJ International
of this new parametric representation. Conference on Intelligent Robots and Systems (IROS), volume 2, pages
No information is lost, as control points incrementally 1065–1070, 2004.
encapsulate the uncertainties of laser measurements, thanks [19] H. Wang, J. Kearney, and K. Atkinson. Robust and efficient computation
of the closest point on a spline curve. In Proc. of the 5th International
to the application of the new matrix-form algorithms here Conference on Curves and Surfaces, pages 397–406, San Malo, France,
proposed for splines enlargement. Moreover, these concepts 2002.
and techniques are suitable for a 3D extension. Finally, this [20] S. Zhang, L. Xie, M. Adams, and F. Tang. Geometrical feature extraction
using 2d range scanner. In Proc. of the 4th International Conference on
new representation constitutes a big step forward, compared to Control and Automation (ICCA’03), pages 901–905, 2003.
current SLAM techniques based on geometric maps, allowing
the mathematical interpretation and reasoning over the maps
being built regardless the shape of the contained features.

You might also like