為什麼基礎卡爾曼濾波會失效
經典的 卡爾曼濾波 異常優雅,卻建立在一個嚴格假設之上:每一步都必須是直線關係。機器人從一刻到下一刻的運動方式(即它的 運動模型)以及感測器讀數依賴真實狀態的方式(即觀測模型),兩者都必須是線性的——輸入翻倍,輸出就翻倍,中間沒有任何彎曲。當這成立時,呈鐘形的 高斯 信念在每次預測和更新後仍是完美的鐘形,數學便乾淨閉合。
真實機器人很少這麼配合。輪式機器人一旦轉彎,它新的 x–y 位置就取決於其朝向角的正弦與餘弦——這是彎曲函數,而非直線。一邊前進一邊旋轉,未來的位置便沿弧線彎折。這就是非線性運動,已經打破了前述假設。
感知同樣糟糕。僅測方位的感測器——比如只報告到地標的*角度*、不報距離的相機——透過反正切將角度與位置聯繫起來。從信標測距則涉及平方根。把一團漂亮的高斯猜測雲送過這種彎曲函數,出來的雲就歪斜成香蕉形,不再是乾淨的鐘形。基礎濾波沒有誠實的辦法表示這一點,於是它便悄悄謊報了自己的置信度。
擴展卡爾曼濾波:在局部假裝它是直的
最古老的修正是 擴展卡爾曼濾波(EKF),它的訣竅很容易想像。一條曲線,只要你湊得夠近,看起來幾乎就是一條直線——也就是該點的切線。於是 EKF 取機器人當前的最佳猜測,就在那一點為彎曲的運動與感測器函數畫出切線,再用這條直線近似去跑一步普通的卡爾曼運算。下一步,新的猜測,新的切線。它每個週期都重新線性化。
在機制上,這條切線由雅可比矩陣刻畫——一個偏導數矩陣,告訴你當每個輸入微動時每個輸出如何微動,且在當前估計處求值。把這些雅可比矩陣放到線性濾波原本期待固定矩陣的位置,整個 預測—更新 迴圈便幾乎原封不動地繼續運轉。正是這種熟悉感,讓 EKF 成了 GPS 接收機、早期無人機以及無數 定位 系統的主力。
但切線只在你繪製它的那點附近才是好的替身。若函數彎曲劇烈,或你當前的猜測離真相很遠,這條直線近似就可能嚴重偏離——於是濾波會自信地朝錯誤方向邁步。誤差累積,報告的協方差越縮越小,而現實卻越走越遠,估計可能徹底發散,再也回不來。EKF 還要求你真能算出那些導數,對雜亂、不光滑的模型而言,這往往痛苦甚至不可能。
無跡卡爾曼濾波:用採樣,別求導
無跡卡爾曼濾波(UKF)源自一個犀利的洞見:逼近一個機率分布,要比逼近一個任意非線性函數容易。UKF 不把曲線壓平成切線,而是原封不動地保留真實的彎曲函數,轉而挑選一小組經過精心選取的採樣點——稱為 sigma 點——它們合在一起刻畫當前信念的均值與展布。
然後它做了顯而易見而誠實的事:把每個 sigma 點送過*真正*的非線性運動或觀測函數——不用切線,不抄近路。在另一端它得到一團變換後散布的點,再直接讀出它們新的均值與 協方差,構成下一個高斯。這稱為無跡變換;面對同等的彎曲程度,它通常遠比 EKF 的切線更忠實地跟蹤真實的均值與展布。
還有一個重要的實用好處:不需要求導。你永遠不必手算雅可比矩陣,也不必擔心模型太崎嶇而無法求導——你只需能在某個點上*運行*該函數即可。這讓 UKF 成為 EKF 順手的升級替代,通常只多付出一點點代價(用少數幾個 sigma 點取代一次線性化)。
不過 UKF 的局限與 EKF 同形:歸根結底,它仍把答案概括為單個高斯——一個只有一個峰的鐘形。如果真實信念已確實變成香蕉形,更糟的是分裂成兩團各自分離的可能性,單個鐘形便無法描述。要應對這種情形,你需要一種根本不同的表示。
粒子濾波:能呈現任意形狀的一團猜測
粒子濾波 乾脆拋棄了鐘形曲線。它不用均值和協方差來描述信念,而是把信念表示為一群成百上千個各自獨立的猜測——粒子——每一個都是關於機器人可能位置的一個完整假設。這群粒子的密度本身*就是*機率:粒子密集成團之處,機器人很可能就在那裡;稀疏之處,多半不在。由於這群粒子能呈現任意形狀,它便能刻畫香蕉形、兩團、一個圓環——真相需要什麼形狀就什麼形狀。
- 預測:讓每個粒子按運動模型向前移動,並撒入少許隨機噪聲,使這團雲適度擴散,以反映機器人實際運動方式上的不確定性。
- 加權:取最新的感測器讀數,為每個粒子打分——若某粒子所在位置本會產生與實際所見相近的讀數,就給高權重,與之相悖的就給低權重。
- 重採樣:透過把高權重粒子多次複製、淘汰低權重粒子,繁衍出新一代群體,使倖存者聚集到證據指向之處。
- 每個週期重複;隨時間推移,這團雲追逐真相,並隨讀數累積而收緊。
這套配方正是 蒙地卡羅定位——把粒子濾波用於經典問題:在已知地圖上判斷機器人身處何處。它最精彩的絕活是應對被綁架的機器人:把粒子均勻撒滿整張地圖,隨著機器人行駛並感知,與世界相悖的團塊逐漸餓死消失,正確的團塊則不斷壯大,直到這團雲坍縮到真實位置上。單個高斯必須從一開始就咬定一個猜測和一種展布,根本做不到這一點。
如何取捨:代價對靈活性
把這三者並排一比,便浮現出一條清晰的譜系,在計算代價與各自能消化多少雜亂之間權衡。EKF 最廉價、最簡單;UKF 是溫和的進階,能更優雅地應對彎曲;粒子濾波則是重量級選手,能表示任意形狀的信念——但所需算力最大。
Filter Belief shape Handles nonlinearity Cost Best when ------ ----------------- -------------------- ------- -------------------------- EKF one Gaussian tangent (linearize) low mild curve, good init guess UKF one Gaussian sample sigma points medium sharper curve, no derivs PF/MCL any-shape cloud run true function high multi-modal, kidnapped robot
實踐中,選擇隨問題而定。無人機把 IMU 與 GPS 融合時,估計始終貼近真相、每秒更新數百次,為求速度便傾向 EKF 或 UKF。地面機器人若必須從零判斷自己在地圖上的位置,或在被拎起移動後恢復定位,則倚重粒子濾波,正因為它能同時持有多個相互競爭的假設。許多真實系統甚至將它們混用——而這三者都屬於同一家族,即永遠循環著先預測後更新的遞迴 貝氏濾波,區別只在於如何描繪信念。