opendrive coordinate system

1 Overview of opendrive coordinate system

OpenDRIVE uses three types of coordinate systems, as shown in the figure below:

  • Inertial x/y/z axis coordinate system
  • Reference line s/t/h axis coordinate system
  • Local u/v/z axis coordinate system

Unless otherwise stated, the search and positioning of the local coordinate system will be carried out relative to the reference line coordinate system. The setting of the position and direction of the reference line coordinate system is carried out with respect to the inertial coordinate system. The specific method is the rotation angle of the origin, the heading angle/yaw angle of the origin, the yaw angle/roll angle and the pitch angle and their relationship. The relationship between the two will be explained in detail.

2 Inertial coordinate systems

According to ISO 8855, the inertial coordinate system is a right-handed coordinate system, and the pointing directions of its axes are as follows (see Figure 7):

  • x axis ⇒ right
  • y axis ⇒ top
  • z-axis ⇒ points out of the drawing plane

The following conventions apply to georeferencing:

  • x axis ⇒ east
  • y axis ⇒ north
  • z axis ⇒ top

By setting the heading angle/yaw angle (heading), pitch angle (pitch) and yaw angle/roll angle (roll) in sequence, elements (such as objects, signs, etc.) can be placed in the inertial coordinate system:

Figure 7 shows the positive axis and direction of the corresponding angle.

x'/y'/(z'=z) refers to the coordinate system after the heading/yaw angle rotates the x/y/z axis around the z axis. The coordinate system x''/(y''=y')/z'' refers to the coordinate system after rotating the x'/y'/z' axis around the y'axis at the pitch angle. Finally, the coordinate system (x'''=x'')/y'''/z''' is obtained after rotating x''/y''/z'' with the yaw angle/roll angle.

3 Reference line coordinate system

The reference line coordinate system is also a right-handed coordinate system, which is applied to the road reference line. The s direction follows the tangent direction of the reference line. What needs to be explained here is that the reference line is always placed in the x/y plane defined by the inertial coordinate system. The t direction is orthogonal to the s direction. The entire right-handed coordinate system is completed after defining the upward h direction perpendicular to the x-axis and y-axis. The defined degrees of freedom are as follows:

s: The coordinates are along the reference line, with [m] as the unit, measured from the starting point of the road reference line, and calculated in the xy plane (that is, the elevation profile of the road is not considered here);
t: side, in the inertia x/ Positive to the left in the y plane;
h: perpendicular to the st plane in the right-hand coordinate system;

Similar to the inertial system, s'/t'/h' and s'''/t'''/h''' refer to the coordinates obtained by rotating around the heading angle/yaw angle and yaw angle/roll angle system. As shown in Figure 11, the reference line coordinate system can be placed in the inertial space by providing the origin coordinates and the direction (heading angle/yaw angle) relative to the origin of the inertial coordinate system.

Hyperelevation causes a yaw/roll angle within the reference line.

The pitch angle cannot appear in the s/t/h axis coordinate system. The elevation of the reference line is shown in the figure below. The elevation has no effect on the length of s.

4 Local coordinate system

According to ISO 8855, the local coordinate system is a right-handed coordinate system, and the pointing directions of its axes are as follows. The following applies to non-rotating coordinate systems:

u: Match forward s
v: Match left t
z: Match h upward

You can place elements (such as objects) in the local coordinate system by sequentially setting the heading angle/yaw angle, pitch angle and yaw angle/roll angle:

In the local coordinate system, the following angles are defined:

Figure 14 shows the positive axis and direction of the corresponding angle. The local coordinate system can only be placed in the reference line space by the following method: as shown in Figure 16, the origin of the local coordinate system and the direction relative to the reference line coordinate system and the origin of the local system are provided in the reference line coordinate system (Heading Angle/Yaw Angle).

5 Summary of all available coordinate systems

Inertial coordinate system, reference line coordinate system and local coordinate system will be used in OpenDRIVE at the same time. The example in Figure 17 describes the position and orientation settings of the three coordinate systems relative to each other.

6 Geo-coordinate reference in OpenDRIVE

The standardization of the spatial reference system is carried out by the European Petroleum Survey Group (EPSG), which is defined by the parameters used to describe the geodetic datum. The geodetic datum is a coordinate reference system made by the collection of the positions of the elliptical model relative to the earth.

The description of the geodetic datum is completed by using a projection string based on PROJ (a format for data exchange between two coordinate systems). This data should be marked as CDATA because it may contain characters that interfere with the XML semantics of element attributes.

In OpenDRIVE, the geographic reference information about the dataset is presented in the <geoReference> element of the <header> element. The Proj string (as shown in the following XML example) contains all the parameters that define the spatial reference system used:

For detailed information about proj strings, see  https://proj.org/usage/projections.html

The definition of projection cannot (shall) be more than one. If the definition is missing, then it is assumed to be a local Cartesian coordinate system.

It is strongly recommended to use the official parameter group of the proj string (use the link to query the string: https://epsg.io/ ). Parameters should not be changed. Some spatial reference systems such as UTM have hidden east and north pseudo-offsets, and they are defined by the +x_0 and +y_0 parameters here.

If you want to apply an offset, use the <offset> element instead of changing all parameter values.

XML example:

<geoReference>
<![CDATA[+proj=utm +zone=32 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs]]>
</geoReference>

rule:

  • <offset> should make the x and y coordinates of OpenDRIVE roughly centered around (0;0). In the case where the x and y coordinates are too large, due to the limited accuracy of IEEE 754 double-precision floating-point numbers, applications that use floating-point coordinates internally may not be able to accurately process them.

Guess you like

Origin blog.csdn.net/whuzhang16/article/details/110388309