Algoritmo AHRS in accelerazioni lineari continue


9

Ho provato diversi algoritmi per ottenere intonazione, rollio e imbardata con accelerazioni e vibrazioni lineari continue (inferiore a 0,4 g, frequenza inferiore a 10 HZ). Nessuno di loro dà buoni risultati perché le letture vanno alla deriva o sono influenzate troppo dalle accelerazioni lineari. Quello che voglio ottenere è quando l'accelerazione esterna è inferiore a + -0,4 g, l'errore di beccheggio e rollio dovrebbe essere inferiore a + -1 gradi.

Ho provato questi algoritmi:

  1. L'algoritmo di Madgwick . Quando il guadagno Beta è impostato molto alto, la convergenza è veloce ma gli angoli sono più sensibili alle accelerazioni lineari. L'ho regolato verso il basso e ridotto l'errore con accelerazioni lineari fino a + -0,5 gradi. Tuttavia, se la vibrazione è continua, le letture andranno alla deriva e ci vorrà un'eternità per convergere in valori reali. Ha senso perché, sotto le accelerazioni lineari, il giroscopio è più affidabile e gli angoli calcolati si spostano man mano che l'integrazione del giroscopio va alla deriva.

  2. L'algoritmo di Mahony . Al contrario di Madgwick, non va affatto alla deriva indipendentemente dai valori che uso per Ki e Kp. Tuttavia, è sempre influenzato dalle accelerazioni lineari. (Errori maggiori di + -6 gradi)

  3. Filtro tradizionale Kalman . Molto tempo è stato dedicato alla messa a punto di quegli enormi vettori R e Q. Finora ha le stesse prestazioni di Mahony.

Sto usando il rasoio IMU . So che con sensori economici è impossibile ottenere lo stesso risultato di questo .

Ci sono altre due opzioni come UKF, ma è una seccatura da capire o implementare.

Ogni suggerimento è il benvenuto.


Come ti stai integrando per Kalman?
C. Towne Springer,

Utilizzando l'integrazione di Eulero ma le rotazioni sono rigorosamente un asse per evitare DCM. @ C.TowneSpringer
Timtianyang,

Dovrebbe funzionare bene? L'ultima volta che l'ho fatto (ALCM) Euler non era adatto. Euler è un metodo del primo ordine con errore locale proporzionale al quadrato della dimensione del passo ed errore lordo proporzionale alla dimensione del passo. Abbiamo usato Runge-Kutta del 4 ° ordine con un filtro Kalman. Penso che Newton-Feynman o Euler abbiano le ipotesi iniziali per iniziare Runge-Kutta. Hai l'elaborazione per gestirlo a una buona frequenza di aggiornamento?
C. Towne Springer,

Grazie per il suggerimento L'errore locale del metodo di integrazione di Eulero è stato trascurato. Abbiamo in programma di eseguire il filtraggio in post, quindi non abbiamo grossi vincoli sulla complessità di calcolo. @ C.TowneSpringer
Timtianyang,

Risposte:


3

Innanzitutto, assicurati di comprendere due punti chiave qui:

  1. La determinazione dell'atteggiamento dai soli dati IMU è intrinsecamente ambigua in presenza di accelerazione lineare . Senza ulteriori conoscenze sulla natura delle accelerazioni, ci sarà sempre un limite superiore alla precisione che è possibile ottenere.

  2. La precisione è limitata dalla deriva delle misurazioni giroscopiche integrate . Con perfetti dati giroscopici e integrazione, i dati dell'accelerometro non sarebbero affatto necessari. Più ti avvicini alla perfezione, più puoi ignorare le accelerazioni.

La selezione dell'algoritmo di orientamento è in gran parte irrilevante qui. Funzionano tutti sullo stesso principio: usare la direzione dell'accelerazione gravitazionale per correggere i dati del giroscopio integrato, con una quantità variabile di ponderazione tra i due. Se hai provato a sintonizzare i parametri e non hai raggiunto i risultati desiderati, è improbabile che tu faccia meglio con un algoritmo diverso.

Quindi, ci sono essenzialmente due cose che puoi fare.

  1. Migliora la precisione della tua integrazione giroscopica.
  2. Modella in qualche modo la natura delle accelerazioni lineari.

La seconda opzione è difficile da discutere perché dipende dai dettagli del movimento che stai studiando. Ci sono alcuni trucchi semplici come scartare o declassare le accelerazioni al di fuori di un determinato intervallo. Fondamentalmente questi si riducono a modellare le accelerazioni lineari come solo brevi occorrenze. Se il tuo sistema è in continuo movimento, non sono di grande aiuto.

Esistono diverse cose che puoi fare per migliorare la tua integrazione giroscopica:

  1. Ottieni la migliore stima possibile della distorsione giroscopica . Prendi le letture giroscopiche statiche per diversi secondi immediatamente prima dell'uso e calcola la media per ottenere i valori di offset. Non fare affidamento su una calibrazione preventiva una tantum.
  2. Cerca di ridurre al minimo la deriva dovuta alla temperatura. Lasciare che l'IMU si riscaldi a una temperatura di funzionamento stabile prima della calibrazione / dell'uso. Cerca di mantenerlo a una temperatura costante durante il funzionamento.
  3. Migliora il tuo modello di calibrazione. Prendi in considerazione l'inclusione di effetti trasversali e non linearità, nonché solo scala e offset.
  4. Utilizzare un metodo di integrazione migliore. Ci sono già alcune idee nei commenti alla tua domanda.
  5. Vedi se riesci a tracciare la deriva del giroscopio. Se l'algoritmo di orientamento deve correggere costantemente la deriva in una determinata direzione, questo può essere rilevato e utilizzato per regolare delicatamente i valori di polarizzazione.

Hai ragione sul fatto che i sensori che stai utilizzando non sono della massima qualità disponibile. Tuttavia, è possibile ottenere ottimi risultati dai sensori dei consumatori se sufficientemente ben caratterizzati e calibrati.


Qualche sensore consigliato per i consumatori?
Timtianyang,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.