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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions