Open Source Robotics

精選高品質的開源機器人專案、工具與軟體,推動機器人社群向前發展。

Extended Kalman Filter

  • 又稱: EKF, extended KF
  • 類別: State estimation & navigation › Localisation
  • 標籤: state-estimation, sensor-fusion, localization, navigation, filtering, SLAM

卡爾曼濾波器的非線性擴展,在每個時間步於目前估計值附近將系統模型線性化,以估計動態系統的狀態。

定義

擴展卡爾曼濾波器 (EKF) 是一種狀態估計演算法,它擴展了經典的卡爾曼濾波器,以處理非線性的系統動力學與觀測模型。標準卡爾曼濾波器能為帶有高斯雜訊的線性系統提供最佳狀態估計,但大多數真實世界的機器人系統都是非線性的:輪式里程計涉及三角函數,攝影機觀測涉及透視投影,IMU 積分則涉及旋轉的數學。EKF 的解法是使用一階泰勒展開(雅可比矩陣),在目前的狀態估計附近將非線性函數線性化,再對線性化後的系統套用標準卡爾曼濾波器方程式。

這個演算法以兩個交替的步驟運作。預測步驟使用系統的動態模型,把狀態估計及其不確定性向前推進。對移動機器人來說,這可能是利用車輪編碼器讀數與運動學模型,預測機器人新的位置與朝向。更新步驟則納入新的感測器量測來修正預測的估計,依預測與量測的相對不確定性為修正加權。雜訊較低的感測器在修正中獲得較高的權重。

EKF 維護一個狀態向量(位置、速度與朝向等量的最佳估計)與一個共變異數矩陣(代表該估計的不確定性)。隨著感測器提供更多資訊,共變異數通常會縮小,表示對估計的信心增加。當機器人經過缺乏明顯感測器特徵的區域時,共變異數會變大,反映不確定性增加。

讓 EKF 易於計算的線性化,也帶來了它的主要限制:只有在非線性程度相對於不確定性而言較輕微時,它才運作良好。如果狀態估計離真實狀態很遠,或系統高度非線性,一階近似就會失效,濾波器可能發散。對於這些情況,無跡卡爾曼濾波器(UKF)與粒子濾波器是更好的替代方案,但運算成本較高。

儘管有這些限制,EKF 憑藉其運算效率、易於實作以及數十年來經過驗證的可靠性,仍是機器人狀態估計的主力。它是大多數 GPS/INS 導航系統、視覺慣性里程計流程與機器人定位堆疊的骨幹。EKF-SLAM 變體能同時估計機器人的位姿與地標的位置,讓機器人在定位自身的同時建立地圖。

為何重要

擴展卡爾曼濾波器 (EKF) 是讓機器人知道自己在哪裡的演算法。每一台移動機器人、無人機與自駕車,都需要把帶雜訊的感測器資料融合成對自身位置、速度與朝向的一致估計。EKF 能可靠、有效率且即時地做到這一點,使它成為整個機器人學中實務上最重要的演算法之一。

主要應用

  • 移動機器人定位:融合輪式里程計、IMU 與 GPS 來估計位置
  • 無人機狀態估計:結合加速度計、陀螺儀、磁力計與氣壓計的資料
  • 視覺慣性里程計:融合攝影機與 IMU 量測來估計自身運動
  • EKF-SLAM:使用擴展卡爾曼濾波器 (EKF) 的同步定位與建圖
  • GPS/INS 導航:結合衛星定位與慣性導航,實現強健的定位
  • 電池狀態估計:追蹤電動車與機器人的電量與健康狀態

實際應用

在典型以 ROS 為基礎的移動機器人上,robot_localization 套件提供一個立即可用的 EKF 節點,把輪式里程計、IMU 資料以及選用的 GPS 融合成平順的位姿估計。工程師設定要使用哪些感測器、每個感測器觀測哪些狀態變數,其餘的就交給 EKF:在量測之間進行預測、在新資料到達時修正,並維持一致的不確定性估計。

對於自動駕駛這類要求更高的應用,EKF 會以不同的頻率融合來自光達(LiDAR)、攝影機、雷達、GPS 與 IMU 的資料:光達 10 Hz、IMU 200 Hz、GPS 1 Hz。EKF 的預測步驟以最快的感測器頻率(IMU)執行,更新步驟則在各感測器送來新資料時非同步進行。這種多頻率融合是 EKF 在實務上的強項之一。

常見誤解

  • EKF 能為非線性系統提供最佳估計:它只是近似最佳;線性化會引入可能累積的誤差
  • EKF 已經過時,被粒子濾波器取代:由於 EKF 對輕度非線性系統的效率與可靠性,它在實務上仍是使用最廣泛的濾波器
  • 必須懂所有的數學才能使用 EKF:雖然深入理解有幫助,但 robot_localization(ROS)等函式庫已提供經過充分測試的 EKF 實作
  • EKF 只能融合兩個感測器:EKF 在量測更新步驟中本來就能處理任意數量的感測器模態

誰需要了解

  • 實作定位與導航系統的移動機器人工程師
  • 從事狀態估計與飛行控制的無人機開發者
  • 融合多個感測器資料流的自駕車工程師
  • 建置建圖與定位系統的 SLAM 研究人員
  • 學習基礎估計理論的機器人學學生

相關技術

  • 卡爾曼濾波器
  • 無跡卡爾曼濾波器
  • 粒子濾波器
  • 雅可比矩陣
  • 共變異數矩陣
  • 高斯分布
  • 貝氏估計

相關專案

  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • Nav2: ROS 2 navigation stack with path planning and obstacle avoidance for mobile robots
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • GTSAM: Factor-graph optimization library powering many modern SLAM backends

影片

  • Visually Explained: Kalman Filters: Visually Explained
  • The Extended Kalman Filter (EKF): Why Taylor Expansions are Awesome: James Han

維基百科

  • 擴展卡爾曼濾波器

本網站需要 JavaScript 才能正常運作。請啟用 JavaScript 以瀏覽我們的開源機器人專案。