Open Source Robotics

Una raccolta curata di progetti, strumenti e software di robotica open source di alta qualità per la comunità della robotica.

Minimum-Snap Trajectory

  • Detto anche: minimum snap trajectory, min-snap
  • Categoria: Planning & manipulation › Trajectory optimisation
  • Tag: trajectory-generation, quadrotors, aerial-robotics, motion-planning, optimization

Un percorso regolare attraverso dei waypoint ottenuto minimizzando l'integrale del quadrato dello snap, la derivata quarta della posizione; il modo standard di pianificare il volo dei quadrirotori.

Definizione

Una traiettoria a minimo snap (minimum-snap trajectory) passa per una sequenza di waypoint minimizzando l'integrale del quadrato della derivata quarta della posizione rispetto al tempo, detta snap. Ogni coordinata è di solito rappresentata come un polinomio a tratti, un segmento per ogni coppia di waypoint, con la continuità imposta sulla posizione e sulle sue derivate nei punti di raccordo. Poiché il costo è quadratico nei coefficienti dei polinomi e le condizioni di passaggio per i waypoint e di continuità sono lineari, trovare i coefficienti per durate dei segmenti fissate è un programma quadratico, e nel caso senza vincoli può essere risolto in forma chiusa.

Il metodo è strettamente legato ai quadrirotori. Mellinger e Kumar (2011) hanno mostrato che un quadrirotore è differenzialmente piatto, con la posizione e l'imbardata come uscite piatte: lo stato completo e gli ingressi possono essere calcolati da queste uscite e dalle loro derivate. Direzione e intensità della spinta derivano dall'accelerazione, le velocità angolari del corpo dal jerk, e le accelerazioni angolari, e quindi le coppie dei motori, dallo snap. Minimizzare lo snap mantiene perciò piccole e regolari le variazioni richieste nei comandi dei motori, il che rende la traiettoria più facile da inseguire. La stessa idea a un ordine inferiore dà le traiettorie a minimo jerk, usate da tempo per i movimenti dei bracci, e i percorsi a minima accelerazione.

La soluzione polinomiale copre solo una parte del problema. Le durate dei segmenti vanno scelte separatamente, spesso con un'ottimizzazione esterna o scalando il tempo finché i limiti di velocità, spinta e velocità angolare del corpo sono rispettati. La soluzione passa per i waypoint ma da sola non evita gli ostacoli tra di essi, quindi i pianificatori aggiungono waypoint intermedi dove il percorso taglia un angolo oppure vincolano ogni segmento a un corridoio convesso sicuro. Le traiettorie a minimo snap sono regolari ma non ottime nel tempo, ed è per questo che i sistemi da corsa usano anche pianificatori a tempo minimo basati sul campionamento o sull'ottimizzazione.

Perché è importante

La generazione di traiettorie a minimo snap è il modo predefinito per trasformare dei waypoint in riferimenti eseguibili in volo dai multirotori. È veloce, ben compresa e si collega in modo pulito alla dinamica del quadrirotore attraverso la piattezza differenziale, per questo compare negli autopiloti di ricerca, nelle corse di droni e nell'ispezione aerea.

Applicazioni principali

  • Volo per waypoint e manovre aggressive dei quadrirotori
  • Traiettorie di riferimento per le corse di droni
  • Percorsi per ispezione e fotografia aerea
  • Traiettorie regolari nello spazio dei giunti o cartesiane per manipolatori (varianti a minimo jerk)
  • Rifinitura della traiettoria dopo un pianificatore geometrico del percorso

In pratica

Un team di corse di droni ha una mappa delle posizioni dei gate su un tracciato. Mette un waypoint al centro di ogni gate, imposta l'imbardata in modo da puntare al gate successivo e adatta un polinomio a tratti a minimo snap in x, y e z con continuità fino allo snap a ogni gate. Un'allocazione iniziale dei tempi deriva dalle distanze e da una velocità nominale. Il team verifica poi la traiettoria rispetto ai limiti di velocità, spinta collettiva e velocità angolari del corpo, calcolati tramite la mappa di piattezza, e allunga o accorcia i tempi dei segmenti finché ogni limite è rispettato con margine. La traiettoria risultante viene campionata alla frequenza del controllore e passata a un controllore di inseguimento geometrico, e lo stesso riferimento viene usato per generare etichette per una policy di percezione appresa.

Idee sbagliate comuni

  • Il minimo snap è ottimo nel tempo — minimizza un costo di regolarità per tempi dei segmenti fissati, non il tempo di volo
  • La traiettoria evita gli ostacoli perché i waypoint sono privi di collisioni — i segmenti tra i waypoint possono comunque tagliare gli angoli se non si aggiungono vincoli di corridoio
  • I limiti degli attuatori sono gestiti automaticamente — i limiti di velocità, spinta e velocità angolare del corpo vanno verificati e imposti tramite l'allocazione dei tempi o dei vincoli
  • Il minimo snap è la stessa cosa della piattezza differenziale — la piattezza è una proprietà del modello del veicolo; il minimo snap è un costo usato per pianificare le uscite piatte

Chi dovrebbe saperlo

  • Ingegneri di robotica aerea e di autopiloti per droni
  • Ricercatori di pianificazione del movimento
  • Sviluppatori per corse di droni e ispezione
  • Studenti di controlli che studiano la generazione di traiettorie

Tecnologie correlate

  • Programmazione quadratica (Quadratic Programming)
  • Spline polinomiali a tratti (Piecewise Polynomial Splines)
  • PX4
  • Controllo geometrico di inseguimento su SE(3) (Geometric Tracking Control on SE(3))
  • Corridoi di volo sicuri (Safe Flight Corridors)

Termini correlati

  • Differential Flatness
  • Trajectory Planning
  • UAV
  • Direct Collocation
  • Kinodynamic Planning
  • Model Predictive Control

Progetti correlati

  • Drake: MIT robotics toolbox for model-based dynamics, optimization, and control system design
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends
  • OMPL: Sampling-based motion planning library powering MoveIt and countless robotics applications
  • MoveIt 2: Motion planning framework for ROS 2 robot arms, with kinematics and collision checking
  • PyRoki: Modular Python toolkit for kinematic optimization across CPU, GPU, and TPU via JAX
  • PyPose: PyTorch library for differentiable robotics with deep learning and Lie group optimization

Questo sito richiede JavaScript. Attiva JavaScript per esplorare i nostri progetti di robotica open source.