Trực quan hóa và gỡ lỗi EKF


22

Tôi hiện đang gỡ lỗi và điều chỉnh EKF (Bộ lọc Kalman mở rộng). Nhiệm vụ là theo dõi tư thế robot di động cổ điển trong đó các mốc là AR đánh dấu.

Đôi khi tôi ngạc nhiên khi một số phép đo ảnh hưởng đến ước tính. Khi tôi xem xét và tính toán các con số và ma trận liên quan, tôi có thể tìm ra cách bước cập nhật được thực hiện, điều gì và tại sao chính xác xảy ra, nhưng điều này rất tẻ nhạt.

Vì vậy, tôi tự hỏi nếu có ai đang sử dụng một số kỹ thuật, mẹo hoặc hình dung thông minh để có cảm giác tốt hơn về những gì đang xảy ra trong bước cập nhật EKF?

CẬP NHẬT # 1 (sẽ cụ thể hơn và hiển thị gần đúng đầu tiên những gì tôi có trong tâm trí)

Những gì tôi đang tìm kiếm, là một cách nào đó để hình dung một bước cập nhật theo cách mang lại cho tôi cảm giác về cách mỗi thành phần của phép đo ảnh hưởng đến từng thành phần của trạng thái.

Ý tưởng đầu tiên của tôi là vẽ đồ thị cho phép đo và dự đoán đó cùng với một số vectơ được lấy từ ma trận K. Các vectơ từ K đại diện cho cách vectơ đổi mới (đo lường - dự đoán đo lường, không được vẽ) sẽ ảnh hưởng đến từng thành phần của trạng thái.

Hiện tại tôi đang làm việc với một EKF trong đó trạng thái là tư thế 2D (x, y, góc) và các phép đo cũng là tư thế 2D.

Sơ đồ bước cập nhật

Trong hình ảnh đính kèm (mở nó trong trang / tab mới để xem ở độ phân giải đầy đủ), vectơ (tỷ lệ) K (1,1: 2) (cú pháp MATLAB để lấy một hàm con từ ma trận 3x3) sẽ đưa ra ý tưởng về cách đầu tiên thành phần của trạng thái EKF sẽ thay đổi theo vectơ đổi mới hiện tại, K (2.1: 2) thành phần thứ hai của EKF sẽ thay đổi như thế nào, v.v. Trong ví dụ này, vectơ đổi mới có thành phần x tương đối lớn và nó được căn chỉnh với vectơ K (2,1: 2) - thành phần thứ hai của trạng thái (tọa độ y) sẽ thay đổi nhiều nhất.

Một vấn đề trong cốt truyện này là nó không mang lại cảm giác về thành phần thứ ba (góc) của vectơ đổi mới ảnh hưởng đến trạng thái như thế nào. Thành phần đầu tiên của trạng thái tăng một chút, trái với những gì K (1: 1: 2) chỉ ra - thành phần thứ ba của sự đổi mới gây ra điều này, nhưng hiện tại tôi không thể hình dung được điều này.

Cải tiến đầu tiên sẽ là hình dung thành phần thứ ba của sự đổi mới ảnh hưởng đến nhà nước như thế nào. Sau đó, thật tuyệt khi thêm dữ liệu hiệp phương sai để cảm nhận ma trận K được tạo như thế nào.

CẬP NHẬT # 2 Bây giờ, cốt truyện có các vectơ trong không gian trạng thái cho biết mỗi thành phần đo thay đổi vị trí như thế nào. Từ âm mưu này, tôi có thể thấy rằng thành phần thứ ba của phép đo thay đổi trạng thái nhiều nhất.

Đã thêm các vectơ tương ứng với từng thành phần đo vào không gian trạng thái


Bạn có thể thử mô phỏng EKF trên Dữ liệu Gazebo.
Naresh

Cảm ơn đã cập nhật @Ian và xin lỗi, tôi đã mất rất nhiều thời gian để thông báo. * 8 ')
Gian hàng Mark

Câu trả lời:


4

Một cách rất thông tin để hình dung hiệu ứng của các phép đo (đối với tôi) là vẽ biểu đồ trạng thái của robot (trung bình, với hình elip hiệp phương sai) trước và sau mỗi phép đo. Sau đó, lấy các thành phần riêng lẻ của phép đo (ổ đỡ, phạm vi cho các điểm đánh dấu AR) và áp dụng chúng một cách riêng biệt để cảm nhận về nó.

Để làm điều này:

một,bθ[0,2π]

r(θ)= =mộtbbcos2θ+mộttội2θ

Theo dõi hiệp phương sai của giả thuyết trước, trạng thái đo và giả thuyết sau thường là đủ để tìm xem các phương trình của EKF có được áp dụng đúng không.

Chúc may mắn và đừng cập nhật câu hỏi của bạn quá thường xuyên. Thay vào đó, hãy trở lại với những câu hỏi mới.


0

Một cái gì đó thường được thực hiện là để vẽ các biến trạng thái theo thời gian cũng như các khoảng 3-sigma của chúng. Các điểm trong đó khoảng thời gian này co lại là các bản cập nhật, nơi bạn có thể chú thích nguồn của các phép đo liên quan.

Bên cạnh các lỗi trong quá trình thực hiện cần kiểm tra (không chỉ các phương trình sai, mà cả các phương trình không ổn định về số), hiệu ứng của các cập nhật chỉ bị ảnh hưởng trực tiếp bởi sự khác biệt giữa "dự kiến" và "đo lường" và độ không đảm bảo tương ứng của chúng. Vì vậy, bạn có thể quan tâm đến việc tìm ra cách để hình dung sự cân bằng này theo sự tiến triển thời gian trong cốt truyện đầu tiên.

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.