13.8 Object markings
Object marking describes the line-based road markings of any objects like crosswalks and parking spaces.
Object-based road markings can be defined by:
-
using closed outlines with @fillType = "paint" to create filled-in areas
-
using outlines with a
<markings>element to create lines without fill.
See Section 13.2, "Object outline" for more information on object outlines.
An object marking is defined either in accordance to the bounding volume of the element or by referencing outline points of the object.
When referencing outline points, use the <markings> element inside one of the object’s <outline> elements.
Otherwise, use the <markings> element inside <object> element.
The <markings> element serves as a wrapper for the <marking> element, which contains further information about the marking.
In addition to the road markings defined in this section, ASAM OpenDRIVE also supports the following use cases:
-
For the outer marking lines of a lane, use lane road markings. See Section 11.9, "Lane road markings".
-
Road markings that do not represent the line at the outer border of a lane but guide driver and traffic models are defined as signals. These may optionally be accompanied by objects, for example in the case of stop lines related to a traffic light. See Section 14.1, "Introduction to signals".
13.8.1 Elements in UML model
13.8.1.1. <markings> element
In ASAM OpenDRIVE, the markings of objects are represented by the <marking> object:
-
within the
<object>element when using the object’s bounding volume -
within the related
<outline>element when referencing outline points
UML class: t_road_objects_object_markings XML tag: <markings> (Multiplicity: 0..1)
Object markings are road markings of any objects, for example, crosswalks and parking spaces.
13.8.1.2. <marking> element
In ASAM OpenDRIVE, a single marking is represented by the <marking> element within the <markings> element.
UML class: t_road_objects_object_markings_marking XML tag: <marking> (Multiplicity: 1..*)
Specifies a marking that is either attached to one side of the object bounding volume or referencing outline points.
| Name | Type | Use | Unit | Description |
|---|---|---|---|---|
|
required |
Color of the marking |
||
|
required |
m |
Length of the visible part |
|
|
optional |
Side of the bounding volume described in |
||
|
required |
m |
Length of the gap between the visible parts |
|
|
double |
required |
m |
Lateral offset in u-direction from start of bounding box side where the first marking starts |
|
double |
required |
m |
Lateral offset in u-direction from end of bounding box side where the marking ends |
|
optional |
Optical "weight" of the marking |
||
|
optional |
m |
Width of the marking |
|
|
optional |
m |
Height of road marking above the road, i.e. thickness of the road marking |
13.8.1.3. <cornerReference> element
In ASAM OpenDRIVE, a corner reference is represented by the <cornerReference> element within the <marking> element.
UML class: t_road_objects_object_markings_marking_cornerReference XML tag: <cornerReference> (Multiplicity: 0..*)
Specifies a point by referencing an existing outline point.
| Name | Type | Use | Description |
|---|---|---|---|
|
nonNegativeInteger |
required |
Identifier of the referenced outline point |
13.8.2 Example using the bounding volume
The marking may be defined for a straight line on two sides of the object’s bounding volume.
For this purpose, the @side attribute of the <marking> element is used.
XML example
<objects>
<object type="parkingSpace" subtype="closed" id="0" s="10.0" t="-5.5" zOffset="0.0" orientation="none" length="5.0" width="2.5" height="4.0" hdg="1.57" pitch="0.0" roll="0.0">
<parkingSpace access="all"/>
<markings>
<marking side="left" width="0.1" color="white" zOffset="0.005" spaceLength="0.0" lineLength="1.0" startOffset="0.0" stopOffset="0.0"/>
<marking side="right" width="0.1" color="white" zOffset="0.005" spaceLength="0.0" lineLength="1.0" startOffset="0.0" stopOffset="0.0"/>
</markings>
</object>
<!-- [...] -->
</objects>
13.8.3 Example referencing outline points
Figure 124 shows how a crosswalk with exemplary size is modeled.
The marking may be defined for a straight line from one outline point to another by referencing the ID of the respective outline points.
For this purpose, the <cornerReference> element inside the <marking> element is used.
XML example
<objects>
<object type="crosswalk"
id="10"
s="10.0"
t="0.0"
zOffset="0.0"
orientation="none"
length="10.0"
width="7.0"
hdg="0.0"
pitch="0.0"
roll="0.0">
<outlines>
<outline id="0">
<cornerRoad s="5.0" t="3.5" dz="0.0" height="4.0" id="0"/>
<cornerRoad s="8.0" t="-3.5" dz="0.0" height="4.0" id="1"/>
<cornerRoad s="12.0" t="-3.5" dz="0.0" height="4.0" id="2"/>
<cornerRoad s="15.0" t="3.5" dz="0.0" height="4.0" id="3"/>
<markings>
<marking width="0.1"
color="white"
zOffset="0.005"
spaceLength ="0.05"
lineLength ="0.2"
startOffset="0.0"
stopOffset="0.0">
<cornerReference id="0"/>
<cornerReference id="1"/>
</marking>
<marking width="0.1"
color="white"
zOffset="0.005"
spaceLength ="0.05"
lineLength ="0.2"
startOffset="0.0"
stopOffset="0.0">
<cornerReference id="2"/>
<cornerReference id="3"/>
</marking>
</markings>
</outline>
</outlines>
</object>
</objects>
Rules
The following rules apply to object marking elements:
-
asam.net:xodr:1.7.0:road.object.marking.colour: The color of the marking shall be defined.
-
asam.net:xodr:1.9.0:road.object.marking.markings_without_outline: If no outline is used, the
<markings>element shall be inside the<object>element.
-
asam.net:xodr:1.7.0:road.object.marking.no_outline_side_attr: If no outline is used, the @side attribute is mandatory.
-
asam.net:xodr:1.7.0:road.object.marking.no_cornerreference_if_no_outline: If no outline is used, the
<cornerReference>element cannot be used.
-
asam.net:xodr:1.9.0:road.object.marking.markings_with_outline: If an outline is used, any
<markings>element shall be inside an<outline>element.
-
asam.net:xodr:1.9.0:road.object.marking.complete_or_partial_on_outline: The marking of an object with an
<outlines>element shall either completely or partially be defined on one of its outlines.
-
asam.net:xodr:1.9.0:road.object.object_marking.enclosed_outline_marking: To specify a marking that fully encloses an object on a closed outline, the
<marking>shall have two<cornerReference>elements with the same @id.
-
asam.net:xodr:1.9.0:road.object.object_marking.include_points_between_cornerReferences: For
<marking>elements with<cornerReference>elements that are not directly subsequent on the outline, all points in between shall be included as well.
-
asam.net:xodr:1.9.0:road.object.object_marking.keep_id_ordered:
<cornerReference>elements shall use the same order of @id attributes as the points of the outline they belong to.
-
asam.net:xodr:1.9.0:road.object.object_marking.outline_corner_reference_count: If an outline is used, at least two
<cornerRoad>elements or at least two<cornerLocal>elements or at least one<curveLocal>element shall be referenced via<cornerReference>elements.
Related topics