Thuật toán AHRS dưới gia tốc tuyến tính liên tục


9

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:

  1. 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.

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

  3. 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.


Bạn đang tích hợp cho Kalman như thế nào?
C. Towne Springer

Sử dụng tích hợp Euler nhưng các phép quay hoàn toàn là một trục để tránh DCM. @ C.TowneSpringer
Timtianyang

Đó có phải là để làm việc tốt? Lần trước tôi đã làm điều này (ALCM) Euler là không phù hợp. Euler là một phương pháp đặt hàng đầu tiên với lỗi cục bộ tỷ lệ với bình phương của kích thước bước và tổng lỗi tỷ lệ với kích thước bước. Chúng tôi đã sử dụng Runge-Kutta bậc 4 với bộ lọc Kalman. Tôi nghĩ Newton-Feynman hoặc Euler để có được dự đoán ban đầu để bắt đầu Runge-Kutta. Bạn có xử lý để xử lý với tốc độ cập nhật tốt?
C. Towne Springer

Cảm ơn vì đã góp ý. Lỗi cục bộ của phương thức tích hợp euler đã bị bỏ qua. Chúng tôi dự định thực hiện việc lọc trong bài, vì vậy chúng tôi không có một ràng buộc lớn nào về độ phức tạp tính toán. @ C.TowneSpringer
Timtianyang

Câu trả lời:


3

Đầu tiên, hãy chắc chắn rằng bạn hiểu hai điểm chính ở đây:

  1. Xác định thái độ từ dữ liệu IMU đơn thuần là mơ hồ khi có sự tăng tốc tuyến tính . Nếu không có kiến ​​thức bổ sung về bản chất của gia tốc, sẽ luôn có giới hạn trên cho độ chính xác bạn có thể đạt được.

  2. Độ chính xác bị giới hạn bởi độ trôi trong các phép đo con quay tích hợp . Với dữ liệu con quay hoàn hảo và tích hợp, dữ liệu gia tốc hoàn toàn không cần thiết. Càng gần với sự hoàn hảo, bạn càng có thể bỏ qua các gia tốc.

Việc lựa chọn thuật toán định hướng phần lớn không liên quan ở đây. Tất cả đều hoạt động theo cùng một nguyên tắc: sử dụng hướng gia tốc trọng trường để trôi chính xác dữ liệu con quay tích hợp, với một số lượng trọng số khác nhau giữa hai. Nếu bạn đã thử điều chỉnh các tham số và không đạt được kết quả bạn muốn, bạn không thể làm tốt hơn với một thuật toán khác.

Vì vậy, về cơ bản có hai điều bạn có thể làm.

  1. Cải thiện độ chính xác của tích hợp con quay hồi chuyển của bạn.
  2. Mô hình bản chất của gia tốc tuyến tính bằng cách nào đó.

Tùy chọn thứ hai khó thảo luận vì nó phụ thuộc vào chi tiết của chuyển động bạn đang học. Có một số thủ thuật đơn giản như loại bỏ hoặc tăng tốc giảm trọng lượng bên ngoài một số phạm vi nhất định. Về cơ bản, những điều này được đưa ra để mô hình hóa các gia tốc tuyến tính chỉ là sự xuất hiện ngắn gọn. Nếu hệ thống của bạn hoạt động liên tục, họ sẽ không giúp được gì nhiều.

Tuy nhiên, có một số điều bạn có thể làm để cải thiện tích hợp con quay hồi chuyển của mình:

  1. Lấy ước tính tốt nhất có thể của thiên vị con quay . Hãy đọc các con quay hồi chuyển tĩnh trong vài giây ngay trước khi sử dụng và lấy trung bình các giá trị này để lấy các giá trị bù của bạn. Đừng dựa vào hiệu chuẩn trước một lần.
  2. Cố gắng giảm thiểu trôi do nhiệt độ. Để IMU ấm lên đến nhiệt độ hoạt động ổn định trước khi hiệu chuẩn / sử dụng. Cố gắng giữ nó ở nhiệt độ ổn định trong quá trình hoạt động.
  3. Cải thiện mô hình hiệu chuẩn của bạn. Xem xét bao gồm các hiệu ứng trục chéo và phi tuyến tính cũng như chỉ tỷ lệ và bù.
  4. Sử dụng một phương pháp tích hợp tốt hơn. Có một số ý kiến ​​trong các ý kiến ​​về câu hỏi của bạn đã.
  5. Xem nếu bạn có thể theo dõi trôi con quay hồi chuyển. Nếu thuật toán định hướng phải liên tục điều chỉnh độ lệch theo một hướng cụ thể, điều này có thể được phát hiện và sử dụng để điều chỉnh nhẹ nhàng các giá trị sai lệch.

Bạn đúng rằng các cảm biến bạn đang sử dụng không phải là loại cao cấp nhất hiện có. Tuy nhiên, có thể nhận được kết quả rất tốt từ các cảm biến của người tiêu dùng nếu đủ đặc tính và hiệu chuẩn.


Bất kỳ cảm biến tiêu dùng được đề nghị?
Timtianyang
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.