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:
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.
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)
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.