Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

createParallelState

Crear estados usando Frenet y parámetros globales.

Desde R2022a

    Descripción

    [globalState,frenetState,latTimeDerivatives] = createParallelState(refPath,S,L,V,A) toma una longitud de arco S, una desviación lateral L, una velocidad corporal V y una aceleración corporal A, y devuelve los estados globales globalState, los estados de Frenet frenetState que corren paralelos a la ruta de referencia y las derivadas temporales laterales de los estados de Frenet latTimeDerivatives.

    [_] = createParallelState(refPath,S,L,V,A,invertHeading) acepta opcionalmente un vector invertHeading, que indica si el rumbo del estado de cada punto de referencia debe invertirse o no.

    Argumentos de entrada

    contraer todo

    Ruta de referencia, especificada como un objeto referencePathFrenet.

    Longitudes de arco de la ruta, especificadas como un vector columna de elementos N en metros, donde N es el número total de longitudes de arco deseadas para calcular.

    Desviación lateral, especificada como un vector de elementos N en metros. La desviación lateral se mide como la distancia a lo largo del vector normal de la ruta actual a la ruta original.

    Tipos de datos: single | double

    Velocidad corporal, especificada como un vector de elementos N en metros por segundo. La velocidad se obtiene transformando la velocidad global en el marco de Frenet ubicado en S a lo largo de la ruta.

    Tipos de datos: single | double

    Velocidad corporal, especificada como un vector de elementos N en metros por segundo al cuadrado. La aceleración se obtiene transformando la aceleración global en el marco de Frenet ubicado en S a lo largo de la trayectoria.

    Tipos de datos: single | double

    Bandera de inversión de rumbo, especificada como un vector columna de elementos N de valores binarios, que indica si el rumbo de estado de cada punto de referencia debe invertirse o no. 0 indica no invertir el rumbo y 1 indica invertir el rumbo.

    Tipos de datos: single | double

    Argumentos de salida

    contraer todo

    Estados en el marco de coordenadas global, especificados como una matriz numérica de P por 6 con filas con la forma [x y theta kappa speed accel], donde:

    • x y y theta –– Estado SE(2) expresado en coordenadas globales, con x y y en metros y theta en radianes.

    • kappa –– Curvatura, o inversa del radio, en m-1.

    • speed –– Velocidad en la dirección theta en m/s.

    • accel –– Aceleración en la dirección theta en m/s2.

    P es el número total de estados globales.

    Estados en el marco de coordenadas de Frenet, devueltos como una matriz numérica de P por 6 con filas con la forma [S dS ddS L dL ddL], donde S es la longitud del arco y L es la desviación perpendicular de la dirección de la ruta de referencia. Las derivadas de S son relativas al tiempo. Las derivadas de L son relativas a la longitud del arco, S. P es el número total de estados de Frenet.

    Derivadas temporales laterales, especificadas como una matriz N por 3 donde cada fila tiene la forma [dL/dt ddL/dt^2 invertHeading] y N es el número total de puntos en points. createParallelState deriva la primera y la segunda derivada transformando la velocidad y la aceleración globales en el marco de Frenet en la longitud de arco a lo largo de la trayectoria. Cada fila contiene las derivadas temporales de primer y segundo orden de la desviación lateral y un indicador, invertHeading, que indica si el rumbo debe invertirse al convertir a coordenadas globales (true) o no (false).

    Nota

    Si se define latTimeDerivatives sin el uso de global2frenet, se deben seguir las siguientes reglas:

    1. La bandera invertHeading debe ser verdadera cuando:

      1. El vehículo se mueve en reversa (la velocidad es menor que 0)

      2. El vehículo está parado (la velocidad es igual a 0) y está de espaldas al vector tangente de la trayectoria. es decir, cos(|tangentAngle(obj,S)-thetaExpected|) < 0

    2. Si 1b es verdadero, entonces dL/dS debe negarse.

    Historial de versiones

    Introducido en R2022a