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