Skip to content

Intended representation of guard rails or barriers in general #894

@ClemensLinnhoff

Description

@ClemensLinnhoff

Describe the problem

There are two different approaches to representing barriers in OSI.
A stationary object can be of type barrier as well as a lane boundary. Lane boundaries have a distinction between guard rail and barrier, stationary objects do not.

Describe your research

In OpenDRIVE guard rails, or any type of barrier that follows the curvature of a road, is represented as an object with an outline, for example like this:

<object id="25" name="GuardRail" s="8.9425250584115815e+01" t="2.1041273659654401e+01" zOffset="3.3019998669624329e-01" hdg="-3.1415926530054130e+00" roll="0.0000000000000000e+00" pitch="0.0000000000000000e+00" orientation="-" type="barrier" subtype="guardRail" height="3.0480000000000002e-01" width="8.4376949871511897e-15" length="1.7885050846499973e+02" validLength="0.0000000000000000e+00" dynamic="no">
    <outlines>
        <outline id="1" outer="true" closed="false">
            <cornerLocal u="-8.9425257880883933e+01" v="-1.2880872333198568e-06" z="1.3303756707383485e-08" height="3.0480000000000002e-01" id="1"/>
            <cornerLocal u="-8.6299565230264136e+01" v="-1.2899138113198205e-06" z="1.3303756707383485e-08" height="3.0480000000000002e-01" id="2"/>
            <cornerLocal u="-8.0808164736064754e+01" v="-1.2931228781098980e-06" z="1.3303756707383485e-08" height="3.0480000000000002e-01" id="3"/>
            <cornerLocal u="-7.5316764241865386e+01" v="-1.2963319448999755e-06" z="1.3303756707383485e-08" height="3.0480000000000002e-01" id="4"/>
            <cornerLocal u="-6.9825363747666017e+01" v="-1.2995410259009077e-06" z="1.3303756707383485e-08" height="3.0480000000000002e-01" id="5"/>
            ...
        </outline>
    </outlines>
</object>

To convert this to OSI ground truth, it could either be represented as a lane boundary with every cornerLocal from the OpenDRIVE as a boundary_line. Or it could be represented as a stationary object with every cornerLocal as a base_polygon vector.

In the rather old issue #271 guard rails are implemented as lane boundaries. But esmini implements them as stationary objects using base_polygon.

Ask your question

Is there an officially "correct" way of representing a guard rail from OpenDRIVE in OSI?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions