Main Content

Cette page a été traduite par traduction automatique. Cliquez ici pour voir la dernière version en anglais.

createParallelState

Créer des états à l'aide de Frenet et des paramètres globaux

Depuis R2022a

    Description

    [globalState,frenetState,latTimeDerivatives] = createParallelState(refPath,S,L,V,A) prend une longueur d'arc S, une déviation latérale L, la vitesse du corps V et l'accélération du corps A, et renvoie les états globaux globalState, Frenet indique frenetState qui sont parallèles au chemin de référence, et les dérivées temporelles latérales du Frenet déclare latTimeDerivatives.

    [_] = createParallelState(refPath,S,L,V,A,invertHeading) accepte éventuellement un vecteur invertHeading, indiquant si le cap d'état de chaque waypoint doit être inversé ou non.

    Arguments d'entrée

    réduire tout

    Chemin de référence, spécifié en tant qu'objet referencePathFrenet .

    Longueurs d'arc de chemin, spécifiées sous la forme d'un vecteur de colonne d'éléments N en mètres, où N est le nombre total de longueurs d'arc souhaitées à calculer.

    Déviation latérale, spécifiée comme vecteur d'élément N en mètres. L'écart latéral est mesuré comme la distance le long du vecteur normal de la trajectoire actuelle jusqu'à la trajectoire d'origine.

    Types de données : single | double

    Vitesse corporelle, spécifiée comme vecteur d'élément N en mètres par seconde. La vitesse est dérivée en transformant la vitesse globale en le repère Frenet situé à S le long du chemin.

    Types de données : single | double

    Vitesse corporelle, spécifiée comme un vecteur d'élément N en mètres par seconde carrée. L'accélération est dérivée en transformant l'accélération globale en le repère Frenet situé à S le long du chemin.

    Types de données : single | double

    Indicateur de cap inversé, spécifié comme un vecteur de colonne d'éléments N de valeurs binaires, indiquant si le cap d'état de chaque point de cheminement doit être inversé ou non. 0 indique de ne pas inverser le titre, et 1 indique d'inverser le titre.

    Types de données : single | double

    Arguments de sortie

    réduire tout

    États dans le cadre de coordonnées global, spécifié sous la forme d'une matrice numérique P-par 6 avec des lignes de la forme [x y theta kappa speed accel], où :

    • x y et theta –– État SE(2) exprimé en coordonnées globales, avec x et y en mètres et theta en radians.

    • kappa –– Courbure, ou inverse du rayon, en m-1.

    • speed –– Vitesse dans la direction theta dans m/s.

    • accel –– Accélération dans le sens theta dans m/s2.

    P est le nombre total d’états globaux.

    États dans le référentiel Frenet, renvoyés sous la forme d'une matrice numérique P-par 6 avec des lignes de la forme [S dS ddS L dL ddL], où S est la longueur de l'arc et L est l'écart perpendiculaire par rapport à la direction du chemin de référence. Les dérivés de S sont relatifs au temps. Les dérivées de L sont relatives à la longueur de l'arc, S. P est le nombre total d’états Frenet.

    Dérivées temporelles latérales, spécifiées sous la forme d'une matrice N-par-3 où chaque ligne est de la forme [dL/dt ddL/dt^2 invertHeading] et N est le nombre total de points dans points. createParallelState dérive les dérivées première et seconde en transformant la vitesse et l'accélération globales dans le repère de Frenet à la longueur de l'arc le long du chemin. Chaque ligne contient les dérivées temporelles de 1er et 2e ordre de l'écart latéral et un indicateur, invertHeading, qui indique si le cap doit être inversé lors de la conversion en coordonnées globales (true) ou non (false).

    Remarque

    Si vous définissez latTimeDerivatives sans utiliser global2frenet, les règles suivantes doivent être suivies :

    1. L'indicateur invertHeading doit être vrai lorsque :

      1. Le véhicule roule en marche arrière (vitesse inférieure à 0)

      2. Le véhicule est à l'arrêt (la vitesse est égale à 0) et le véhicule est orienté à l'opposé du vecteur tangent à la trajectoire. c'est-à-dire cos(|tangentAngle(obj,S)-thetaExpected|) < 0

    2. Si 1b est vrai, alors dL/dS doit être annulé.

    Historique des versions

    Introduit dans R2022a