導入 — 為什麼需要估計
以 GPS 的晃動為例,建立區分「觀測會晃動、真值看不見、估計則是推測」這三個概念的感覺。
你在智慧型手機的地圖上明明站著不動,藍點卻在微微跳動,原因是觀測值本身就含有雜訊。卡爾曼濾波器不直接輸出觀測值,而是去估計看不見的真值。
區分真值、觀測、估計值三個概念
本課程始終把以下三者分開來想。在模擬器畫面中,會分別以不同的線顯示(真值線、觀測點、估計線)。
首先從用數字感受「觀測每次都會有一點偏差」開始。
平均可稍微抵銷雜訊
若對象是靜止的,多次觀測後取平均,外觀上的晃動就會變小。因為「雜訊剛好分布在正負兩邊會互相抵銷」。
不過只靠平均還有難以跟上移動的問題。
理解檢查 1 — 觀測誤差與平均
真值 x = 100 m,而 3 次觀測分別為 101、98、103。先逐一求出誤差 e = z − x,再取平均。
Q1. 觀測 z = 101 的誤差 e 是多少?
101 − 100 = 1。觀測每次都會有一點偏差,所以先把這個偏差當成數字來看,是一切的起點。
Q2. 觀測 z = 98 的誤差是多少?
98 − 100 = −2。負的誤差代表觀測落在真值的下方。
Q3. 觀測 z = 103 的誤差是多少?
103 − 100 = 3。每次觀測的誤差都獨立相減即可。
Q4. 3 次觀測 101, 98, 103 的簡單平均是多少?
(101 + 98 + 103) / 3 = 302 / 3 ≈ 100.67。只用簡單平均就能抵銷部分雜訊,但若對象有移動就會出現延遲。
直接使用觀測會有什麼麻煩
- UI 抖動不好看
- 異常值直接變成控制輸入
- 多個感測器的值不一致會造成混亂
- 只用平均的話跟上動作太慢
理解檢查 2 — 直接使用觀測的難處
先思考直接顯示觀測會帶來什麼麻煩,接著確認靜止對象的平均值。
Q1. 靜止裝置的觀測值回傳 10.0 → 10.2 → 9.9 → 15.0。最適合描述「直接顯示觀測值會有問題」的理由是哪一個?
正解是第 1 個。觀測值含有雜訊或飛跳值,若直接用在 UI 或控制,例如 15.0 這種異常值會原封不動顯示出來或進到控制輸入。第 2 個選項本身也是不夠好的理由,但對 UI 與控制造成直接負面影響的,是飛跳值。
Q2. 對靜止物體觀測 4 次,得到 10.1, 9.9, 10.2, 9.8。簡單平均是多少?
(10.1 + 9.9 + 10.2 + 9.8) / 4 = 40.0 / 4 = 10.0。對靜止對象而言,平均效果相當好;但對會動的對象就會出現延遲。
本章帶走的直覺
觀測會晃動,真值看不見。所以不用「觀測」而是擁有「估計」才有價值。下一章將會看到如何透過模型,把過去的估計值沿時間往前推進,也就是「預測步驟」。在觀測到來之前,僅以手邊現有的資訊推估「下一個時刻大概會是這樣」的操作。