Contents — find the section you need

Un chemin est géométrique ; une trajectoire spécifie quand ce chemin est parcouru et à quelle vitesse, accélération et à quelle secousse. L’axe d’une allée n’indique pas à un chariot chargé, à un bras robotisé flexible ou à un manipulateur collaboratif sa vitesse de virage ou d’arrêt maximale. Une polyligne sans collision issue d’un planificateur peut néanmoins imposer une direction impossible, saturer une articulation, provoquer des vibrations ou faire tomber sa charge. La génération de trajectoires traduit la faisabilité géométrique en une exécutabilité prenant en compte le temps et la dynamique.

Ce guide compare les profils de vitesse trapézoïdaux/triangulaires, les polynômes quintiques et la méthode de la secousse minimale. Il aborde également les limites, la sécurité, l’implémentation et les frontières de ROS 2 et de la planification de trajectoires. Voir Introduction à la planification de trajectoires, Introduction à ROS 2 et Introduction à Visual SLAM.

Conclusion pratique

  • Les profils trapézoïdaux permettent de visualiser clairement la vitesse et l'accélération maximales. Les déplacements courts deviennent des profils triangulaires sans segment de croisière. Leurs paliers d'accélération idéaux impliquent une secousse infinie, susceptible d'exciter des mécanismes flexibles et des charges utiles.

  • Un polynôme quintique satisfait les conditions aux limites de position, de vitesse et d'accélération aux deux extrémités. Des points d'extrémité de vitesse et d'accélération nuls assurent la continuité de la position à l'accélération entre les segments.

  • La secousse minimale minimise \int j(t)^2dt sous des conditions aux points d'extrémité spécifiées ; avec une durée fixe, elle donne un polynôme quintique. Le terme « minimum » s'applique à l'objectif sélectionné, et non automatiquement à l'énergie, au risque de collision ou à la sécurité. - Surveiller simultanément la position, la vitesse, l'accélération, la secousse, les limites, le courant, la distance d'arrêt, l'erreur de suivi et la fraîcheur de la carte. Un générateur de trajectoire n'est pas un système d'arrêt d'urgence ni un système de sécurité anti-collision.

Paramétrage temporel d'une trajectoire

Pour une trajectoire spatiale p(s) et une progression s\in[0,1] au cours du temps t, la trajectoire est p(s(t)). Ici, \dot s représente le taux de progression :

\dot p=\frac{dp}{ds}\dot s,\qquad \ddot p=\frac{d^2p}{ds^2}\dot s^2+\frac{dp}{ds}\ddot s

Une forte courbure augmente l'accélération latérale. Un robot mobile suit approximativement la trajectoire a_{lat}=v^2\kappa, où \kappa représente la courbure ; ainsi, une limite latérale a_{lat,max} donne v\le\sqrt{a_{lat,max}/|\kappa|}. Accélérer sans adoucir un virage demande au système de suivi une direction impossible. Pour un bras, même une trajectoire fluide de l'effecteur terminal peut engendrer une vitesse articulaire élevée à proximité d'une singularité cinématique ; les contraintes liées à la main, au véhicule, à l'articulation et à l'actionneur doivent être vérifiées conjointement.

Vitesse trapézoïdale et triangulaire

Pour une distance D, une vitesse maximale v_{max} et une amplitude d'accélération a_{max}, le temps d'accélération est t_a=v_{max}/a_{max} et la distance parcourue en mode accélération/décélération uniquement est D_{tri}=v_{max}^2/a_{max}. La limite d'accélération est a_{max}. Si D\ge D_{tri}, le temps de croisière est :

t_c=\frac{D-D_{tri}}{v_{max}}

Si D<D_{tri}, le mode croisière est désactivé et la vitesse de pointe est v_p=\sqrt{Da_{max}}. Ce profil est transparent et facile à déployer dans les systèmes d'entraînement simples. Ses variations d'accélération instantanées ne sont pas d'ordre physique : un profil en S limite l'à-coup (j_{max}) en augmentant progressivement l'accélération, réduisant ainsi les chocs et les vibrations tout en prolongeant globalement le mouvement.

Diagram 1 · Use the button to switch views
Profil trapézoïdal : position, vitesse, accélération et à-coup

Schéma : Duskcoil, conceptuel. Dans un trapèze idéal, les discontinuités d'accélération rendent l'à-coup impulsionnel ; il ne s'agit pas d'une réponse mesurée de la machine.

Polynômes quintiques et à-coup minimal

Soit

p(t)=a_0+a_1t+a_2t^2+a_3t^3+a_4t^4+a_5t^5

Six conditions aux points d'arrivée — position, vitesse, accélération à l'instant initial et T — déterminent ses six coefficients. En abrégé, il s'agit de p(0),\dot p(0),\ddot p(0),p(T),\dot p(T),\ddot p(T) et, pour un déplacement d'arrêt à arrêt, de p(0)=0,p(T)=D,\dot p(0)=\dot p(T)=\ddot p(0)=\ddot p(T)=0. Pour un déplacement d'arrêt à arrêt sur la distance sélectionnée, avec \tau=t/T,

p(t)=D(10\tau^3-15\tau^4+6\tau^5)

Résolution du jerk minimal

\min_p\int_0^T\left(\frac{d^3p}{dt^3}\right)^2dt

sous réserve de la position, de la vitesse et de l'accélération du point final. La condition d'Euler-Lagrange annule la dérivée sixième, ce qui donne une quintique. Un raccourcissement de T augmente rapidement la vitesse, l'accélération et le jerk requis ; le choix de la durée est donc aussi important que le choix des points finaux.

Diagram 2 · Use the button to switch views
Comparaison entre le profil à jerk minimal et le profil trapézoïdal

Diagramme : Duskcoil. La comparaison porte sur la régularité du point d'arrivée, et non sur une mesure universelle du temps, de l'énergie ou de la sécurité.

Implémentation et connexion à ROS 2

Pour une articulation, définissez le mouvement de q_0 à q_f, échantillonnez q_d,\dot q_d,\ddot q_d à partir d'une fonction quintique et fournissez ces valeurs à une boucle position/vitesse/effort ; la vitesse et l'accélération peuvent prendre en charge la prédiction. L'interpolation par articulation seule peut amener l'effecteur terminal près d'un obstacle ; vérifiez donc également la trajectoire cartésienne, la cinématique inverse, l'amplitude articulaire et les risques d'autocollision.

Pour un robot mobile, lissez une trajectoire à l'aide de l'algorithme A* ou RRT, appliquez des limites de vitesse dépendantes de la courbure, choisissez une loi de temps de type trapèze/S/à secousse minimale et convertissez la vitesse générée v(t) en vitesses de roue ou en direction et accélération. Si une personne apparaît dans une carte de coûts locale, préserver la fluidité de l'arrivée précédente est moins important que de ralentir, de s'arrêter ou de replanifier. La planification de trajectoire globale ne garantit pas la sécurité locale.

Dans ROS 2, il convient de distinguer les horodatages de chemin, de trajectoire et de commande. Il faut définir le comportement en cas de sauts d'horloge, de messages de trajectoire retardés, d'annulation, de remplacement et de périodes de contrôle manquées ; les trajectoires obsolètes sont rejetées et une discontinuité de vitesse lors du remplacement est évitée. Le cycle de vie et les limites matérielles de ROS 2, décrits dans ROS 2 Primer, aident à répartir ces responsabilités, mais ne garantissent pas la sécurité temps réel ni la sécurité fonctionnelle.

Limites, sécurité et contrôles

Les limites incluent |v|\le v_{max}, |a|\le a_{max} et |j|\le j_{max}, mais aussi l'amplitude articulaire, le couple/courant/capacité thermique, le frottement des pneus, la vitesse de direction, la charge utile, la perception, la latence de communication et la distance d'arrêt. Une estimation simple (d_{stop}\simeq v^2/(2a_{brake})+v t_{latency}) montre que la distance de freinage augmente quadratiquement avec la vitesse tant que le délai de détection et de calcul persiste. Un générateur doit pouvoir abandonner une trajectoire lorsque l'erreur de suivi, l'incertitude de pose, la saturation, la détection d'obstacles ou une carte obsolète dépassent un seuil prédéfini.

Problème Cause probable Surveillance Exemple de réponse
Erreur dans les virages Inadéquation vitesse/courbure Erreur latérale, saturation de la direction Trajet lent et lisse, courbure maximale
Oscillation de la charge utile À-coups importants/mode flexible IMU, accélération, vibrations Courbe en S, temps plus long, éviter la résonance
Saut lors d'un changement d'objectif Vitesse limite discontinue (v,a,j), courant Raccordement sans à-coups et réinterpolation
Impossible de s'arrêter Délai/freinage/erreur de carte Fraîcheur, distance d'arrêt Limitation de vitesse et arrêt en toute sécurité
Articulation à la limite Inadéquation IK/loi temporelle Position, vitesse, couple Replanification, rejet de l'objectif, ralentissement

Liste de vérification de l'implémentation

  1. Définir la trajectoire, les repères, l'heure cible et la période de contrôle.

  2. Configurer v,a,j à partir des mesures de l'actionneur, de la charge utile et des limites d'arrêt.

  3. Tester les conditions limites de commutation triangulaire/trapézoïdale et de remplacement de l'objectif.

  4. Vérifier les dérivées maximales lors de la réduction de la durée quintique.

  5. Supprimer les anciennes trajectoires en cas de mise à jour de la carte, de saut de localisation, d'écart de suivi, de perte de communication ou de détection d'obstacle.

  6. Vérifier l'arrêt d'urgence indépendant, les limites de couple et les limites de déplacement en cas de défaillance du logiciel de trajectoire.

Vérifiez votre compréhension
Une courbe de position lisse garantit-elle un mouvement réalisable ?

Le timing détermine la vitesse, l'accélération et la secousse.

Vérifiez leurs limites ainsi que la trajectoire géométrique. ## Références - [Flash et Hogan, 1985 : La coordination des mouvements du bras](https://doi.org/10.1523/JNEUROSCI.05-07-01688.1985) - [Documentation du contrôleur de trajectoire conjointe ROS 2](https://control.ros.org/master/doc/ros2_controllers/joint_trajectory_controller/doc/userdoc.html) - [Introduction à la planification de trajectoires](/fr/blog/posts/control-path-planning.html)

Related reading

Explore another aspect of this fieldLaboratoire MPC — résoudre à nouveau une séquence de courbure dans l'horizon et les limites de directionExplore another aspect of this fieldLaboratoire de comparaison du suivi de trajectoire : exécuter PP, APP, RPP, Stanley et MPC dans les mêmes conditions