Bộ lọc Kalman mở rộng (EKF) rất giống với bộ lọc Kalman. Phương trình 2.13 và 2.19 được sử dụng trong EKF, phương trình 2.10 và 2.12 được sửa đổi để sử dụng trong EKF. Tuy nhiên, EKF thường được sử dụng hơn so với KF cơ bản trong bài toán thực tế SLAM. EKF phổ biến làdo nó có thể xử lý các mô hình quá trình phi tuyến.
Trong EKF, giả định rằng một feature, e, mô tả cách thay đổi trạng thái từ một bước thời gian đến các bước tiếp theo. f cũng được giả định là có thể được tính toán để tạo ra một ước lượng trạng thái mới. Trong khi SLAM chỉ quan tâm đến việc robot tạo ra thay đổi, không phải là toàn bộ trạng thái, bởi vì chúng ta vẫn đang giả định feature. Như vậy, ta có thể viết lại phương trình (2.10) là:
xi = f[xi-1, ui, i-1] (2.10b)
Để giải quyết vấn đề này, EKF sử dụng Jacobi của f (một xấp xỉ của trạng thái).Jacobian của f, kí hiệu Jf, là một ma trận mô tả cách trạng thái sẽ thay đổi sau
Kalman Filter trong môi trường SLAM thực tế:
Cập nhật trạng thái cho thiết bị truyền động: xi = xi-1 + Gi * ui (2.10) Cập nhật không chắc chắn cho đầu vào thiết bị truyền động: Pi = Pi-1 + Qi (2.12)
Cập nhật trạng thái cho việc đọc sensor: xi = xi-1 + Ki * vs (2.13) Cập nhật không chắc chắn cho việc đọc sensor: Pi = Pi-1 – Ki * Si * KiT(2.19)
Trong đó:
vs = xs – Hi * xi – 1 (2.14)
Ki = Pi-1 * HiT * Si-1 (2.16)
thời gian bằngi,trạng thái bắt đầu thay đổi một cách tuyến tính tại thời gian bằng i. Ví dụ, giả sử tốc độ của robot được thay đổi theo một số chức năng phức tạp f, tại thời điểm i robot được làm chậm lại với tốc độ 1 mét trên giây hoặc m / s. Chúng ta có thể mong đợi rằng tại thời điểm i + 1 tăng tốc của robot sẽ khác hơn 1 m / s, nhưng EKF sẽ giả định một sự giảm tốc liên tục cho các mục đích của việc tính toán ma trậnphương sai. Các EKF cập nhật phương trình là:
Pi = Jf * Pi-1* Jf T + Qi (2.12b)