13.1 Introduction to objects

Objects are items that influence a road by expanding, delimiting, or supplementing its course. They are not mandatory to guide driver and traffic models, unlike signals. However, signals may be linked to objects when the object directly relates to that signal. An example would be the stop line (object) for a traffic light (signal). For more on signal references, see Section 14.4, "Signal reference".
The most common examples are parking spaces, crosswalks, and traffic barriers. Specific road markings for the control and regulation of road traffic are instead represented as signals. For more on signals, see Section 14.1, "Introduction to signals".

Every object is defined by a unique object id, the position of its origin point (in road reference line system coordinates), and a bounding volume. The bounding volume of an object defines the object’s dimensions using simple geometric shapes. In ASAM OpenDRIVE, this can either be a right rectangular prism (a box) or a cylinder. In either case, no point of an object should be outside of that volume. Conversely, each surface of the bounding volume should intersect with at least one point of the object.

Objects can be marked as "temporary". Examples are temporary speed limit signs or traffic beacons for road works. See also Figure 60 in Section 11.2, "Lane layers".

img
Figure 111. Circular and angular object

Figure 111 shows the bounding volume of an angular object using width, length, and height (bounding box) and the bounding volume of an circular object using radius and height (bounding cylinder).

Complex objects may be further described using <outline> or <skeleton> elements. If an <outline> or <skeleton> element is defined, it supersedes the bounding volume. However, every point of an <outline> or <skeleton> element of an object must be contained in its bounding volume.

Objects in ASAM OpenDRIVE do not change their position or orientation (heading, pitch, roll).

They may be declared dynamic or static:

  • Dynamic objects are static but have one or more movable parts. Examples are fans in tunnels or windmills.

  • Stationary objects are completely static without any movable parts. Examples are buildings or trees.

Objects are defined per <road> element.

img
Figure 112. Placing objects on roads

Figure 112 shows an object that is not properly placed on a road. Objects that are placed on roads using the <elevationProfile> element or the <lateralProfile> element should be so small that these objects do not cut or float above the road surface significantly, nor cause skewed ASAM OpenCRG surfaces.

Elements in UML model

<objects> element

In ASAM OpenDRIVE, objects are represented by the <objects> element within the <road> element.

UML class: t_road_objects
XML tag:   <objects> (Multiplicity: 0..1)

Container for all objects along a road.

img
Figure 113. UML class diagram of the Objects class

Figure 113 shows the UML class diagram of the ASAM OpenDRIVE Objects class.

<object> element

In ASAM OpenDRIVE, a single object is represented by the <object> element within the <objects> element.

UML class: t_road_objects_object
XML tag:   <object> (Multiplicity: 0..*)

Objects influence a road by expanding, delimiting, or supplementing its course. Objects are elements that form the environment, for example, buildings, guard rails, poles, and trees. Objects are not mandatory to guide driver and traffic models, unlike signals.

There are two ways to describe the bounding volume of objects.

  • For an angular object: definition of the width, length and height.

  • For a circular object: definition of the radius and height.

Table 85. Attributes of the <object> element
Name Type Use Unit Introduced Description

dynamic

t_yesNo

optional

Indicates whether the object is dynamic or static, default value is “no” (static). Dynamic object cannot change its position.

hdg

double

optional

rad

Heading angle of the object relative to road direction

height

t_grEqZero

optional

m

Height of the object’s bounding box.
@height is defined in the local coordinate system u/v along the z-axis

id

string

required

Unique ID within database

invalidated

boolean

optional

1.9.0

Indicates whether the object is currently invalidated. Example: crossed out traffic sign.

length

t_grZero

optional

m

Length of the object’s bounding box, alternative to @radius.
@length is defined in the local coordinate system u/v along the u-axis

name

string

optional

Name of the object. May be chosen freely.

orientation

e_orientation

optional

"+" = valid in positive s-direction
"-" = valid in negative s-direction
"none" = valid in both directions
(does not affect the heading)

perpToRoad

t_bool

optional

1.7.0

Alternative to @pitch and @roll. If true, the object is vertically perpendicular to the road surface at all points and @pitch and @roll are ignored. Default is false.

pitch

double

optional

rad

Pitch angle relative to the x/y-plane

radius

t_grZero

optional

m

radius of the circular object’s bounding box, alternative to @length and @width. @radius is defined in the local coordinate system u/v

roll

double

optional

rad

Roll angle relative to the x/y-plane

s

t_grEqZero

required

m

s-coordinate of object’s origin

subtype

string

optional

Variant of a type

t

double

required

m

t-coordinate of object’s origin

temporary

boolean

optional

1.9.0

Indicates whether the object is temporary or permanent. Example: temporary speed limit sign in road works situation.

type

e_objectType

optional

Type of object. For a parking space, the <parkingSpace> element may be used additionally.

validLength

t_grEqZero

optional

m

Validity of object along s-axis (0.0 for point object)

width

double

optional

m

Width of the object’s bounding box, alternative to @radius.
@width is defined in the local coordinate system u/v along the v-axis

zOffset

double

required

m

z-offset of object’s origin relative to the elevation of the road reference line

For the different object types refer to Combinations of elements and attributes for object types.

XML example

<objects>
    <object type="building"
            name="ExampleBuilding"
            id="1"
            s="80.0"
            t="17.0"
            zOffset="0.0"
            orientation="none"
            length="12.15"
            width="22.415"
            height="11.84"
            hdg="1.44"
            pitch="0.0"
            roll="0.00">
    </object>
</objects>

Rules

The following rules apply to objects:

  • An object may either be dynamic or static, but an object cannot change its position or its heading, pitch, or roll.

  • Objects derived from ASAM OpenSCENARIO shall not be mixed with objects described in ASAM OpenDRIVE.

  • An object’s placement may either be temporary or permanent, as indicated by @temporary.

  • Omitting @temporary shall default to @temporary="false".

  • Traffic actors should ignore objects with @invalidated="true".

  • Omitting @invalidated shall default to @invalidated="false".

Related topics