12.10 Junction boundary

Junction boundaries define the outermost edge of the full area for common junctions, where the <elevationGrid> is applied to all points within this boundary. A junction boundary consists of segments that run along the outmost edge of a given lane or perpendicular to lanes connected to the junction and should include all sidewalks or similar lanes. Segments run counter clockwise around the junction and form a closed junction boundary. The boundary can also specify a transition zone where local height is interpolated between road data and the <elevationGrid> in order to ensure a smooth transition from the roads outside of the junction onto the grid and vice versa.

Elements in UML model

<boundary> element

In ASAM OpenDRIVE, junction boundaries are represented by the <boundary> element within the <junction> element.

UML class:  t_junction_boundary
XML tag:    <boundary> (Multiplicity: 0..1)
Introduced: 1.8.0

Junction boundaries enclose the area intended for traffic. This also includes the sidewalks for pedestrians.

img
Figure 96. UML class diagram of the JunctionGeometry class

Figure 96 shows the UML class diagram of the ASAM OpenDRIVE JunctionGeometry class.

<segment type="lane"> element

In ASAM OpenDRIVE, segments along lanes are represented by <segment> elements with the value lane in the @type attribute within the <boundary> element. The order of the <segment> elements represent the segments in counterclockwise order around the junction.

UML class:  t_junction_boundary_segment_lane
XML tag:    <segment type="lane"> (Multiplicity: 1..*)
Introduced: 1.8.0

A segment element with @type="lane" goes along @boundaryLane for the given s range. It is the outmost edge of the lane relative to the center of the junction.

Table 77. Attributes of the <segment type="lane"> element
Name Type Use Unit Introduced Description

boundaryLane

int

required

1.8.0

ID of the lane of which the outer edge is the segment

roadId

string

required

1.8.0

ID of the road used for the segment

sEnd

t_grEqZeroOrContactPoint

required

m

1.8.0

End of the segment (s-coordinate, begin, end)

sStart

t_grEqZeroOrContactPoint

required

m

1.8.0

Start of the segment (s-coordinate, begin, end)

type

e_junction_segment_type

required

1.8.0

Type of the segment

<segment type="joint"> element

In ASAM OpenDRIVE, segments perpendicular to lanes are represented by <segment> elements with the value joint in the @type attribute within the <boundary> element. The order of the <segment> elements represent the segments in counterclockwise order around the junction.

UML class:  t_junction_boundary_segment_joint
XML tag:    <segment type="joint"> (Multiplicity: 1..*)
Introduced: 1.8.0

A segment element with @type="joint" is perpendicular to the start or end of the given road.

Table 78. Attributes of the <segment type="joint"> element
Name Type Use Unit Introduced Description

contactPoint

t_grEqZeroOrContactPoint

required

1.8.0

Contact point on the road

jointLaneEnd

int

optional

1.8.0

ID of the lane crossed by the segment. If missing all lanes are crossed by the segment.

jointLaneStart

int

optional

1.8.0

ID of the lane crossed by the segment. If missing all lanes are crossed by the segment.

roadId

string

required

1.8.0

ID of the road used for the segment

transitionLength

t_grEqZero

optional

m

1.8.0

Length of the transition area where local height is interpolated between road data and the <elevationGrid> in order to ensure a smooth transition. The default is 0.

type

e_junction_segment_type

required

1.8.0

Type of the segment

XML example

img
Figure 97. Junction boundary formed by segments

Figure 97 shows a junction boundary out of various segments along lanes or perpendicular to lanes. The road with @id="100" has the sole purpose to provide a lane segment that closes the junction boundary at the gap between the road with @id="60" and the road with @id="3".

<junction>
    <boundary>
        <segment type="lane" roadId="8" boundaryLane="-2" sStart="begin" sEnd="end"/>
        <segment type="joint" roadId="2" contactPoint="end" jointLaneStart="2" jointLaneEnd="-1"/>
        <segment type="lane" roadId="17" boundaryLane="-1" sStart="begin" sEnd="end"/>
        <segment type="joint" roadId="3" contactPoint="start"/>
        <segment type="lane" roadId="100" boundaryLane="0" sStart="begin" sEnd="end"/>
        <segment type="joint" roadId="60" contactPoint="start" jointLaneStart="0" jointLaneEnd="2"/>
        <segment type="lane" roadId="52" boundaryLane="0" sStart="end" sEnd="begin"/>
        <segment type="joint" roadId="4" contactPoint="end" jointLaneStart="1" jointLaneEnd="-2"/>
        <segment type="lane" roadId="32" boundaryLane="-2" sStart="begin" sEnd="42.0"/>
        <segment type="lane" roadId="32" boundaryLane="-1" sStart="42.0" sEnd="end"/>
        <segment type="joint" roadId="5" contactPoint="end" jointLaneStart="1" jointLaneEnd="-2"/>
        <segment type="lane" roadId="41" boundaryLane="-2" sStart="begin" sEnd="end"/>
        <segment type="joint" roadId="1" contactPoint="start" jointLaneStart="-2" jointLaneEnd="2"/>
    </boundary>
</junction>

Rules

The following rules apply to junction boundaries:

  • Junction boundaries are currently only valid for common junctions.

  • Segments shall be ordered counter clockwise.

  • Segments shall be defined to reach the start or end of all roads connected to the junction.

  • Segments shall close the entire junction boundary.

  • If the existing roads are not sufficient to define a closed junction boundary, additional roads shall be defined for the missing segments. These additional roads shall follow the rules of road linkage to the incoming roads, outgoing roads, or connecting roads (see Section 10.3, "Road linkage"), but are not required to have any lanes or connections. Start and end of an additional road shall point away from both incoming and/or outgoing roads to the inside of the junction. The @junction attribute shall contain the id of the junction to which the road belongs.

Related topics