Yaw Spin Recovery e Gyro Overflow Detect in Betaflight

Essenziali per i racer scopriamo l'importanza di queste due funzionalità!

Betaflight come tutti i progetti Open Source è un miracolo di collaborazione. Ci permette di volare con i nostri droni con prestazioni che solo qualche anno fa erano impensabili! Il motivo è la continua evoluzione di hardware e software. Proprio quest’ultimo si trova a dover porre rimedio a situazioni prima impensabili. Scenari sempre più complessi devono essere gestiti per l’incolumità di persone e mezzi.

Yaw spin to the moon

In questa casistica rientra proprio il fenomeno chiamato yaw spin to the moon (YSTTM da qui in poi).

Ovvero la situazione limite che i nostri flight controller si trovano a dover fronteggiare nel caso di urti con il terreno o un ostacolo ed il conseguente spin sull’asse dello yaw a velocità angolari talmente elevate che i motori non riescono a controbilanciare il movimento indesiderato. La velocità in questione è di circa 4500 gradi/sec ovvero quando il drone impiega 40 millisecondi a ruotare di 180 gradi. In questo caso anche un gyro della famiglia MPU diventa completamente inutile in quanto il limite è rappresentato dalla velocità che hanno i motori di accelerare.

Se i motori non sono abbastanza rapidi, ovviamente il sistema di controllo PID risulta completamente inutile e se non disattivato potrebbe portare addirittura ad incrementare a velocità di rotazione.

L’unico asse interessato da questo fenomeno è lo yaw. Pitch e roll da soli o combinati assieme non sono in grado di mantenere valori di rotazioni così elevate per tempi considerevoli. Il controllore PID sarà in grado di recuperare l’assetto da solo. Ma se uno dalle due rotazioni si combina con una rotazione estremamente rapida dello yaw, la posizione dei motori varierà in maniera tale che il controllore non sarà più in gradi di recuperare la situazione.

Yaw Spin Recovery, cos’è

I devs di Betaflight per porre rimedio a questa casistica, che fino a qualche tempo fa era impensabile viste le velocità estremamente inferiori dei mini quad, hanno implementato lo Yaw Spin Recovery.

Una procedura di recupero attivo, ovvero tramite l’uso dei motori, che entra in azione quando viene registrato sull’asse dello yaw un’accelerazione angolare fuori dal comune. La parte importante qui è che il recupero dell’assetto è di tipo attivo (e questo lo differenzia dalla procedura di gestione del Gyro Overflow Detect, che si verifica solo su gyro della famiglia ICM).

Yaw Spin Recovery, come funziona

Il funzionamento è piuttosto semplice, subito dopo l’impatto, se il mini quad inizia a roteare all’impazzata sull’asse delle yaw e supera la soglia limite di gradi/secondo impostata in fase di configurazione lo Yaw Spin Recovery entra in azione e lo fa disattivando i PID per lo yaw e 2 motori. I due motori opposti a quelli disattivati vengono fatti girare al 100%.

In questo modo il controllore PID non interferirà con la gestione della situazione limite ed i motori contrasteranno lo spin grazie alla loro coppia rotante. Ovviamente i 2 motori attivati al 100% sono i due che generano una coppia rotante inversa allo spin generato dall’impatto. Una volta che la rotazione si sarà arrestata e sarà scesa sotto la soglia di 100 gradi/secondo, esattamente 20ms dopo, il controllore PID verrà riattivato ed il drone completerà il recupero dell’assetto compensando eventuali rotazioni sugli altri assi.

Blackbox screenshot
Presa dalla documentazione ufficiale

Yaw Spin Recovery, come attivarla

Attivare la funzionalità è piuttosto semplice, basta da CLI digitare i comandi:
set yaw_spin_recovery = ON per attivare la funzionalità
set yaw_spin_threshold = 850 la soglia che fa scattare la procedura di recupero
save salvataggio delle config

Ovviamente la soglia va opportunamente scelta in base ai propri rate. Siccome la funzionalità viene usata principalmente in gara e permette di recuperare l’assetto del drone in seguito ad un impatto con un ostacolo o il terreno, è nell’interesse del pilota calibrarne l’intervento per il più ampio numero di casistiche. È quindi bene settare la soglia al valore più basso possibile senza interferire con il normale pilotaggio.

Il valore soglia di default è di 1950 gradi/secondo ed è un valore ultra conservativo, scelto per minimizzare l’occorrere di falsi positivi. Nella realtà la configurazione ideale è un valore che si aggira attorno ai 100-200 gradi/secondo in più del valore massimo di rotazione sull’asse yaw che i nostri rate ci consentono.  Nell’esempio qui sopra riportato la soglia è ideale per rate attorno ai 700 gradi/secondo.

Yaw Spin Recovery, a cosa prestare attenzione

Ovviamente il valore di soglia è quello a cui prestare attenzione. Se infatti si scegliesse un valore di soglia inferiore al massimo valore di rotazione sull’asse yaw che i rate permettono una rotazione volontaria da parte del pilota potrebbe far scattare la procedura di recupero. Quindi PID staccati, 2 motori che girano a cannone e 2 spenti. Ovviamente a recuperare una simile situazione il drone impiegherebbe pochissimo tempo ed il tutto si tradurrebbe in sobbalzi molto accentuati ed una rotazione poco fluida.

ICM problema di overflow

Lo Yaw Spin Recovery può essere confuso con un problema specifico dei gyro della famiglia ICM. Tuttavia le due procedure di recupero sono sensibilmente differenti e possono addirittura essere usate assieme.

Gyro Overflow Detect

La famiglia di gyro ICM ha dalla sua una notevole quantità di problemi. Tuttavia l’alta frequenza di campionamento li ha resi popolari e diffusi.

La problematica a cui si va incontro è denominata come gyro overflow ed è tenuta a bada dalla funzionalità chiamata Gyro Overflow Detect. In questo caso se questi particolari gyro vengono sottoposti ad una velocità di rotazione elevata forniranno valori inversi alla FC con il risultato che il PID loop non saprà più in che direzione è la rotazione. Proverà quindi a contrastarla con il risultato di alimentarla.

Questa problematica è presente su tutti e 3 gli assi di rotazione (al contrario dello YSTTM) anche se più frequentemente si verifica sull’asse yaw.

Per rimediarvi i dev di Betaflight hanno escogitato una soluzione abbastanza grezza e criticata ma probabilmente inevitabile. Hanno deciso di spegnere completamente i PID e di attendere con i motori al minimo fino che la rotazione non sarà scesa sotto la soglia indicata in configurazione (una soglia totalmente scorrelata da quella vista fino ad ora per lo Yaw Spin Recovery).

Altra differenza rispetto allo Yaw Spin Recovery è che il Gyro Overflow Detect è attivo di default. Può comunque essere disabilitato su ciascun asse.

La soglia di default è di 1950 gradi/secondo.

Yaw Spin Recovery e Gyro Overflow Detect

Diciamo subito che è possibile usare le due funzionalità assieme.

Se all’impatto la rotazione è su più assi e le velocità su roll o pitch superano la soglia del gyro overflow detect quest’ultimo spegnerà i PID e setterà i motori al minimo. Nel momento in cui il recupero passivo avrà riportato la rotazione 100 gradi al secondo sotto la soglia entrerà in azione lo Yaw Spin Recovery. Questo è tanto necessario quanto poco efficiente se comparato con la gestione attiva che si può applicare ai gyro della famiglia MPU.

Conclusioni

Se girate in circuito probabilmente già conoscete questa funzionalità e magari già l’avete attivata. Spero quindi che questo articolo di approfondimento sia servito a chiarire i motivi che hanno reso necessaria l’adozione di queste contromisure.

Spero sia chiaro anche perché sempre più soluzioni dual gyro (come la Foxeer recensita recentemente) si stanno affacciando sul mercato e perché sempre meno produttori si affidino esclusivamente a gyro ICM, anche se sulla carta sono più performanti.

Se vi va di approfondire maggiormente vi lascio il link al wiki di Betaflight con tante guide e dettagli extra.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *