-
Notifications
You must be signed in to change notification settings - Fork 130
Description
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?