Geometría en opendrive

La dirección de la carretera puede variar, puede ser una línea recta en un terreno abierto, una curva larga y delgada en una carretera o una curva estrecha en una zona montañosa. Para modelar correctamente todas estas líneas de carreteras desde un punto de vista matemático, OpenDRIVE proporciona una variedad de elementos de formas geométricas. La Figura 19 muestra cinco formas posibles de definir la geometría de la línea de referencia de la carretera:

  • línea recta
  • Curva espiral o ciclotrónica (la curvatura cambia de forma lineal)
  • Un arco de curvatura constante
  • Curva polinomial cúbica
  • Curva polinomial cúbica paramétrica

1 Línea de referencia vial

La línea de referencia de la carretera es el elemento básico de cada carretera en OpenDRIVE. Todos los elementos geométricos que describen la forma de la carretera y otros atributos se definen de acuerdo con la línea de referencia, estos atributos incluyen carriles y señales.

Por definición, la línea de referencia se extiende en la dirección s, mientras que el objeto está desplazado lateralmente de la línea de referencia y se estira en la dirección t.

La Figura 20 muestra las diferentes partes de una carretera en OpenDRIVE.

  • Línea de referencia vial
  • Carril separado en una carretera
  • Elementos de la carretera (como señales) colocados a lo largo de la carretera

En OpenDRIVE, la geometría de la línea de referencia está representada por el elemento <geometry> en el elemento <planView>.

El elemento <planView> es un elemento que debe usarse en cada elemento <road>.

Las siguientes reglas se aplican a las líneas de referencia de carreteras:

  • Cada camino debe tener una línea de referencia.
  • Solo puede haber una línea de referencia para cada camino.
  • La línea de referencia suele estar en el centro de la carretera, pero también puede tener un desplazamiento lateral.
  • Los elementos geométricos deben disponerse en orden ascendente (es decir, aumentando las posiciones s) a lo largo de la línea de referencia.
  • Un elemento <geometry> solo debe contener un elemento que describa adicionalmente la forma geométrica de la carretera.
  • Si dos carreteras no están conectadas por una intersección, la línea de referencia de la nueva carretera siempre debe comenzar desde el <contactPoint> de su carretera predecesora o sucesora. La línea de referencia puede apuntar en la dirección opuesta.
  • La línea de referencia no debe tener saltos.
  • La línea de referencia no debe tener torceduras.

2 rectos

En OpenDRIVE, las líneas rectas están representadas por el elemento <line> en el elemento <geometry>.

 Ejemplo XML

<planView>
<geometry
s="0.0000000000000000e+00"
x="-4.7170752711170401e+01"
y="7.2847983820912710e-01"
hdg="6.5477882613167993e-01"
length="5.7280000000000000e+01">
<line/>
</geometry>
</planView>

3 Espiral

Como se muestra en la Figura 23, la espiral es una curva sinuosa que describe la curvatura de la línea de referencia. Las líneas espirales se pueden utilizar para describir la transición continua de curvatura de <línea> a <arco>.

La espiral se caracteriza por la curvatura de la posición inicial (@curvStart) y la curvatura de la posición final (@curvEnd). La longitud del arco a lo largo de la espiral (ver el elemento <geometry> @length), la curvatura es lineal de principio a fin.

También puede organizar los elementos de <line>, <spiral> y <arc> para describir la curvatura compleja.

En OpenDRIVE, la espiral está representada por el elemento <spiral> en el elemento <geometry>.

Ejemplo XML

<geometry s="100.0" x="38.00" y="-1.81" hdg="0.33" length="30.00">
    <spiral curvStart="0.0" curvEnd="0.013"/>
</geometry>

Las siguientes reglas se aplican a las espirales:

  • @curvStart y @curvEnd no deberían ser iguales.

4 arco

Como se muestra en la Figura 24, el arco describe la línea de referencia de la carretera con curvatura constante.

En OpenDRIVE, el arco está representado por el elemento <arc> en el elemento <geometry>.

 Ejemplo XML

<planView>
<geometry
s="3.6612031746270386e+00"
x="-4.6416930098385274e+00"
y="4.3409250448366459e+00"
hdg="5.2962250374496271e+00"
length="9.1954178989066371e+00">
<arc curvature="-1.2698412698412698e-01"/>
</geometry>
</planView>

Las siguientes reglas se aplican a los arcos:

  • La curvatura no debe ser cero.

5 Genere líneas de carril arbitrarias a partir de elementos de formas geométricas

Como se muestra en la Figura 25, al combinar todos los elementos de formas geométricas disponibles en OpenDRIVE, se pueden crear muchos tipos de líneas de carreteras.

Para evitar fracturas en la curvatura, se recomienda utilizar espirales para combinar líneas rectas con arcos y otros elementos con diferentes curvaturas.

6 polinomio cúbico (obsoleto)

El polinomio de tercer grado se puede utilizar para generar direcciones de carreteras complejas derivadas de datos de medición. El par de medición define el límite polinómico del segmento de línea en el orden especificado de las coordenadas medidas a lo largo de la línea de referencia en el sistema de coordenadas x / y.

El polinomio cúbico local describe la línea de referencia de la carretera. Al especificar las condiciones de continuidad en el límite del segmento de línea, como la continuidad del segmento de línea, la continuidad de tangente y / o curvatura, etc., se pueden fusionar múltiples segmentos de línea polinomiales cúbicos y se puede generar una curva de interpolación spline cúbica global para toda la línea. dirección de la carretera. Otra ventaja es que la trayectoria a lo largo del polinomio es más eficiente que a lo largo de la curva del ciclotrón.

6.1 Información básica sobre polinomios cúbicos

La siguiente ecuación describe la interpolación del polinomio cúbico en el sistema de coordenadas x / y:
y (x) = a + b * x + c * x2 + d * x³

Los parámetros polinomiales a, b, cyd de la fórmula se utilizan para definir la dirección de la carretera. Con la ayuda del parámetro ad, la coordenada y de cada punto del sistema de coordenadas se puede calcular a partir de la coordenada x.

La Figura 26 muestra el polinomio cúbico en el sistema de coordenadas x / y usando los siguientes valores:

6.2 Utilice polinomios cúbicos para crear carreteras

Como se muestra en la Figura 27, el polinomio cúbico descrito en el sistema de coordenadas x / y no es adecuado para describir segmentos de curvas con direcciones arbitrarias. Para procesar un segmento de curva con dos o más coordenadas y en una coordenada x dada, el segmento polinomial cúbico puede definirse de acuerdo con la relación con el sistema de coordenadas local u / v. El uso del sistema de coordenadas local u / v mejora la flexibilidad de la definición de la curva. Se utiliza la siguiente ecuación:
v (u) = a + b * u + c * u2 + d * u³

La dirección del sistema de coordenadas local u / v debe seleccionarse de la siguiente manera: la función v (u) en la coordenada u creciente se usa para expresar la curva.

En términos generales, el sistema de coordenadas u / v y el sistema de coordenadas s / t están en la posición inicial (@ x, @ y) y en la dirección inicial @hdg del segmento de línea (los dos puntos se detallan en el elemento <geometry>) Es consistente. El resultado de esta elección es el parámetro polinomial a = b = 0 (ver Figura 28). Como opción adicional, el sistema de coordenadas local u / v se puede rotar con respecto al punto de inicio (@ x, @ y) especificando un parámetro polinomial @b que no sea igual a 0. Aquí, el arco tangente arctan (@b) define el ángulo de rumbo / guiñada del polinomio en relación con el sistema de coordenadas local u / v. Puede establecer un parámetro polinomial @a que no sea igual a 0 (ver Figura 29) para obtener
el desplazamiento adicional del origen del sistema de coordenadas u / v a lo largo del eje de coordenadas v cuando (@ x, @ y) debe posicionarse en u = 0 . El parámetro u puede cambiar con la proyección desde 0 hasta el final de la curva en el eje de coordenadas u. Para un parámetro u dado, la coordenada local v (u) define el punto de la curva en el sistema de coordenadas local u / v.
v (u) = a + b * u + c * u2 + d * u³

Teniendo en cuenta los parámetros de desplazamiento y rotación @a, @b, (@ x, @ y) y @hdg especificados en el elemento <geometry>, la posición final de la curva x / y en la coordenada u dada se muestra en la Figura 29.

En OpenDRIVE, el polinomio cúbico está representado por el elemento <poly3> en el elemento <geometry>.

Ejemplo XML

<geometry
s="0.0000000000000000e+00"
x="-6.8858131487889267e+01"
y="4.1522491349480972e-01"
hdg="6.5004409066736524e-01"
length="2.5615689718113455e+01">
<poly3
a="0.0000000000000000e+00"
b="0.0000000000000000e+00"
c="1.4658732624442020e-02"
d="-5.7746497381565959e-04"/>
</geometry>
<geometry
s="2.5615689718113455e+01"
x="-4.8650519031141869e+01"
y="1.5778546712802767e+01"
hdg="2.9381264033570398e-01"
length="3.1394863696852912e+01">
<poly3
a="0.0000000000000000e+00"
b="0.0000000000000000e+00"
c="-1.9578575382799307e-02"
d="2.3347864348004167e-04"/>
</geometry>

Las siguientes reglas se aplican a los polinomios cúbicos:

  • El polinomio de tercer grado puede usarse para describir el curso de la carretera cuando los datos de medición están disponibles.
  • Si el sistema de coordenadas local u / v es consistente con el punto de partida del sistema de coordenadas s / t, entonces el coeficiente del parámetro polinomial es a = b = 0.
  • El punto de inicio (@ x, @ y) del elemento <geometry> se coloca en el eje v del sistema de coordenadas local u / v.
  • Los parámetros polinomiales ayb deben ser 0 para garantizar la suavidad de la línea de referencia. 

7 Curva cúbica paramétrica

La curva cúbica paramétrica se utiliza para describir la curva compleja generada a partir de los datos de medición. La curva cúbica paramétrica es más flexible que el polinomio cúbico y puede describir más tipos de líneas de carreteras. En comparación con el polinomio cúbico definido en el sistema de coordenadas x / y o considerado como el sistema de coordenadas local u / v, la interpolación de la coordenada x y la coordenada y se realiza mediante sus propias splines en relación con el parámetro de interpolación común p.

7.1 Utilice una curva cúbica paramétrica para generar carreteras

Puede utilizar curvas cúbicas paramétricas para generar líneas de carretera simplemente utilizando el eje xy el eje y. Para mantener la continuidad del polinomio cúbico, el eje u y el eje v se pueden usar para calcularlos simultáneamente en el polinomio cúbico.

A menos que se especifique lo contrario, el parámetro de interpolación p está en el rango de [0; 1]. Además, también se puede asignar dentro del rango de [0; @length of <geometry>]. De manera similar al polinomio cúbico, el sistema de coordenadas local con las variables u y v se puede colocar y rotar arbitrariamente.

Para simplificar la descripción, el sistema de coordenadas local puede ser consistente con el sistema de coordenadas s / t en el punto inicial (@ x, @ y) y la dirección inicial @hdg:

  • El punto u está en la dirección local s, es decir, en el punto inicial a lo largo de la línea de referencia.
  • El punto v está en la dirección local t, es decir, está desplazado lateralmente desde la línea de referencia en el punto inicial.
  • Los parámetros @aU, @aV y @bV deben ser cero.

Como se muestra en las Figuras 26, 27 y 28, la asignación de valores distintos de cero a los parámetros @aU, @aV y @bV provocará el desplazamiento y la rotación del sistema de coordenadas s / t.

Después de definir el punto en la curva para el parámetro conocido p, considere el desplazamiento relativo a los parámetros @aU, @aV, @bU, @bV, coordenadas iniciales (@ x, @ y) y dirección inicial @hdg Bajo la premisa de y dirección, el valor de uy el valor de v se convertirán en el valor del sistema de coordenadas x / y.

Cabe señalar aquí que la longitud real del arco entre el punto de inicio (@ x, @ y) en el parámetro de interpolación py el elemento <geometry> y el punto relacionado con el parámetro p (x (p), y ( p)) es una relación no lineal. En términos generales, solo los parámetros de inicio y finalización p = 0 y p = @ length (opción @ pRange = arcLength) son consistentes con la longitud real del arco.

Teniendo en cuenta los parámetros de desplazamiento y rotación @a, @b, (@ x, @ y) y @hdg especificados en el elemento <geometry>, la posición final de la curva x / y en la coordenada u dada se muestra en la Figura 29.

En OpenDRIVE, la curva cúbica paramétrica está representada por el elemento <paramPoly3> en el elemento <geometry>.

Ejemplo XML

<planView>
<geometry
s="0.000000000000e+00"
x="6.804539427645e+05"
y="5.422483642942e+06"
hdg="5.287405485081e+00"
length="6.565893957370e+01">
<paramPoly3
aU="0.000000000000e+00"
bU="1.000000000000e+00"
cU="-4.666602734948e-09"
dU="-2.629787927644e-08"
aV="0.000000000000e+00"
bV="1.665334536938e-16"
cV="-1.987729787588e-04"
dV="-1.317158625579e-09"
pRange="arcLength">
</paramPoly3>
</geometry>
</planView>

Las siguientes reglas se aplican a las curvas cúbicas paramétricas:
Si el punto inicial del sistema de coordenadas u / v local es consistente con el sistema de coordenadas s / t, entonces el coeficiente del parámetro polinomial es @ aU = @ aV = @ bV = 0.

Si @ pRange = "arcLength", entonces a p se le puede asignar un valor en el rango de [0, @length from <geometry>].
Si @ pRange = "normalizado", entonces se puede asignar un valor a p en el rango [0, 1].
Los parámetros polinomiales aU, bU y aV deben ser 0 para garantizar la suavidad de la línea de referencia.

 

Supongo que te gusta

Origin blog.csdn.net/whuzhang16/article/details/110671806
Recomendado
Clasificación