Yaw / Pitch / Roll
- Detto anche: Euler Angles, RPY, Roll Pitch Yaw, Orientation Angles
- Categoria: Foundations & spatial maths › Frames & transforms
- Tag: orientation, rotation, fundamentals, imu, drones
Tre angoli di rotazione (imbardata, beccheggio, rollio) che descrivono l'orientamento attorno agli assi verticale, laterale e longitudinale.
Definizione
Imbardata, beccheggio e rollio sono i tre angoli di rotazione che descrivono l'orientamento di un oggetto nello spazio 3D, secondo la convenzione aeronautica/veicolare ampiamente adottata in robotica.
I tre angoli: - Rollio (rotazione attorno all'asse longitudinale/X): inclinazione a sinistra o a destra. Si pensi a un aereo che si inclina per virare, o a un robot mobile che pende di lato su un pendio. - Beccheggio (rotazione attorno all'asse laterale/Y): inclinazione in avanti o all'indietro. Un aereo che sale o scende in picchiata, il polso di un braccio robotico che si muove su e giù. - Imbardata (rotazione attorno all'asse verticale/Z): rotazione verso sinistra o verso destra. Un aereo che gira il muso, un robot mobile che ruota su sé stesso, un drone che cambia direzione.
Questi angoli sono chiamati anche angoli di Eulero nella convenzione ZYX (prima l'imbardata, poi il beccheggio, poi il rollio). Pur essendo intuitivi, gli angoli di Eulero hanno un limite ben noto chiamato gimbal lock: quando il beccheggio raggiunge 90 gradi, imbardata e rollio diventano indistinguibili, causando una singolarità matematica e la perdita di un grado di libertà.
A causa del gimbal lock, molti sistemi robotici usano internamente i quaternioni (una rappresentazione a quattro numeri) per i calcoli di orientamento, convertendoli in imbardata/beccheggio/rollio solo per la visualizzazione leggibile dalle persone. I quaternioni sono compatti, evitano il gimbal lock e si interpolano in modo fluido.
In robotica, imbardata/beccheggio/rollio si usano per descrivere: - Orientamento della IMU: le IMU forniscono direttamente rollio, beccheggio e imbardata dalla fusione di accelerometro e giroscopio. - Controllo dei droni: piloti e autopiloti comandano le velocità desiderate di rollio, beccheggio e imbardata. - Orientamento del gimbal della telecamera: stabilizzazione di pan (imbardata), tilt (beccheggio) e rollio. - Orientamento dell'end effector: l'angolo di avvicinamento di una pinza rispetto alla superficie di lavoro. - Direzione del robot mobile: l'imbardata rappresenta di solito la direzione di bussola del robot.
Perché è importante
Imbardata, beccheggio e rollio sono le tre rotazioni che descrivono come è orientato qualcosa, e sono il vocabolario con cui si parla di orientamento in quasi ogni discussione di robotica. Sono intuitivi (girare, inclinarsi, ribaltarsi), ed è proprio per questo che resistono pur essendo una cattiva rappresentazione interna. Sapere sia perché sono comodi sia perché il software li converte in quaternioni è essenziale per leggere i messaggi dei robot e per evitare un'intera classe di bug di orientamento.
Applicazioni principali
- Riportare e comandare l'assetto di droni e veicoli in termini leggibili dalle persone
- Interfacce operatore e teleoperazione, dove tre cursori intuitivi battono quattro numeri astratti
- Specifiche di montaggio di telecamere e sensori
- Logging e debug, dove gli angoli di Eulero sono molto più facili da leggere dei quaternioni
- Uscita della IMU, presentata comunemente come rollio, beccheggio e imbardata dopo la fusione
- Definizione dei waypoint, specificando la direzione che un robot deve mantenere
In pratica
Il controllore di volo di un drone riporta l'assetto come imbardata, beccheggio e rollio perché è ciò che un pilota capisce, mentre internamente mantiene un quaternione. Il motivo di questa separazione è il gimbal lock: quando il beccheggio raggiunge novanta gradi, imbardata e rollio descrivono la stessa rotazione e un grado di libertà va perso senza alcun avviso. Chiunque abbia visto un braccio simulato capovolgersi inaspettatamente mentre il polso passa per una posa verticale lo ha già osservato. L'altra trappola quotidiana è la convenzione: l'ordine in cui si applicano le tre rotazioni varia tra le librerie, quindi gli stessi tre numeri possono indicare due orientamenti diversi.
Idee sbagliate comuni
- L'ordine non conta: le rotazioni non sono commutative, e applicarle in un ordine diverso dà un orientamento diverso
- Tutte le librerie usano la stessa convenzione: l'ordine degli assi e il fatto che le rotazioni siano intrinseche o estrinseche variano, e mescolarli corrompe l'orientamento senza alcun avviso
- Il gimbal lock è un artefatto di rendering: è una vera perdita di un grado di libertà nella rappresentazione, ed è per questo che internamente si usano i quaternioni
- Gli angoli di Eulero si interpolano in modo fluido: interpolarli può far passare un robot per orientamenti intermedi non voluti
Chi dovrebbe saperlo
- Chiunque legga o scriva valori di orientamento nei messaggi dei robot
- Sviluppatori di droni e veicoli che lavorano con le stime di assetto
- Ingegneri che fanno il debug di un robot che si capovolge o ruota inaspettatamente in una determinata posa
- Studenti che studiano perché i quaternioni hanno sostituito internamente gli angoli di Eulero
- Chiunque integri due sistemi che riportano ciascuno l'orientamento a modo proprio
Tecnologie correlate
- Rappresentazione con quaternioni
- Matrice di rotazione
- Angoli di Eulero (in generale)
- Gimbal lock
- IMU e AHRS (sistema di riferimento di assetto e direzione)
- Trasformazioni e SE(3)
- SLERP (interpolazione lineare sferica)
- Rappresentazione asse-angolo
Termini correlati
Progetti correlati
- ArduPilot: World's most trusted open-source autopilot for drones, planes, rovers, and submarines
- PX4 Autopilot: Open-source flight control software for drones and other unmanned vehicles
- OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
- OpenCat: An open-source Arduino and Raspberry Pi-based quadruped robot pet framework
- QGroundControl: Cross-platform ground control station for mission planning and drone flight monitoring
- DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
Video
- Pitch, Roll & Yaw: Explained: Pilot Ems