“什么是真的?”這就是傳感器融合應該回答的核心問題。
傳感器融合是一種將多個物理傳感器組合起來以產生準確“真實”的測量結果的技術,即使每個傳感器本身可能都不可靠。
“什么是真的?”這就是傳感器融合應該回答的核心問題。
傳感器遠不是完美的裝置,在某些條件下,甚至會發生錯誤測量結果。
那么,我們如何應對不完美的傳感器呢?
我們可以增加更多的傳感器,因為傳感器越多,盲點越小。但是為了處理由此產生的大量模糊性數據,相應的數學處理變得更加困難。而現代的傳感器融合算法的出現,就剛好解決了多個傳感器數據處理的問題。
傳感器融合算法
①、Kalman濾波器
Kalman濾波器是最為典型的。
該算法的核心是為每個傳感器設置一組“信念”因子。每一個時刻,來自上一個時刻的傳感器數據都會被用來統計以提高猜測(自加歸),同時傳感器的質量也被判斷,在預測值與傳感器實測值的比較中,會估計出一個最優值進行輸出。
這意味著,如果一個傳感器總是給出良好的、一致的值,開始告訴你一些不太可能的事情,那么傳感器的可信度等級會在幾毫秒內降低,直到它重新開始講道理。
這比簡單的平均或投票要好,因為Kalman濾波器可以處理大多數傳感器暫時失常出錯的情況,只要一個人能保持良好的理智,那么它便能讓機器人度過黑暗的時刻。
Kalman濾波器是Markov鏈和Bayesian推理的更一般概念的應用,這是一種數學系統,它們使用證據迭代地改進他們的猜測。這些工具是用來幫助科學本身檢驗思想的工具(也是我們所說的“統計意義”的基礎)。
因此,可以詩意地說,一些傳感器融合系統正在以每秒一千次的速度表達科學的本質。
Kalman濾波器已經被用于空間衛星的軌道站保持幾十年了,由于現代微控制器能夠實時運行該算法,它們在機器人學中正變得越來越流行。
②、PID過濾器
而更簡單的機器人系統具有PID過濾器。這可以被認為是原始的Kalman濾波器——所有的迭代調整都被砍掉,用三個固定值代替。
即使PID值是自動調整或手動設置的,整個“調整”過程(調整、飛行、判斷、重復)都是Kalman的外部化版本,由人執行信念傳播步驟,但其基本原則仍然存在。
③、自定義過濾
真正的過濾系統通常是混合體,使用了以上兩種濾波方式。
完整的Kalman包括對機器人有意義的“控制命令”術語,比如:“我知道我把方向盤向左轉了。指南針說我往左走,GPS認為我還是直行。我相信誰?”
而當經典的最簡單的控制回路Kalman濾波器應用在恒溫器上時,它可以通過擺弄旋鈕,等待發生什么來判斷溫度計和加熱器的質量。
單個傳感器通常無法影響真實世界,因此可以通過多個傳感器,并應用算法,進行交叉檢查以提高測量準確性。
傳感器融合的本質——權衡各個傳感器
在本文的其余部分,我們將關注物理位置,但同樣的想法也適用于任何你想測量的量。你可能會認為多個相同類型的備用傳感器是可行的,但這常常以不幸的方式結合了它們相同的弱點。
相比之下,混合系統才更強大。沒有任何一種傳感器可以讓我們百分之百信任,因為每一個都只解決了一個問題,呈現不同片段,而結合起來才能看見真相。
讓我們來看看在四旋翼機上使用的一些典型傳感器,并討論它們的優勢、弱點以及其在傳感器融合中的發揮的作用。
全球定位系統
GPS具有顯而易見的局限性。采樣誤差可能有兩米,偏差也會隨衛星漂移。
如果你想用全球定位系統來獲得精確到厘米的位置,你需要把它釘在適當的位置,并在幾天內進行測量。這明顯不是我們想要的。但事實上,在空中高速移動,即使是100Hz的GPS設備也不能進行時間平滑。
GPS也不能告訴你面對的方向,只告知你移動的方向。
另外,Z分辨率(高度)可以是經緯度的十分之一。所以,我們得給地面留出20米的余地。這意味著單靠全球定位系統并不能告訴你你離地面有多遠,只知道你離海平面有多遠。合乎邏輯的解決辦法是在起飛前讀取一個讀數,但之后我們又有一個20米誤差條。而且在飛行中,地面對GPS信號的影響是不同的,所以我們不能假設這些誤差會在長期內消除——盡管它們一開始會消除!
顯然一個GPS是不夠的。
我們不能在離地面20-40米的范圍內可靠地飛行,這至少是五層樓的高度,這對于安全邊際來說是一個很長的距離。在現實生活中,能在世界上任何一個有20米垂直誤差的地方定位自己是非常令人驚奇的…但這并不能阻止我們撞車,如果沒有差分GPS地面站,昂貴的高速接收器和一些好的拓撲圖。
聲納、激光雷達、雷達/光流
因此,如果用衛星進行三角測量并不是避開地面的最佳方法,那就讓我們試著直接“看到”它吧!
目前至少有三種現成的測距技術可以發射信號并查看反彈需要多長時間:聲納、激光雷達和雷達模塊現在都可以使用。
但是,這些傳感器有弱點:
弱點1:吸收
有些表面就是不反彈信號。窗簾和地毯吸收超聲波,深色涂料吸收激光雷達,水吸收微波。你不能逃避你看不見的東西。
弱點2:相干擾
傳感器間存在信號干擾,當你把多個相同的傳感器放在一起時會發生什么?你怎么知道你檢測到的信號就是這個傳感器的?即使是單個傳感器也必須處理來自自身的串擾,等待足夠長的時間讓回聲消失。
可以對信號進行“編碼”(基本上是加密),這樣每個信號都是唯一的,但這增加了設備的復雜性。第二個最好的解決方案是將信號計劃半隨機化,這樣就不會鎖定時間,并且一直被同步信號欺騙。
光流傳感器是一種不同的方法,它使用攝像機來觀察鏡頭中的物體是變大了(表明地面/墻壁正在快速上升),還是變小了(當障礙物消失時),還是向側面滑動。相機不會像聲納那樣互相干擾,如果你真的很聰明,你可以估計傾斜和其他3D屬性。
光流傳感器仍然存在“吸收”弱點。你需要一個很好的紋理表面讓他們看到流動,就像他們的光學鼠標不能在玻璃上工作一樣。它們正變得越來越流行,因為流計算現在已經是你可以放入FPGA或快速嵌入式計算機中的東西。
最后一個問題是幾何問題。假設物理傳感器在四邊形上飛行。如果你站在一個角度上,畢達哥拉斯說地面看起來會比實際距離更遠。傾斜得足夠大,我們根本看不到它,盡管我們離撞車只有幾厘米遠。
為了糾正這一點,我們需要知道我們的傾向。這意味著……
陀螺儀和加速度計一起被稱為“IMU”,但它們經常出現在一起的原因是它們自然地掩蓋了彼此的主要弱點。它們是經典的融合對。
但是,單獨來說,陀螺儀是最好和最干凈的傳感器數據來源,你將得到連續的位置測量。
無需太多細節,陀螺儀是由刻蝕在芯片表面的微機械音叉制成的。當芯片旋轉時,一些音叉上會有力,它們會相互改變音調。
MEMS陀螺儀幾乎不受任何運動的影響,除了旋轉。即使是劇烈的振動也不會影響它們(在規范范圍內),因為這是橫向加速度。
如果你看一個多旋翼的內部控制回路,它就是飛行控制器用來在空中保持水平的陀螺儀。一些速率模式的飛行員完全關閉加速度計,給陀螺更多的帶寬,因為陀螺儀有很多重要的線索。
如果你知道半毫秒前你在哪里,你想知道此后發生了什么變化,那么陀螺儀是快速、準確和可靠的。且他們不需要有彈性的表面或衛星。
陀螺的弱點是漂移。不管你怎么努力,它們似乎都會繞著一個隨機的軸慢慢旋轉。每次旋轉需要幾分鐘,但即使是一塊不動的磚塊也會輕輕旋轉。累積相對樣本以獲得“絕對”估計值也會將誤差條相加。上升陀螺儀誤差需要通過外部絕對參考標記定期“歸零”。
加速度計
這就是為什么加速度計是陀螺儀最好的朋友:因為它能探測到絕對的“向下”參考(至少,當它們處于地球引力狀態時)。
好吧,一般來說。從一個時刻到另一個時刻,它接收重力、線加速度、旋轉產生的離心力、振動、噪音,當然還有傳感器的缺陷。
因此,盡管高采樣率和良好的MEMS傳感器精度(通常與陀螺儀一樣好),加速度計數據仍然是噪聲最大、最不可信的數據之一。它接收到了多個必須消除歧義的“信號”。但正是對所有這些不同信號的敏感性使它變得如此通用——它能聽到一切。
加速度離我們真正想要知道的位置還有兩個積分步驟,所以我們必須總結大量的三角洲和誤差線,從測量的加速度到估計的速度,然后我們必須再做一次才能得到估計的位置。錯誤不斷累積。
這就是為什么GPS是加速計最好的朋友:因為它會定期“調零”不斷增長的位置誤差,就像加速計輕輕地調零陀螺儀的方位誤差一樣。
磁強計
好的指南針不應該被忽視。然而,與加速度計一樣,它通常被用作長期陀螺漂移的一種控制方式。知道哪個方向是向上的比知道哪個方向是磁北更有用——但是,有了這兩個,我們就可以知道我們在地球上的真正絕對方位。
它們經常與GPS接收器配對,因為它們又一次對抗了彼此最大的弱點,而在其他方面卻緊密相配。一個給出粗略的絕對位置,另一個給出粗略的絕對方向。
結語:
“傳感器融合”現在顯然只是一個過程,即獲取所有這些輸入,并將它們連接到類似Kalman濾波器的東西上。請注意,我們想知道的是“真相數據”,不是我們的任何傳感器直接測量的,“真相數據”是可以推斷出來的。
Kalman濾波器之外的邏輯階段是隱馬爾可夫模型(HMMs),我們通過說有一個稱為垂直高度的“隱藏”屬性來調用它,而我們并沒有直接觀察到它(盡管有許多測量結果間接地表明了它是什么)。在收集了足夠的證據之后,盡管樣本數據很嘈雜,我們還是可以非常確定答案的真實性。
當你把所有的傳感器數據拉到你的主微控制器里,然后在那里做數學運算,但是要非常小心時間混疊效應。如果一個傳感器的時間相對于其他傳感器偏移,那么融合結果會以奇怪的方式輸出。
想一想,如果你有一個傳感器塊,你滑過一張桌子,但在一半的時候,你將它翻轉90度。
IMU應該看到“側向滑動,旋轉90度,向上滑動”——將其整合到空間中的真實位置,你應該得到一條平坦的直線。但如果“翻轉90”陀螺儀信號延遲(或只是時間戳不好),則加速度計矢量不會在每一瞬間都正確地旋轉回工作臺的平面上,當運動“泄漏”到錯誤的軸上時,會有一些垂直漂移。不是因為傳感器的任何誤差,而是純粹因為處理順序。
這就是為什么有些廠商做IMU要做全產線。陀螺儀和加速度計和外部磁強計都自己做,以保證時間不混疊。融合后,IMU向微控制器報告一個理想化的運動矢量,從而得到更一致的結果。當然,總有一個折衷:融合的運動更新(至少對于這個芯片來說)比原始值來得慢。
如果你認為控制過濾器過于復雜,更相信原始傳感器,那么大可不必做融合。但如果你想要的是精確(或者你只關心最終答案),那就讓芯片為你融合吧。
評論
查看更多