Tôi đã thử một số thuật toán để có được cao độ, cuộn và ngáp dưới các gia tốc và rung động tuyến tính liên tục (nhỏ hơn 0,4g, tần số thấp hơn 10HZ). Không ai trong số họ cho kết quả tốt vì các bài đọc hoặc bị trôi hoặc bị ảnh hưởng quá nhiều bởi gia tốc tuyến tính. Những gì tôi muốn đạt được là khi gia tốc bên ngoài nhỏ hơn + -0,4g, sai số trên cao độ và cuộn phải nhỏ hơn + -1deg.
Tôi đã thử các thuật toán sau:
Thuật toán của Madgwick . Khi mức tăng Beta được đặt rất cao, tốc độ hội tụ nhanh nhưng các góc dễ bị gia tốc tuyến tính hơn. Tôi điều chỉnh nó xuống và giảm lỗi theo gia tốc tuyến tính xuống + -0,5deg. Tuy nhiên, nếu rung động liên tục, các bài đọc sẽ trôi và phải mất mãi mãi để hội tụ đến các giá trị thực. Điều này có ý nghĩa bởi vì theo gia tốc tuyến tính, con quay hồi chuyển được tin cậy nhiều hơn và các góc được tính toán trôi đi khi tích hợp con quay hồi chuyển.
Algoritm của Mahony . Trái lại với Madgwick, nó hoàn toàn không trôi dù tôi sử dụng giá trị nào cho Ki và Kp. Tuy nhiên, nó luôn bị ảnh hưởng bởi gia tốc tuyến tính. (Lỗi lớn hơn + -6deg)
Bộ lọc Kalman truyền thống . Đã dành rất nhiều thời gian để điều chỉnh các vectơ R và Q khổng lồ đó. Cho đến nay nó có hiệu suất tương tự như của Mahony.
Tôi đang sử dụng IMU dao cạo . Tôi biết với các cảm biến giá rẻ, không thể đạt được kết quả tương tự như cảm biến này .
Có nhiều lựa chọn hơn như UKF nhưng thật khó để hiểu hoặc thực hiện.
Bất kỳ đề nghị được hoan nghênh.