Contents — find the section you need

Un percorso è geometrico; una traiettoria specifica quando quel percorso viene percorso e con quale velocità, accelerazione e jerk. L'asse centrale di una corsia non indica a un carrello carico, a un braccio robotico flessibile o a un manipolatore collaborativo con quale velocità può girare o fermarsi. Una polilinea priva di collisioni generata da un pianificatore può comunque richiedere una sterzata impossibile, saturare un giunto, generare vibrazioni o disperdere il carico. La generazione di traiettorie traduce la fattibilità geometrica in un'eseguibilità che tenga conto del tempo e della dinamica.

Questa introduzione confronta i profili di velocità trapezoidali/triangolari, i polinomi di quinto grado e il jerk minimo. Tratta inoltre i limiti, la sicurezza, l'implementazione e il confine con ROS 2 e la pianificazione dei percorsi. Vedi Guida alla pianificazione del percorso, Guida a ROS 2 e Guida a Visual SLAM.

Conclusione pratica

  • I profili trapezoidali rendono evidenti velocità e accelerazione massime. I movimenti brevi diventano profili triangolari senza segmento di crociera. I loro passi di accelerazione ideali implicano uno jerk infinito, che può eccitare meccanismi flessibili e carichi utili.

  • Un polinomio di quinto grado soddisfa le condizioni al contorno di posizione, velocità e accelerazione a entrambe le estremità. I punti finali con velocità e accelerazione nulle rendono la posizione, attraverso l'accelerazione, continua tra i segmenti.

Il jerk minimo minimizza \int j(t)^2dt in base alle condizioni del punto finale specificate; con durata fissa produce un polinomio di quinto grado. Il termine "minimo" si applica all'obiettivo selezionato, non automaticamente all'energia, al rischio di collisione o alla sicurezza.

  • Monitorare contemporaneamente posizione, velocità, accelerazione, jerk, limiti, corrente, distanza di arresto, errore di tracciamento e aggiornamento della mappa. Un generatore di traiettorie non è un sistema di arresto di emergenza o di sicurezza anticollisione.

Parametrizzazione temporale di un percorso

Per un percorso spaziale p(s) e un avanzamento s\in[0,1] nel tempo t, la traiettoria è p(s(t)). Qui \dot s è la velocità di avanzamento:

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

Un'elevata curvatura aumenta l'accelerazione laterale. Un robot mobile obbedisce approssimativamente a a_{lat}=v^2\kappa, dove \kappa è la curvatura, quindi un limite laterale a_{lat,max} dà v\le\sqrt{a_{lat,max}/|\kappa|}. Aumentare la velocità senza smussare una curva richiede a un tracker una sterzata impossibile. Per un braccio robotico, anche una traiettoria dell'effettore finale fluida può generare un'elevata velocità articolare in prossimità di una singolarità cinematica; è necessario verificare congiuntamente i vincoli relativi a mano, veicolo, articolazione e attuatore.

Velocità trapezoidale e triangolare

Per una distanza D, una velocità massima v_{max} e un'accelerazione a_{max}, il tempo di accelerazione è t_a=v_{max}/a_{max} e la distanza percorsa solo in accelerazione/decelerazione è D_{tri}=v_{max}^2/a_{max}. Il limite di accelerazione è a_{max}. Se D\ge D_{tri}, il tempo di crociera è

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

Se D<D_{tri}, la crociera scompare e la velocità massima è v_p=\sqrt{Da_{max}}. Questo profilo è trasparente e facile da implementare in azionamenti semplici. Le sue variazioni istantanee di accelerazione non sono fisiche: un profilo a curva a S limita lo strappo j_{max} aumentando gradualmente l'accelerazione, riducendo urti e vibrazioni e, in generale, estendendo il movimento.

Diagram 1 · Use the button to switch views
Profilo trapezoidale: posizione, velocità, accelerazione e jerk

Diagramma: Duskcoil, concettuale. In un trapezio ideale, le discontinuità di accelerazione rendono il jerk simile a un impulso; questa non è una risposta misurata dalla macchina.

Polinomi di quinto grado e jerk minimo

Sia

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

Sei condizioni al punto finale — posizione, velocità, accelerazione al tempo iniziale e T — determinano i suoi sei coefficienti. In forma abbreviata questi sono p(0),\dot p(0),\ddot p(0),p(T),\dot p(T),\ddot p(T) e, per un movimento da fermo a fermo, p(0)=0,p(T)=D,\dot p(0)=\dot p(T)=\ddot p(0)=\ddot p(T)=0 . Per un movimento da fermo a fermo lungo la distanza selezionata, con \tau=t/T ,

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

Il problema del jerk minimo risolve

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

in funzione della posizione del punto finale, della velocità e dell'accelerazione. La condizione di Eulero-Lagrange annulla la derivata sesta, generando un'equazione di quinto grado. Accorciando T, la velocità, l'accelerazione e il jerk richiesti aumentano rapidamente, quindi la scelta della durata è altrettanto importante quanto la scelta della posizione del punto finale.

Diagram 2 · Use the button to switch views
Confronto tra jerk minimo e profilo trapezoidale

Diagramma: Duskcoil. Il confronto riguarda la fluidità del punto finale, non un'affermazione misurata universale su tempo, energia o sicurezza.

Implementazione e connessione ROS 2

Per un giunto, definire il movimento da q_0 a q_f, campionare q_d,\dot q_d,\ddot q_d da una distribuzione quintica e fornirli a un ciclo posizione/velocità/sforzo; velocità e accelerazione possono supportare il feedforward. La sola interpolazione per giunto potrebbe spostare l'effettore finale vicino a un ostacolo, quindi verificare anche la traiettoria cartesiana, la cinematica inversa, il range del giunto e l'autocollisione.

Per un robot mobile, levigare un percorso da A* o RRT, applicare limiti di velocità dipendenti dalla curvatura, scegliere una legge temporale trapezoidale/a S/a minimo jerk e convertire la velocità generata v(t) in velocità delle ruote o sterzata e accelerazione. Se una persona compare in una mappa dei costi locale, preservare il precedente percorso di arrivo regolare è meno importante che rallentare, fermare o ripianificare. La pianificazione globale del percorso non equivale alla sicurezza locale.

In ROS 2, è necessario distinguere i timestamp di percorso, traiettoria e comando di controllo. Definire il comportamento per i salti di clock, i messaggi di traiettoria ritardati, la cancellazione, la sostituzione e i periodi di controllo mancati; rifiutare le traiettorie obsolete ed evitare una discontinuità di velocità in caso di sostituzione. Il ciclo di vita di ROS 2 e i limiti hardware descritti in ROS 2 Primer aiutano ad assegnare queste responsabilità, ma non certificano la sicurezza in tempo reale o funzionale.

Limiti, sicurezza e controlli

I limiti includono |v|\le v_{max}, |a|\le a_{max} e |j|\le j_{max}, ma anche l'escursione delle articolazioni, la capacità di coppia/corrente/termica, l'attrito degli pneumatici, la velocità di sterzata, il carico utile, la percezione, la latenza di comunicazione e lo spazio di arresto. Una semplice stima d_{stop}\simeq v^2/(2a_{brake})+v t_{latency} mostra che lo spazio di frenata cresce quadraticamente con la velocità, mentre il ritardo di rilevamento e di elaborazione rimane invariato. Un generatore deve essere autorizzato ad abbandonare una traiettoria quando l'errore di tracciamento, l'incertezza di posizione, la saturazione, il rilevamento di ostacoli o la mappa obsoleta superano un determinato limite.

Problema Causa probabile Monitor Esempio di risposta
Errore in curva discrepanza velocità/curvatura errore laterale, saturazione dello sterzo percorso lento e liscio, curvatura del tetto
Oscillazione del carico utile jerk elevato/modalità flessibile IMU, accelerazione, vibrazione Curva a S, tempo più lungo, evitare la risonanza
Salto al cambio di obiettivo velocità di confine discontinua v,a,j , corrente giunzione senza scosse e reinterpolazione
Impossibile arrestarsi ritardo/frenata/errore di mappa freschezza, distanza di arresto limite di velocità e arresto sicuro
Giunto al limite discrepanza IK/legge del tempo posizione, velocità, coppia ripianifica, rifiuta obiettivo, rallenta

Lista di controllo per l'implementazione

  1. Definire percorso rispetto alla traiettoria, fotogrammi, tempo target e periodo di controllo.

  2. Impostare v,a,j in base ai limiti misurati dell'attuatore, del carico utile e dell'arresto.

  3. Testare la commutazione triangolare/trapezoidale e le condizioni al contorno di sostituzione dell'obiettivo.

  4. Verificare le derivate massime quando si riduce la durata quintica.

  5. Scartare le vecchie traiettorie in caso di aggiornamento della mappa, salto di localizzazione, deviazione di tracciamento, perdita di comunicazione o rilevamento di ostacoli.

  6. Verificare l'arresto di emergenza indipendente, i limiti di coppia e i limiti di corsa in caso di errore del software di traiettoria.

Verifica la tua comprensione
Una curva di posizione regolare garantisce un movimento fattibile?

La temporizzazione determina velocità, accelerazione e jerk. Verificare i loro limiti, nonché la traiettoria geometrica.

Riferimenti

Related reading

Explore another aspect of this fieldLab MPC — ririsolvi una sequenza di curvatura entro un orizzonte e vincoli di sterzataExplore another aspect of this fieldLab di confronto tra inseguitori di percorso — esegui PP, APP, RPP, Stanley e MPC nelle stesse condizioni