Saya telah mencoba beberapa algoritma untuk mendapatkan pitch, roll dan yaw di bawah percepatan dan getaran linear kontinu (lebih kecil dari 0.4g, frekuensi lebih rendah dari 10HZ). Tak satu pun dari mereka memberikan hasil yang baik karena bacaan baik melayang atau dipengaruhi terlalu banyak oleh percepatan linier. Yang ingin saya capai adalah ketika akselerasi eksternal lebih kecil dari + -0.4g, kesalahan pada pitch and roll harus lebih kecil dari + -1deg.
Saya telah mencoba algoritma ini:
Algoritma Madgwick . Ketika kenaikan Beta diatur sangat tinggi, konvergensi cepat tetapi sudut lebih rentan terhadap akselerasi linier. Saya menyetelnya ke bawah dan mengurangi kesalahan di bawah percepatan linear ke + -0.5deg. Namun, jika getarannya terus-menerus, bacaan akan melayang dan butuh selamanya untuk menyatu dengan nilai yang sebenarnya. Masuk akal karena di bawah akselerasi linier, gyro lebih dipercaya dan sudut pandangnya melayang ketika gyro terintegrasi.
Algoritme Mahony . Sebaliknya dengan Madgwick, itu tidak melayang sama sekali terlepas dari nilai apa yang saya gunakan untuk Ki dan Kp. Namun, selalu dipengaruhi oleh akselerasi linier. (Kesalahan lebih besar dari + -6deg)
Filter Kalman tradisional . Banyak waktu telah dihabiskan untuk menyetel vektor R dan Q yang besar itu. Sejauh ini ia memiliki kinerja yang sama dengan Mahony.
Saya menggunakan pisau cukur IMU . Saya tahu dengan sensor murah tidak mungkin mencapai hasil yang sama seperti ini .
Ada beberapa pilihan lain seperti UKF tetapi sulit untuk dipahami atau diterapkan.
Setiap saran disambut.