waypointTrajectory
Générateur de trajectoire de waypoint
Description
Le waypointTrajectory System object™ génère des trajectoires basées sur des waypoints spécifiés. Lorsque vous créez le System object, vous pouvez choisir de spécifier l'heure d'arrivée, la vitesse ou la vitesse sol à chaque waypoint. Vous pouvez éventuellement spécifier d'autres propriétés telles que l'orientation à chaque waypoint. Voir Algorithmes pour plus de détails.
Pour générer une trajectoire à partir de waypoints :
Créez l'objet
waypointTrajectoryet définissez ses propriétés.Appelez l'objet comme s'il s'agissait d'une fonction.
Pour en savoir plus sur le fonctionnement des objets système, consultez What Are System Objects?.
Création
Syntaxe
Description
renvoie un System object, trajectory = waypointTrajectorytrajectory, qui génère une trajectoire basée sur des waypoints stationnaires par défaut.
précise l'heure d'arrivée à laquelle la trajectoire générée passe par chaque waypoint. Voir la propriété trajectory = waypointTrajectory(Waypoints,TimeOfArrival)TimeOfArrival pour plus de détails.
Conseil
Lorsque vous spécifiez l'argument TimeOfArrival , vous ne devez pas spécifier ces propriétés :
JerkLimitInitialTimeWaitTime
spécifie la vitesse sol à laquelle passe la trajectoire générée à chaque waypoint. Voir la propriété trajectory = waypointTrajectory(Waypoints,GroundSpeed=groundSpeed)GroundSpeed pour plus de détails.
spécifie la vitesse à laquelle la trajectoire générée passe à chaque waypoint. Voir la propriété trajectory = waypointTrajectory(Waypoints,Velocities=velocities)Velocities pour plus de détails.
définit chaque propriété en utilisant des arguments nom-valeur. Les propriétés non spécifiées ont des valeurs par défaut ou déduites. Vous pouvez utiliser cette syntaxe avec n'importe laquelle des syntaxes précédentes.trajectory = waypointTrajectory(___,Name=Value)
Exemple : trajectory = waypointTrajectory([10,10,0;20,20,0;20,20,10],[0,0.5,10]) crée un System object de trajectoire de point de cheminement, trajectory, qui commence au point de cheminement [10,10,0], puis passe par [20,20,0] après 0,5 seconde et [20,20,10] après 10 secondes.
Propriétés
Utilisation
Description
[ génère une trame de données de trajectoire basée sur les arguments et propriétés de création spécifiés.position,orientation,velocity,acceleration,angularVelocity] = trajectory()
Arguments de sortie
Fonctions d'objet
Pour utiliser une fonction objet, spécifiez le System object comme premier argument d'entrée. Par exemple, pour libérer les ressources système d'un System object nommé obj, utilisez cette syntaxe :
release(obj)
Exemples
Algorithmes
L' System object waypointTrajectory définit une trajectoire qui passe en douceur par des waypoints. La trajectoire relie les points de cheminement via une interpolation qui suppose que la direction de la gravité exprimée dans le référentiel de trajectoire est constante. Généralement, vous pouvez utiliser waypointTrajectory pour modéliser les trajectoires d'une plate-forme ou d'un véhicule sur une distance de plusieurs centaines de kilomètres.
Le chemin planaire de la trajectoire (la projection x- y ) se compose de courbes Clothoïdes par morceaux. La courbure de la courbe entre deux waypoints consécutifs varie linéairement avec la longueur de la courbe qui les sépare. La direction tangente du chemin à chaque waypoint est choisie pour minimiser les discontinuités dans la courbure, sauf si le cap est spécifié explicitement via la propriété Course ou implicitement via la propriété Velocities. . Une fois le chemin établi, l'objet utilise l'interpolation cubique Hermite pour calculer l'emplacement du véhicule tout au long du chemin en fonction du temps et de la distance planaire parcourue. Si la propriété JerkLimit est spécifiée, les objets produisent un profil d'accélération trapézoïdale horizontale pour tout segment situé entre deux points de cheminement. Le profil d'accélération trapézoïdale se compose de trois sous-segments :
Un sous-segment de secousse d'ampleur constante
Un sous-segment d'accélération à magnitude constante
Un sous-segment de secousse d'ampleur constante
La composante normale (z-component) de la trajectoire est ensuite choisie pour satisfaire une spline par morceaux préservant la forme (PCHIP) à moins que le taux de montée ne soit spécifié explicitement via le ClimbRate ou la troisième colonne de la propriété Velocities . Choisissez le signe du taux de montée en fonction du ReferenceFrame sélectionné :
Lorsqu'un référentiel 'ENU' est sélectionné, la spécification d'un taux de montée positif entraîne une valeur croissante de z.
Lorsqu'un cadre de référence 'NED' est sélectionné, la spécification d'un taux de montée positif entraîne une valeur décroissante de z.
Vous pouvez définir l'orientation du véhicule sur le trajet de deux manières principales :
Si la propriété
Orientationest spécifiée, l'objet utilise une spline quaternion cubique par morceaux pour calculer l'orientation le long du chemin en fonction du temps.Si la propriété
Orientationn'est pas spécifiée, alors le lacet du véhicule est toujours aligné avec la trajectoire. Le roulis et le tangage sont alors régis par les valeurs de propriétéAutoBanketAutoPitch, respectivement.AutoBankAutoPitchDescription falsefalseLe véhicule est toujours de niveau (tangage et roulis nuls). Ceci est généralement utilisé pour les grands navires marins. falsetrueLe tangage du véhicule est aligné avec la trajectoire et son roulis est toujours nul. Ceci est généralement utilisé pour les véhicules terrestres. truefalseLe tangage et le roulis du véhicule sont choisis de manière à ce que son axe local z soit aligné avec l'accélération nette (y compris la gravité). Ceci est généralement utilisé pour les avions à voilure tournante. truetrueLe roulis du véhicule est choisi de manière à ce que son plan transversal local s'aligne avec l'accélération nette (y compris la gravité). L'inclinaison du véhicule est alignée avec le chemin. Ceci est généralement utilisé pour les véhicules à deux roues et les avions à voilure fixe.






















