Professional Documents
Culture Documents
Continuous Curvature Path Planning Using Voronoi Diagrams and Fermat's Spirals
Continuous Curvature Path Planning Using Voronoi Diagrams and Fermat's Spirals
1. INTRODUCTION
133
IFAC CAMS 2013
September 17-20, 2013. Osaka, Japan
3.1 Mathematical basis The curvature is important when it comes to the definition
of a certain Fermat’s spiral arc: this parameter should
The following theoretical analysis is based on Dahl (2013). be monitored to be sure that the vehicle constraints are
If a straight line is rotating with constant angular veloc- respected. Along the Fermat’s spiral the curvature will
ity around a fixed point (the center of the spiral), the continuously increase from zero to θendpoint , that is the
Archimedean spiral can be drawn by a point starting from curvature of the last point of the spiral. θmax is the
a center point and moving away from it along the rotating maximum curvature that the spiral can mathematically
line. In polar coordinates this is expressed by: reach. So for a spiral segment:
θκmax = min (θendpoint , θmax ) (10)
r = b + aθ1/x (5)
By setting a fixed maximum desired curvature it is possible
where (r, θ) are the polar coordinates and b and a are to calculate the desired scaling factor:
designing parameters that define the turning of the spirals
and the distance between successive turnings. By setting 1 2 θκmax (3 + 4θκ2 max )
a= (11)
x = 2 and b = 0 we get the Fermat’s spiral, that is the κmax 3/2
geometrical curve we used in this work; in this case: 1 + 4θκ2max
√
r=a θ (6) Notice that the tangents of the curve for a certain θ can
be found with the following expression:
that is, in Cartesian coordinates:
√
sin(θ) + 2θ cos(θ)
χ(θ) = arctan ; (12)
x x0 + a√θ cos(ρθ + χ0 )
= (7) cos(θ) − 2θ sin(θ)
y y0 + a θ sin(ρθ + χ0 )
that is useful to provide smooth curvature transitions by
Where we generalized the expression for any initial po- imposing the same tangents in the connection points and
sition r0 = [x0 , y0 ], both turning direction ρ = {1, −1} to find the intersection points between the Fermat spirals
and any different initial tangent angles χ0 . Notice that and the straight lines.
the parameter a is a scaling factor.
3.3 Fermat’s spiral joints algorithm
3.2 Curvature
The implementation algorithm needs to receive as input
By changing the Fermat’s spiral parameters it is possible the two straight segment that should be connected with
to achieve any curvature; its mathematical formulation is: the Fermat spiral. Notice that in this work the Fermat
√ spiral is built such that the intersection point will cor-
2 θ(3 + 4θ2 )
κ(θ) = (8) respond to the middle point of the shortest segment, this
3/
2
a(1 + 4θ ) 2 assures the continuity of the path in the case of two Fermat
notice that the curvature depends only on the polar coordi- spirals that needs to be connected without a straight
nates and on the scaling factor a. Moreover it is important line in the middle. In general this technique provides the
to underline the inverse proportional relationship between lowest curvature possible, that, from another point of view,
the scaling factor and the curvature. Differentiating this requires the softest possible heading control.
expression and imposing it to be equals to zero we can The algorithm will follow the next steps (the steps num-
find the value of θ that defines
√the maximum curvature: bers and symbols refer to Figure 2):
7 5 1. Find the initial and final tangents vin and vout , and
θmax = − (9)
2 4 course change magnitude ∆χ = χendpoint −χstartpoint ;
134
IFAC CAMS 2013
September 17-20, 2013. Osaka, Japan
vin (13)
qst = P2 + l · vout
l = −qst − P2
vout (14)
qst = P2 − l · vin
135
IFAC CAMS 2013
September 17-20, 2013. Osaka, Japan
ACKNOWLEDGEMENTS
Fig. 5. The result of the main steps of Figure 3 are reported here: Dijkstra algorithm selects the shortest path in the set
(red-crossed waypoints), collinear waypoints are removed (red-diamond waypoints). Clearance check is not satisfied
for this path, so Dijkstra algorithm is used again to find the second shortest path that satisfies clearance constraints
(blue-crossed waypoints), collinear waypoints are then removed (blue-diamond waypoints). The resulting refined
path (green waypoints) is obtained by removing those waypoints that are not improving the quality of the path.
Fig. 6. The waypoints of the refined path define a discontinuous-curvature path. Fermat’s spirals are then added
providing continuous curvature. The resulting path is practical, safe and defined by a few waypoints that makes
unnecessary the presence of high-curvature turns.
137