Open tbleher opened 3 years ago
The offset
in OpenDRIVE is nothing else than a false northing / false easting, which can also be described within the PROJ-string (OpenDRIVE geoReference
/ OSI proj_string
), usually by x_0
and y_0
. This means that the same thing can be defined twice. I would rather remove this redundancy in OpenDRIVE than add it to OSI.
@TimFrickeBMW Thanks for the explanation! I agree that removing this from OpenDRIVE makes more sense. I have created https://code.asam.net/simulation/standard/opendrive/-/issues/71 for this - hopefully this can be deprecated for OpenDRIVE 1.7 (alternatively 1.8).
In OpenDRIVE, the offset is used to not run into problems with floating point accuracy (most decimal places / best accuracy around 0) and to not have to manipulate the proj string. "If you want to apply an offset, use the
@adrianschultz I was in the OpenDRIVE standardization group when the line quoted above was added, and now (after further discussion) believe that this was a mistake. I think the offset should be deprecated in OpenDRIVE. I will try to do that for OpenDRIVE 1.7 or 1.8 (as mentioned above). So this ticket was a mistake - please do not add anything here to OSI (I explicitly closed this, since the request was misguided).
The OSI GroundTruth provides a field
proj_string
to describe a mapping between the coordinates used in OSI and global world coordinates. My understanding is that ideally one would copy the projection string directly from OpenDRIVE to OSI. However, OpenDRIVE provides not just ageoReference
but also anoffset
field.OSI currently does not have an
offset
field. To support an OpenDRIVE file which has a defined offset, there are two workarounds currently:map_reference
andmodel_reference
fields might not work correctly.None of the workarounds is satisfactory.
Suggestion: add an additional
x
andy
offset with the same semantics as in OpenDRIVE. This will make it trivial to copy the projection from OpenDRIVE to OSI. This should not affect backward compatibility, since the offset will be zero by default, which is the existing behaviour. Alternatively, theoffset
should be deprecated in OpenDRIVE.