Bézier Curve
- Detto anche: Bezier curve
- Categoria: Planning & manipulation › Trajectory optimisation
- Tag: trajectory-optimization, splines, path-planning, geometry, motion-planning
Una curva polinomiale definita da punti di controllo: parte dal primo, termina nell'ultimo ed è attratta verso quelli intermedi; molto usata per percorsi e traiettorie dei robot e per le forme dei tratti.
Definizione
Una curva di Bézier (Bézier curve) di grado n è una curva polinomiale definita da n + 1 punti di controllo P₀ … Pₙ e da un parametro t che va da 0 a 1: B(t) = Σ C(n, i) (1 − t)ⁿ⁻ⁱ tⁱ Pᵢ, dove i pesi sono i polinomi della base di Bernstein. La curva parte da P₀ e termina in Pₙ, e la sua tangente a ciascun estremo è diretta lungo il primo e l'ultimo lato del poligono di controllo; i punti di controllo interni danno forma alla curva ma in generale non giacciono su di essa. Le curve cubiche, con quattro punti di controllo, sono le più comuni. La forma è stata sviluppata nell'industria automobilistica francese negli anni Sessanta del Novecento da Pierre Bézier alla Renault e, indipendentemente, da Paul de Casteljau alla Citroën.
Diverse proprietà rendono comode le curve di Bézier in robotica. L'intera curva giace all'interno dell'inviluppo convesso dei suoi punti di controllo, quindi mantenere i punti di controllo all'interno di una regione convessa libera da ostacoli garantisce che anche la curva vi resti; questo trasforma l'evitamento delle collisioni in vincoli lineari, come nell'ottimizzazione di traiettorie su grafi di insiemi convessi. La derivata di una curva di Bézier è un'altra curva di Bézier di un grado inferiore, con punti di controllo n(Pᵢ₊₁ − Pᵢ), per cui anche i limiti di velocità e accelerazione possono essere imposti, in modo conservativo, sui punti di controllo. L'algoritmo di de Casteljau valuta e suddivide le curve in modo numericamente stabile tramite interpolazione lineare ripetuta.
Ci sono limiti da tenere presenti. Il parametro t non è né il tempo né la lunghezza d'arco, quindi una curva usata come traiettoria ha comunque bisogno di una parametrizzazione temporale, e passi uguali in t non danno distanze uguali lungo la curva. Spostare un punto di controllo cambia l'intera curva, per cui i percorsi lunghi si costruiscono di solito da più segmenti di grado basso uniti con condizioni di continuità su posizione, tangente e curvatura, oppure si rappresentano con B-spline, che danno un controllo locale. Aumentare il grado per seguire forme complesse rende le curve più difficili da modellare e meno ben comportate numericamente.
Perché è importante
Le curve di Bézier offrono una rappresentazione compatta, liscia e facile da vincolare per percorsi e traiettorie, dalle traiettorie di auto e droni ai tratti di utensili e pennelli. Le loro proprietà dell'inviluppo convesso e della derivata trasformano i limiti di sicurezza e dinamici in semplici vincoli su una manciata di punti, ed è per questo che compaiono in molti pianificatori basati sull'ottimizzazione.
Applicazioni principali
- Generazione di traiettorie lisce per droni e robot mobili
- Smussatura dei percorsi dopo una pianificazione basata su ricerca su grafo o su campionamento
- Percorsi di cambio corsia e di parcheggio per veicoli autonomi
- Tratti di utensile, pennello e penna per robot che dipingono, disegnano ed erogano
- Pianificazione del movimento con grafi di insiemi convessi
- Traiettorie del piede in fase di oscillazione per robot con gambe
In pratica
Un pianificatore per droni suddivide un percorso attraverso un magazzino in una catena di regioni convesse di spazio libero e assegna un segmento di Bézier a ciascuna regione. Impone che i punti di controllo di ogni segmento giacciano nella sua regione, collega gli ultimi punti di controllo di un segmento ai primi del successivo affinché posizione, velocità e accelerazione coincidano nei raccordi, e limita i punti di controllo delle curve derivate per rispettare i limiti di velocità e accelerazione. Poiché tutti questi vincoli sono lineari nei punti di controllo, l'intero problema è un programma convesso che si risolve rapidamente. Un passo finale mappa il parametro t di ciascun segmento sul tempo con una durata scelta; accorciare la durata aumenta tutte le velocità e le accelerazioni che il drone deve raggiungere.
Idee sbagliate comuni
- Una curva di Bézier passa per tutti i suoi punti di controllo — solo il primo e l'ultimo giacciono sulla curva; quelli interni la attraggono senza essere toccati
- Il parametro t è il tempo — t è un parametro di forma tra 0 e 1; una scalatura temporale separata fissa velocità e accelerazioni
- Un grado più alto è sempre meglio per percorsi complessi — le curve di grado elevato perdono il controllo locale; di solito sono preferibili catene di segmenti di grado basso o B-spline
- Limitare i punti di controllo dà limiti di velocità esatti — i limiti sui punti di controllo della derivata sono sufficienti ma conservativi, quindi il picco effettivo di solito resta al di sotto del limite
Chi dovrebbe saperlo
- Ingegneri di pianificazione del movimento e delle traiettorie
- Sviluppatori di veicoli autonomi e droni
- Programmatori di robot per verniciatura, saldatura ed erogazione
- Ingegneri della locomozione con gambe che progettano le traiettorie di oscillazione
Tecnologie correlate
- B-Splines
- Algoritmo di de Casteljau (de Casteljau Algorithm)
- Polinomi di Bernstein (Bernstein Polynomials)
- NURBS
- Time-Optimal Path Parameterization
- Ottimizzazione convessa (Convex Optimization)
Termini correlati
Progetti correlati
- Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
- ROS Motion Planning: One repo implementing 40+ classic and learning-based robot path planners as ROS plugins
- 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
- mink: Python inverse kinematics library built on MuJoCo supporting 20+ robot platforms
Video
- The Beauty of Bézier Curves: Freya Holmér