Làm cách nào để mô hình tiếng ồn không thể đoán trước trong Bộ lọc Kalman?


9

Lý lịch:

Tôi đang triển khai Bộ lọc Kalman đơn giản để ước tính hướng đi của robot. Robot được trang bị la bàn và con quay hồi chuyển.

Sự hiểu biết của tôi:

Tôi đang suy nghĩ về việc biểu diễn trạng thái của mình dưới dạng vectơ 2D , trong đó là hướng tiêu đề hiện tại và là tốc độ quay được báo cáo bởi con quay hồi chuyển.(x,x˙)xx˙

Câu hỏi:

  1. Nếu sự hiểu biết của tôi là chính xác, sẽ không có thuật ngữ kiểm soát, trong bộ lọc của tôi. Có đúng không Nếu tôi lấy trạng thái làm vectơ 1D thì sao? Sau đó làm tôi trở thành hạn kiểm soát ? Hai phương pháp này sẽ mang lại kết quả khác nhau?bạn(x)x˙bạn
  2. Như chúng ta đã biết, nguồn nhiễu chính đến từ la bàn khi la bàn nằm trong từ trường bị biến dạng. Ở đây, tôi cho rằng nhiễu Gaussian ít quan trọng hơn. Nhưng sự biến dạng từ tính là hoàn toàn không thể đoán trước. Làm thế nào để chúng ta mô hình hóa nó trong Bộ lọc Kalman?
  3. Trong Bộ lọc Kalman, giả định rằng "tất cả các tạp âm là màu trắng" có cần thiết không? Nói, nếu phân phối tiếng ồn của tôi thực sự là phân phối Laplacian, tôi vẫn có thể sử dụng Bộ lọc Kalman chứ? Hoặc tôi phải chuyển sang bộ lọc khác, như Bộ lọc Kalman mở rộng?

Câu trả lời:


6
  1. Tôi sẽ mô hình hóa nó như là một hệ thống một trạng thái (x), với con quay hồi chuyển làm đầu vào điều khiển. Tiếng ồn con quay trở thành tiếng ồn đầu vào trạng thái, tiếng ồn la bàn trở thành tiếng ồn đo. Vì vậy, mô hình hệ thống của bạn trở nên ˙y = x nơi y là ước tính của bộ lọc định hướng, mà bạn so sánh với hướng la bàn để get update Kalman của bạn.
    θ˙^= =ωgyro+w
    y^= =x^
    y^
  2. Sự biến dạng từ tính sẽ trở nên khó khăn, bởi vì nếu bạn ngồi ở bất kỳ nơi nào, nó sẽ xuất hiện dưới dạng một khoảng thời gian bù không đổi - bộ lọc Kalman sẽ không giải quyết tốt điều này. Tôi khá chắc chắn rằng bạn sẽ cần phải lập bản đồ biến dạng, có được một số tham chiếu hướng tuyệt đối thứ hai hoặc chỉ chấp nhận biến dạng.
  3. Bạn đang nhầm lẫn nội dung quang phổ với phân phối xác suất. Nếu tiếng ồn là màu trắng, thì mỗi mẫu hoàn toàn độc lập với bất kỳ mẫu nào khác. Nếu tiếng ồn là Laplacian, mỗi mẫu tuân theo phân phối Laplace. Bộ lọc Kalman không thích nhiễu màu (nhưng bạn có thể xử lý bằng cách thêm trạng thái). Bộ lọc Kalman chỉ là bộ lọc tối ưu tổng thể khi nhiễu là phân phối Gaussian và hàm chi phí là tổng bình phương. Đối với bất kỳ hàm tiếng ồn và chi phí nào khác, bộ lọc tối ưu có thể là phi tuyến. Nhưng đối với bất kỳ hàm trung bình bằng không, nhiễu trắng và tổng chi phí bình phương, bộ lọc Kalman là bộ lọc tuyến tính tốt nhất được tìm thấy.

(Lưu ý rằng mô hình hệ thống tôi đã kết thúc với bộ lọc Kalman tầm thường - bạn có thể tốt hơn, nếu bạn không thể tìm thấy một số phương tiện khác để ước tính độ lệch la bàn, sử dụng bộ lọc miễn phí để kết hợp hai đầu vào cảm biến này. tất cả các tính toán của Kalman cuối cùng cũng sẽ ho ra một bộ lọc miễn phí, và rất có thể bạn sẽ có đủ dự đoán cho các hằng số của mình mà bạn cũng có thể đoán tại điểm giao nhau trong bộ lọc miễn phí và được thực hiện với nó).

(Lưu ý rằng, nếu bạn có một số tham chiếu vị trí tuyệt đối và một số phương tiện ước tính tốc độ và một phương tiện luôn đi theo hướng bạn chỉ ra, bạn có thể sử dụng bộ lọc Kalman mở rộng rất có lợi để điều chỉnh độ méo la bàn bằng cách sử dụng hướng nó thực sự di chuyển để sửa cho hướng la bàn).

Ước tính trạng thái tối ưu của Dan Simon, Wiley 2006, - theo tôi - là một cách xử lý rất phong phú và rõ ràng về chủ đề lọc Kalman và các anh em tinh vi hơn của nó (H-infinite, Kalman mở rộng, Kalman không tập trung, và thậm chí một chút trên Baysian và lọc hạt). Nó sẽ không cho bạn biết cách áp dụng điều đó cho các vấn đề điều hướng như thế này, nhưng đâu sẽ là niềm vui trong cuộc sống nếu tất cả các vấn đề được giải quyết?. Nếu bạn không thể theo dõi toán học trong cuốn sách của Simon, thì có lẽ bạn nên tự hỏi mình liệu bạn có thể áp dụng bộ lọc Kalman theo bất kỳ cách thông minh nào không.


+1 Đối với bộ lọc bổ sung cho ứng dụng này có vẻ phù hợp hơn. Ngoài ra cuốn sách Dan Simon rất hay. Bài viết này là một giới thiệu tốt về bộ lọc Kalman (của cùng tác giả) masys.url.tw/AU/2013SP/OpenCV/0513/kalman-dan-simon.pdf
ddevaz

@ddevaz Vâng, tôi thực sự đang triển khai một bộ lọc bổ sung. Nhưng vấn đề là nó không mang lại kết quả rất tốt. Vì vậy, tôi đang suy nghĩ về việc chuyển sang một bộ lọc "tinh vi hơn" khác ...
Đánh bạc Sibbs

Tôi hiểu rồi. Tôi đã chỉnh sửa câu trả lời của mình để bao gồm một số tài liệu tham khảo về triển khai bộ lọc Kalman với con quay, gia tốc kế và từ kế.
ddevaz

3
  1. Sẽ không có điều khoản đầu vào kiểm soát. Bạn nên lấy (x, xdot) làm vectơ trạng thái của mình để xây dựng bộ lọc Kalman đúng cách.

  2. Các nguồn tiếng ồn chính là la bàn và con quay hồi chuyển . Tiếng ồn con quay và trôi là đáng kể. Việc khắc phục biến dạng từ tính nói chung là khá khó khăn nhưng có các kỹ thuật bù .

  3. Giả định về nhiễu phân phối chuẩn đa biến trung bình bằng 0 là cần thiết tuy nhiên nhiễu trắng chỉ là trường hợp đặc biệt của trường hợp này. Đối với bộ lọc Kalman mở rộng, giả định này vẫn cần phải đúng. Bạn có thể xem xét các loại bộ lọc khác ( bộ lọc hạt , bộ lọc Kalman không tập trung ).

Giấy thiết kế / thực hiện bộ lọc Kalman:

Triển khai thuật toán kết hợp cảm biến để phát hiện định hướng 3D với cảm biến quán tính / từ tính


Vì vậy, tôi không thể rời khỏi KF để ​​xử lý sự biến dạng từ tính không thể đoán trước phải không? Tôi nên loại bỏ các giá trị bị biến dạng trước và sau đó rời khỏi KF để ​​xử lý nhiễu cảm biến. Đúng?
Đánh bạc Sibbs

Đúng. Bộ lọc Kalman sẽ không thể bù chính xác cho sự biến dạng từ tính vì những thay đổi có thể rất lớn. Tôi sẽ thử và thực hiện một số bù từ trước sau đó thực hiện bộ lọc Kalman.
ddevaz
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.