Tại sao tôi cần bộ lọc Kalman?


61

Tôi đang thiết kế một máy bay không người lái, sẽ bao gồm một số loại cảm biến:

  • Gia tốc kế 3 trục
  • Con quay hồi chuyển 3 trục
  • Từ kế 3 trục
  • cảm biến chân trời
  • GPS
  • siêu âm hướng xuống dưới.

Một người bạn của tôi nói với tôi rằng tôi sẽ cần đưa tất cả dữ liệu cảm biến này qua bộ lọc Kalman, nhưng tôi không hiểu tại sao. Tại sao tôi không thể đặt thẳng cái này vào bộ điều khiển vi mô của mình. Làm thế nào để bộ lọc Kalman giúp tôi về dữ liệu cảm biến của tôi?

Câu trả lời:


52

Bạn làm kết nối tất cả các cảm biến trực tiếp đến một vi điều khiển. Bộ lọc Kalman không phải là bộ lọc điện tử như bộ lọc LRC nằm giữa các cảm biến và vi điều khiển. Bộ lọc Kalman là một bộ lọc toán học được triển khai như một thói quen phần mềm bên trong vi điều khiển.

Các cảm biến bạn đã liệt kê cung cấp cho vi điều khiển 14 hoặc 15 số nguyên mỗi lần chúng được cập nhật.

Khi tôi bay một chiếc máy bay nhỏ, điều tôi thực sự muốn biết là vị trí và hướng của nó và nó cách mặt đất bao xa - 7 con số.

Tôi cần một cái gì đó cho tôi 7 số đó.

Lý tưởng nhất là tôi muốn ước tính mới về 7 số đó mỗi lần thông qua vòng điều khiển của mình. Các cập nhật mỗi giây một lần tôi nhận được từ GPS giá rẻ của mình không đủ nhanh. (Mọi người ở tần số nào mà vòng lặp cập nhật đầu ra-tính-cảm-tính-đầu ra của quad quad của tôi cần duy trì ổn định? Đang nói với tôi thậm chí 50 lần mỗi giây sẽ không đủ nhanh).

Bằng cách nào đó tôi sẽ phải giảm 14 hoặc 15 số nguyên mà tôi có, một số chỉ thỉnh thoảng được cập nhật, thành (ước tính) 7 số mà tôi thực sự muốn.

Như Josh đã chỉ ra, có nhiều cách đặc biệt để chuyển đổi những số nguyên đó thành dữ liệu có thể sử dụng được. Bất kỳ thói quen nào chuyển đổi 15 số thành 7 số có thể được mô tả như một "bộ lọc".

Bạn không phải sử dụng bộ lọc tối ưu. Nhưng bạn sẽ sử dụng một số loại bộ lọc - tức là, một cái gì đó chuyển đổi từ 15 số dữ liệu thô mà bạn có thành (ước tính) 7 số bạn thực sự muốn.

Trong một số điều kiện, Bộ lọc Kalman là bộ lọc "tối ưu", là cách tốt nhất để chuyển đổi dữ liệu thô đó thành 7 số tôi thực sự muốn.

Về phần bạn, bạn có thể sử dụng bộ lọc Kalman ít hơn mà người khác đã viết và gỡ lỗi, hơn là viết một số bộ lọc khác từ đầu, gỡ lỗi và tiếp tục thêm nội dung vào đó cho đến khi có thể sử dụng được - bộ lọc sẽ chắc chắn hóa ra là tối ưu phụ.


28

Câu trả lời ngắn gọn là "hãy thử mà không cần một cái." Câu trả lời tốt hơn là một ví dụ: Khi đồng hồ đo của bạn nói rằng bạn đứng 10 độ so với phương thẳng đứng, nhưng con quay hồi chuyển của bạn nói rằng bạn không quay đi từ dọc và từ kế của bạn báo cáo độ lệch 30 độ so với hướng bắc nhưng con quay hồi chuyển của bạn nói 32 độ .. Tiêu đề và độ nghiêng hiện tại là gì?

Bạn có thể sẽ đưa ra một triệu cách quảng cáo có vẻ hiệu quả trong một ví dụ, nhưng thất bại ở những cách khác. Bộ lọc Kalman (Bộ lọc Kalman mở rộng (EKF) cho nhiệm vụ này!) Sẽ cung cấp cho bạn một cách nghiêm ngặt để trả lời những câu hỏi này. Chất lượng của các câu trả lời vẫn đang được nghiên cứu - mặc dù hồ sơ theo dõi của EKF rất tốt - nhưng ít nhất mọi người sẽ đồng ý câu trả lời là gì .


1
Chính xác câu trả lời tôi đang tìm kiếm. "Điều gì sẽ xảy ra nếu tôi không sử dụng Bộ lọc Kalman". Cảm ơn!
Manav Kataria

22

Dữ liệu cảm biến là ồn ào. Nếu bạn không lọc nó, thì chiếc xe của bạn ít nhất sẽ hành động thất thường nếu nó thậm chí đủ ổn định để bay. Lọc, thông qua bộ lọc Kalman hoặc cách khác, có thể giảm tiếng ồn khi được thực hiện chính xác, cải thiện độ ổn định lần lượt.

Một bộ lọc Kalman là một bộ lọc đặc biệt mạnh mẽ. Nó lấy một mô hình của hệ thống và mô hình tiếng ồn cho cả hệ thống và cảm biến của bạn. Sau đó, nó ước tính trạng thái của chiếc xe dựa trên ước tính trạng thái được cung cấp và các điều khiển được áp dụng bất cứ lúc nào. Trạng thái ước tính này sẽ chính xác hơn những gì các cảm biến báo cáo.


8

Bạn có thể sử dụng bộ lọc hạt là tốt. Đối với phần giới thiệu cơ bản về Bộ lọc hạt, bạn có thể xem các video của Giáo sư Thrun trong Lập trình xe robot.

http://www.youtube.com/watch?v=H0G1yslM5rc

http://www.youtube.com/watch?v=QgOUu2sUDzg

Các bộ lọc hạt mạnh hơn và có xác suất thấp hơn về lỗi đóng vòng lặp, thường xảy ra trong khi thực hiện EKF.

Các video mô tả chức năng của một bộ lọc hạt.


Nói chung, câu trả lời không chứa nhiều hơn một liên kết không được ưa thích. Nếu bạn có thể viết một hoặc hai đoạn trên ý chính của video, điều đó thật tuyệt ..
Manishearth

nói cho chính mình. Tôi thấy ít đạt được bằng cách khôi phục thông tin trong một liên kết khác. Liên kết có thể chứa thông tin mà tôi không biết và ai đó không cần nhập lại để tôi biết về nó. Tôi có thể nhấp và đọc rất dễ dàng, cảm ơn bạn.
Spiked3

8

Bộ lọc Kalman là một thuật toán thường được sử dụng trong các UAV để kết hợp nhiều phép đo cảm biến với nhau để đưa ra ước tính "tối ưu" về vị trí và / hoặc hướng của UAV. Ví dụ: Bộ lọc Kalman có thể hợp nhất các phép đo gia tốc kế, con quay hồi chuyển và từ kế với ước tính vận tốc để ước tính độ ngáp, cường độ và cuộn của UAV.

Để biết thêm thông tin về các cảm biến và thuật toán được sử dụng trong ước tính trạng thái UAV, hãy thử bài viết độc lập Cơ bản về chuyến bay máy bay không người lái nhỏ .

Bài viết này cũng liên kết đến mã Matlab đi kèm thực hiện các thuật toán ước tính trạng thái UAV của Bộ lọc Kalman được mô tả.

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.