13.3 Object outline

Objects may have an outline that is too complex to be described by parameters for angular and circular objects alone. Therefore, the outline of polygonal objects or non-rectangular objects may be described in a more detailed way.

An outline defines a series of corner points, including the height of the object relative to the road reference line. The inner area of the described outline may be filled with a filling type, for example, grass, concrete, asphalt, or pavement. The definition of the outline of objects is mainly used for traffic islands, irregularly shaped parking spaces, and special road markings.

Defining multiple outlines for one object is useful in several cases. For example, a tree has a narrow trunk and a wide crown. A driving simulation application might conclude that a vehicle cannot pass the tree if it only just recognized a bounding box representing the tree. Two outlines could be defined, one for the narrow trunk and one for the wide crown of the tree. A driving simulation application in this case could conclude that the vehicle can drive underneath the tree. Another example is a street light that consist of a pole and a light. Traffic islands often require more than one outline because the outlines represent logical information, for example, an area where pedestrians can stay. See example UC_2Lane-RoundAbout-3Arms.xodr in Section 13.3.2, “<cornerLocal> element”.

img
Figure 114. Traffic island as object

Figure 114 shows a traffic island which is placed in the middle of a road as non-rectangular object.

In ASAM OpenDRIVE, the outline of objects is represented by the <outlines> element within the <object> element.

The <outlines> element serves as a wrapper for the <outline> element, which itself contains further elements to describe, for example, corner roads, bridges, and borders.

Elements in UML model

<outlines> element

In ASAM OpenDRIVE, the outlines of objects are represented by the <outlines> element within the <object> element.

UML class: t_road_objects_object_outlines
XML tag:   <outlines> (Multiplicity: 0..1)

Wrapper for the different outline entries of an object, that can contain multiple outline definitions. If <outlines> is not used, an object can have only a single <outline> entry.

<outline> element

In ASAM OpenDRIVE, a single outline is represented by the <outline> element within the <outlines> element.

UML class: t_road_objects_object_outlines_outline
XML tag:   <outline> (Multiplicity: 1..*)

Defines a series of corner points, including the height of the object relative to the road reference line. For areas, the points should be listed in counter-clockwise order. The inner area of the described outline may be filled with a filling type, such as grass, concrete, asphalt, or pavement.

An element shall be followed by two or more <cornerRoad> elements or by two or more <cornerLocal> elements.

ASAM OpenDRIVE 1.4 outline definitions (without <outlines> parent element) shall still be supported.

Table 88. Attributes of the <outline> element
Name Type Use Description

closed

t_bool

optional

If true, the outline describes an area, not a linear feature

fillType

e_outlineFillType

optional

Type used to fill the area inside the outline

id

nonNegativeInteger

optional

ID of the outline. Must be unique within one object.

laneType

e_laneType

optional

Describes the lane type of the outline

outer

t_bool

optional

Defines if outline is an outer outline of the object

XML example

Rules

The following rules apply to outline elements:

  • An <outline> element shall be followed by two or more <cornerRoad> elements or by two or more <cornerLocal> elements.

  • The <outline> element may represent an area or a line feature.

  • The inner area of the described outline may be filled with a filling type.

  • An outline may be specified as an objects outer or inner outline. It may be specified if the described outline is located at the outer border of the object.

  • It may be specified as which lane type the object is treated by the application.

  • All points of the <outline> element must be located inside the bounding box.

Related topics

13.3.1. <cornerRoad> element

<cornerRoad> elements are mandatory elements inside an <outline> element. They are used to describe non-linear forms of objects. They are mutually exclusive with <cornerLocal> elements. <cornerRoad> elements describe the outline of objects relative to the road reference line with their s- and t-coordinates.

The shape of an object may be described by the object’s height at a <cornerRoad> point and the difference in height relative to the road reference line.

img
Figure 115. Object described by corner road coordinates

Figure 115 shows a non-linear object with several corner points that is described by the s- and t-coordinates along the road reference line. The corner road helps to position objects along a road, for example concrete barriers.

Elements in UML model

<cornerRoad> element

In ASAM OpenDRIVE, corner points of an object that use s- and t-coordinates are represented by the <cornerRoad> element within the <outline> element.

UML class: t_road_objects_object_outlines_outline_cornerRoad
XML tag:   <cornerRoad> (Multiplicity: 1..*)

Defines a corner point on the object’s outline in road coordinates.

Table 89. Attributes of the <cornerRoad> element
Name Type Use Unit Description

dz

double

required

m

dz of the corner relative to road reference line

height

t_grEqZero

required

m

Height of the object at this corner, along the z-axis

id

nonNegativeInteger

optional

ID of the outline point. Must be unique within one outline

s

t_grEqZero

required

m

s-coordinate of the corner

t

double

required

m

t-coordinate of the corner

XML example

Rules

The following rules apply to <cornerRoad> elements:

  • There shall be at least two <cornerRoad> elements inside an <outline> element.

  • There shall be no <cornerLocal> element next to a <cornerRoad> element inside the same <outline> element.

Related topics

13.3.2. <cornerLocal> element

<cornerLocal> elements are mandatory elements inside an <outline> element. They are used to describe non-linear forms of objects. They are mutually exclusive with <cornerRoad> elements. <cornerLocal> elements describe the outline of objects within their local u- and v-coordinates.

img
Figure 116. An object described by <cornerLocal> coordinates

Figure 116 shows a non-linear object with several corner points that is described within a local coordinate system. Corner local helps to position objects beyond a road, relative to a single point, for example buildings or traffic islands.

Elements in UML model

<cornerLocal> element

In ASAM OpenDRIVE, corner points of an object that use local u- and v-coordinates are represented by the <cornerLocal> element within the <outline> element.

UML class: t_road_objects_object_outlines_outline_cornerLocal
XML tag:   <cornerLocal> (Multiplicity: 1..*)

Used to describe complex forms of objects. Defines a corner point on the object outline relative to the object pivot point in local u/v-coordinates. The insertion point and the orientation of the object are given by the @s, @t, @zOffset and @hdg attributes of the element.

Table 90. Attributes of the <cornerLocal> element
Name Type Use Unit Description

height

t_grEqZero

required

m

Height of the object at this corner, along the z-axis

id

nonNegativeInteger

optional

ID of the outline point. Shall be unique within one outline.

u

double

required

m

Local u-coordinate of the corner

v

double

required

m

Local v-coordinate of the corner

z

double

required

m

Local z-coordinate of the corner

XML example

Rules

The following rules apply to <cornerLocal> elements:

  • There shall be at least two <cornerLocal> elements inside an <outline> element.

  • There shall be no mixture of <cornerRoad> and <cornerLocal> elements inside the same <outline> element.

Related topics