狀態估計與濾波

預測與更新步驟

幾乎每一種濾波器,都靠兩步交替的「心跳」運轉,而一旦你看清這個節奏,就看懂了整台機器。第一步是預測:在任何新的感測器資料到來之前,機器人根據自己剛剛做過的事,猜出它此刻必定在哪。「我讓輪子往前滾了十分之一秒,那我對自己位置的信念,也該往前滑差不多那麼遠。」這一步用的是運動模型——機器人內心那套「指令如何變成移動」的說法。要緊的是,由於沒有哪次運動是完美的,預測總會讓機器人稍稍變得沒那麼確定:信念一邊向前滑,一邊鋪開,就像一滴落在紙上的墨點不斷洇寬。

第二步是更新,也叫校正。這時一個新鮮的測量到來,機器人就問:這個讀數和我剛才預測的,吻合得有多好?它把實際的感測器值,與它的預測所預期的值相比較,再用兩者之間的差距,把信念往真相那邊拉。一個恰好落在預期之處的測量,幾乎挪不動什麼;一個出人意料的測量,則會狠狠地拽動信念。無論哪種,更新都會讓信念變尖——它在預測時鋪開,在更新時收緊,隨著每個迴圈,一會兒變寬、一會兒變窄地呼吸著。

這種拆分之所以如此有力,是因為它乾淨俐落地分開了兩種不同的「知道」。預測,是機器人從自己的動作裡知道的;更新,是機器人從外部世界學來的。把它們當作兩個分明的步驟,機器人就能在感測器短暫失聲時——穿過隧道、鑽到沙發底下、落進攝影機的盲區——單靠預測一路滑行,再在真實測量一回來的那一刻,猛地收回到確定。

一個機器人預測「往前滾之後,我應該在 2.0 公尺處,上下差個 0.3 公尺」。接著它的雷射掃描儀測到一面牆,那個距離意味著它其實在 2.15 公尺處。更新把兩者一摻,把信念落在 2.1 公尺附近,不確定性縮到大約 0.1 公尺——預測把它放鬆,測量把它收緊。

預測把信念向前推、並使其變寬;更新把它拉向測量、並使其變尖。

一個好記的口訣:預測放鬆,更新收緊。預測總會讓不確定性變大(運動不完美);一個好的測量總會讓它變小(世界剛給了你一條線索)。一台只會預測、從不更新的濾波器,最終會漂進一片徹底的迷霧。

又稱
predict and correcttime update and measurement update预测与校正时间更新与测量更新