9.7 Cubic polynom (deprecated)

Cubic polynomials may be used to generate complex road courses that are derived from measurement data. For a given sequence of measured coordinates along the road reference line in the x/y coordinate system, measurement pairs define the polynomial limits of the segment.

The road reference line of the road is described by a local cubic polynomial. Specifying continuity conditions, for example segment continuity, tangent and/or curvature continuity, at the limits of the segment allows to merge several cubic polynomial segments and to form a global cubic spline interpolation curve for the entire course of the road. As an additional advantage, routing along polynomials can be realized more efficiently than along clothoids.

Elements in UML model

<poly3> element

In ASAM OpenDRIVE, a cubic polynomial is represented by the <poly3> element within the <geometry> element.

UML class: t_road_planView_geometry_poly3
XML tag:   <poly3>

A cubic polynom describing the road reference line.

Table 22. Attributes of the <poly3> element
Name Type Use Unit Deprecated Description

a

double

required

m

1.8.0

Polynom parameter a

b

double

required

1/m

1.8.0

Polynom parameter b

c

double

required

1/m²

1.8.0

Polynom parameter c

d

double

required

1/m³

1.8.0

Polynom parameter d

XML example

<geometry s="0.0000000000000000e+00"
          x="-6.8858131487889267e+01"
          y="4.1522491349480972e-01"
          hdg="6.5004409066736524e-01"
          length="2.5615689718113455e+01">
    <poly3 a="0.0000000000000000e+00"
           b="0.0000000000000000e+00"
           c="1.4658732624442020e-02"
           d="-5.7746497381565959e-04"/>
</geometry>
<geometry s="2.5615689718113455e+01"
          x="-4.8650519031141869e+01"
          y="1.5778546712802767e+01"
          hdg="2.9381264033570398e-01"
          length="3.1394863696852912e+01">
    <poly3 a="0.0000000000000000e+00"
           b="0.0000000000000000e+00"
           c="-1.9578575382799307e-02"
           d="2.3347864348004167e-04"/>
</geometry>

Rules

The following rules apply to cubic polynomials:

  • A cubic polynomial may be used to describe the course of a road for which measurement data is available.

  • If the local u/v coordinate system is aligned with the s/t coordinate system of the start point, the polynomial parameter coefficients are a=b=0.

  • The starting point (@x,@y) of the <geometry> element is located on the v-coordinate axis of the local u/v coordinate system.

  • The polynomial parameters a and b should be 0 for a smooth road reference line.

Related topics

9.7.1 Background information on cubic polynomials (deprecated)

The interpolation of a cubic polynomial in the x/y coordinate system is described with the following formula:

y(x) = a + b*x + c*x2 + d*x³

The polynomial parameters a, b, c, d in the calculation are used to define the course of the roads. With the help of the parameters a-d, the y-coordinate can be calculated from the x-coordinate at every point in the coordinate system.

img
Figure 32. A cubic polynomial

Figure 32 shows the concept of a cubic polynomial in the x/y coordinate system with the following values:

a = 20
b = 0
c = 0.0005
d = 0.0001

9.7.2 Creating roads using cubic polynomials (deprecated)

A cubic polynomial described in the x/y coordinate system is not suitable to describe curved segments with an arbitrary orientation, as shown in Figure 33. To handle curved segments with two or more y-coordinates at a given x-coordinate, cubic polynomial segments may be defined with respect to a local u/v coordinate system. Using the local u/v coordinate system increases flexibility in the curve definition. The following formula is used:

v(u) = a + b*u + c*u2 + d*u³

The orientation of the local u/v coordinate system should be chosen in such a way that the curve is expressed as a function v(u) at increasing u-coordinates.

img
Figure 33. A curve which cannot be represented by a cubic polynomial w.r.t x parameter

Usually, the u/v coordinate system is aligned with the s/t coordinate system at the segment’s start position (@x,@y) and start orientation @hdg, specified in the <geometry> element. This choice results in polynomial parameters a=b=0 (see Figure 34). As an additional option, the local u/v coordinate system may be rotated relative to the start point (@x,@y) by specifying a polynomial parameter @b that is unequal to zero. Here, the arctan (@b) defines the start heading of the polynomial curve with respect to the local u/v coordinate system. An additional shift of the u/v coordinate origin along the v-coordinate axis, while (@x,@y) shall be located at u=0, may be achieved by setting the polynomial parameter @a unequal to zero (see Figure 35). The parameter u may be varied within 0 and the projection of the end point of the curve onto the u-coordinate axis. For the given parameter u, the local coordinate v(u) defines the point on the curve in the local u/v coordinate system.

v(u) = a + b*u + c*u2 + d*u³

Taking into account shift and rotation parameters @a and @b and the (@x,@y) and @hdg specified in the <geometry> element, the final x/y curve position is located at a given u-coordinate, as shown in Figure 35.

img
Figure 34. Transformation from a u/v to a x/y coordinate system with a=b=0
img
Figure 35. Transformation from a u/v to a x/y coordinate system with a!=0 and b!=0