1. 程式人生 > >【Robot定位 學習筆記 1】GPS和IMU(慣導)在無人駕駛中的應用

【Robot定位 學習筆記 1】GPS和IMU(慣導)在無人駕駛中的應用

無人駕駛定位技術

行車定位是無人駕駛最核心的技術之一,全球定位系統(GPS)在無人駕駛定位中也擔負起相當重要的職責。然而無人車是在複雜的動態環境中行駛,尤其在大城市,GPS多路徑反射的問題會很明顯。這樣得到的GPS定位資訊很容易就有幾米的誤差。對於在有限寬度高速行駛的汽車來說,這樣的誤差很有可能導致交通事故。因此我們必須藉助其他感測器來輔助定位,增強定位的精度。另外,由於GPS的更新頻率低(10Hz),在車輛快速行駛時很難給出精準的實時定位。

慣性感測器(IMU)是檢測加速度與旋轉運動的高頻(1KHz)感測器,對慣性感測器資料進行處理後我們可以實時得出車輛的位移與轉動資訊,但慣性感測器自身也有偏差與噪音等問題影響結果。而通過使用基於卡爾曼濾波的感測器融合技術,我們可以融合GPS與慣性感測器資料,各取所長,以達到較好的定位效果。注意由於無人駕駛對可靠性和安全性要求非常高,所以基於GPS和慣性感測器的定位並非無人駕駛裡唯一的定位方式,我們還會使用LiDAR點雲與高精地圖匹配

,以及視覺里程計演算法等定位方法,讓各種定位法互相糾正以達到更精準的效果。

GPS簡介

全球定位系統(GPS)是當前行車定位不可或缺的技術,在無人駕駛定位中也擔負起相當重要的職責。GPS系統包括太空中的32顆GPS衛星,地面上1個主控站、3個數據注入站和5個監測站及作為使用者端的GPS接收機。最少只需其中3顆衛星,就能迅速確定使用者端在地球上所處的位置及海拔高度。現在民用GPS可以達到十米左右的定位精度。GPS系統使用低頻訊號,縱使天候不佳仍能保持相當的訊號穿透性。下面解析GPS的運作原理和技術缺陷。

圖片描述

圖1 GPS三邊測量法定位

三邊測量法定位

如圖1所示,GPS定位系統是利用衛星基本三角定位原理、GPS接收裝置以量測無線電訊號的傳輸時間來量測距離。由每顆衛星的所在位置,測量每顆衛星至接受器間距離,便可以算出接受器所在位置之三維空間座標值。使用者只要利用接受裝置接收到3個衛星訊號,就可以定出使用者所在之位置。在實際應用中,GPS接受裝置都是利用4個以上衛星訊號,來定位出使用者所在之位置及高度。三角定位的工作原理如下:

  • 假設我們測量到第一顆衛星的距離為18000公里,我們就可以把當前可能位置範圍限定在離第一顆衛星18000公里的地球表面。
  • 接下來,假設我們測量到第二顆衛星的距離為20000公里,那麼我們可以進一步把當前位置範圍限定在距離第一顆衛星18000公里和距離第二顆衛星20000公里的交叉區域。
  • 然後我們再對第三顆衛星進行測量,通過三顆衛星的距離交匯點定位出當前的位置。通常,GPS接收器會使用第四顆衛星的位置對前三個衛星的位置測量進行確認以達到更好的效果。

距離測量與精準時間戳

在理論上,距離測量是個簡單的過程,我們只需要用光速乘以訊號傳播時間就能得到距離資訊。但是問題是測量的傳播時間但凡有一點誤差,都會造成距離上巨大的誤差。我們日常使用的時鐘是存在著一定的誤差的,如果使用石英鐘對傳播時間進行測量,那麼基於GPS的定位會有很大誤差。為了解決這個問題,每顆衛星上都安裝了原子鐘以達到納秒級的精度。而為了使衛星定位系統使用同步時鐘,我們需要在所有接收機上也都安裝原子鐘。但原子鐘的價格在幾萬美元的區間,讓每一個GPS接收器安裝如此昂貴的東西是不現實的。為了解決這一難題,可以在每一顆衛星上仍然使用原子鐘,但在接收機上使用經常需要調校的普通石英鐘。接收機接收來自四顆或更多衛星的訊號並計算自身的誤差,就可以將自身的時鐘調整到統一時間值。

差分GPS

如上所述,衛星距離測量存在著衛星鐘與播延遲導致的誤差等問題。利用差分技術,我們可以消除或者降低這些誤差,讓GPS達到更高的精度。差分GPS的運作原理十分簡單:如果兩個GPS接收機都相當接近對方,那麼兩者的訊號將具有幾乎相同的誤差,如果能精確地計算出第一個接收機的誤差,我們就可以對第二個接收機的結果進行修正。

圖片描述

圖2 差分GPS

如何能精確地計算出第一個接收機的誤差呢?我們可以在已知精準的地點安置參考接收機基準站,如圖2所示,安裝在基準站上的GPS接收機觀測4顆衛星後便可進行三維定位,解算出基準站的測量座標。然後我們通過測量座標與已知座標對比可以計算出誤差。基準站再把誤差值傳送給方圓100公里內的差分GPS接收器,去糾正它們的測量資料。

圖片描述

圖3 Multipath問題

多路徑問題

如圖3所示,多路徑問題是指由於GPS訊號的反射與折射造成訊號傳播時間的誤差,這會導致定位的錯誤。特別在城市的環境中,空氣中有許多懸浮介質會反射與折射GPS訊號,另外訊號也會在高樓大廈的外牆發生反射與折射,這些都造成距離測量的混亂。目前高精度的軍用差分GPS,在靜態和“理想”的環境下確實可以達到釐米級的精度。這裡的“理想”環境是指大氣中沒有過多的懸浮介質,而且測量時GPS有較強的接收訊號。然而無人車是在複雜的動態環境中行駛的,尤其是在大城市中,GPS多路徑反射的問題會更加明顯。這樣得到的GPS定位資訊很容易就有幾米的誤差,很有可能會導致交通事故發生。

即使有各種問題,GPS還是一個相對精準的感測器,而且GPS的誤差不會隨著時間的推進而增加。但是GPS有一個問題是更新頻率低,大概在10Hz左右。由於無人車行駛速度快,我們需要實時精準定位以確保無人車的安全。因此我們必須藉助其他的感測器來輔助定位,增強定位的精度。

慣性感測器簡介

慣性感測器(IMU)是可以檢測加速度與旋轉運動的感測器。基礎的慣性感測器包括加速度計與角速度計。本文主要討論基於MEMS的六軸慣性感測器,主要由三個軸加速度感測器以及三個軸的陀螺儀組成。

MEMS慣性感測器分為三個級別:低精度慣性感測器作為消費電子類產品主要用在智慧手機,此類感測器售價在50美分到幾美元不等,但是測量的誤差會比較大。中級慣性感測器主要用於汽車電子穩定系統以及GPS輔助導航系統,此類感測器售價在幾百到上千美元,相對於低端慣性感測器,中級慣性感測器在控制晶片中對測量誤差有一定修正,所以測量結果更加準確。但是長時間執行後,累計的誤差也會越來越大。高精度的慣性感測器作為軍用級和宇航級產品,要求高精度、全溫區、抗衝擊等指數。主要用於通訊衛星無線、導彈導引頭、光學瞄準系統等穩定應用。此類感測器售價在幾十萬美元區間,即便經過長時間執行後,比如跨太平洋洲際導彈,仍然可以達到米級精度。

無人車使用的一般是中低階的慣性感測器。其特點是更新頻率高(1KHz),可以提供實時位置資訊。但是慣性感測器的致命缺點是它的誤差會隨著時間的推進而增加,所以我們只能在很短的時間內依賴慣性感測器進行定位。

圖片描述

圖4 加速度計

加速度計

圖4展示了MEMS加速度計,它的工作原理就是靠MEMS中可移動部分的慣性。由於中間電容板的質量很大,而且它是一種懸臂構造,當速度變化或者加速度足夠大時,它所受到的慣性力超過固定或者支撐它的力,這時候它會移動,它跟上下電容板之間的距離就會變化,上下電容就會因此變化。電容的變化跟加速度成正比。根據不同測量範圍,中間電容板懸臂構造的強度或者彈性係數可以設計得不同。還有如果要測量不同方向的加速度,這個MEMS的結構會有很大的不同。電容的變化會被另外一塊專用晶片轉化成電壓訊號,有時這個電壓訊號還會被放大。電壓訊號在數字化後經過一個數字訊號處理過程,在零點和靈敏度校正後輸出。

圖片描述

圖5 角速度計

角速度計

圖5展示了MEMS陀螺儀角速度計(MEMS gyroscope),其工作原理主要是利用角動量守恆,它是一個不停轉動的物體,轉軸指向不隨承載它的支架的旋轉而變化。與加速度計工作原理相似,陀螺儀的上層活動金屬與下層金屬形成電容。當陀螺儀轉動時,它跟下面電容板之間的距離就會變化,上下電容也會因此而變化。電容的變化跟角速度成正比,由此我們可以測量當前的角速度。

慣性感測器的問題

由於製作工藝的原因,慣性感測器測量的資料通常都會有一定誤差。第一種誤差是偏移誤差,也就是陀螺儀和加速度計即使在沒有旋轉或加速的情況下也會有非零的資料輸出。要想得到位移資料,我們需要對加速度計的輸出進行兩次積分。在兩次積分後,即使很小的偏移誤差會被放大,隨著時間推進,位移誤差會不斷積累,最終導致我們沒法再跟蹤無人車的位置。第二種誤差是比例誤差,所測量的輸出和被檢測輸入的變化之間的比率。與偏移誤差相似,在兩次積分後,隨著時間推進,其造成的位移誤差也會不斷積累。第三種誤差是背景白噪聲,如果不給予糾正,也會導致我們沒法再跟蹤無人車的位置。

為了糾正這些誤差,我們必須對慣性感測器進行校準,找出偏移誤差、比例誤差,然後使用校準引數對慣性感測器原資料進行修正。但複雜的是,慣性感測器的誤差也會隨著溫度而變化。即使我們校準得再好,隨著時間的推進,位移的誤差還是會不斷積累,所以我們很難單獨使用慣性感測器對無人車進行定位。

GPS和慣性感測器融合

如上所述,縱使有多路徑等問題,GPS是一種相對精準的定位感測器,但更新頻率低,並不能滿足實時計算的要求。而慣性感測器的定位誤差會隨著執行時間增長,但由於其是高頻感測器,在短時間內可以提供穩定的實時位置更新。所以我們只要找到一個方法能融合這兩種感測器的優點,各取所長,就可以得到比較實時與精準的定位。下面我們討論如何使用卡爾曼濾波器融合這兩種感測器資料。

卡爾曼濾波器簡介

卡爾曼濾波器可以從一組有限的、包含噪聲的物體位置的觀察序列預測出物體的位置座標及速度。它具有很強的魯棒性,即使對物體位置的觀測有誤差,根據物體歷史狀態與當前對位置的觀測,我們也可以較準確地推算出物體的位置。卡爾曼濾波器執行時主要分兩個階段:預測階段基於上個時間點的位置資訊去預測當前的位置資訊;更新階段通過當前對物體位置的觀測去糾正位置預測,從而更新物體的位置。

舉個具體例子,假設你家停電,沒有任何燈光,你想從客廳走回臥室。你十分清楚客廳與臥室的相對位置,於是你在黑暗中行走,並試圖通過計算步數來預測當前位置。走到一半時,你摸到了電視機。由於你事先知道電視機在客廳中的大致位置,你可以通過你印象中電視機的位置去更正你對當前位置的預測,然後在這個調整過的更加準確的位置估計的基礎上繼續依靠計算步數向臥室前行。依靠計算步數與觸控物體,你最終從客廳摸黑走回了臥室,這背後的道理就是卡爾曼濾波器的核心原理。

圖片描述

圖6 GPS與IMU的感測器融合定位

多感測器融合

如圖6所示,使用卡爾曼濾波器對慣性感測器與GPS資料進性融合與上面給出的例子很相似。這裡慣性感測器相當於數步數,而GPS資料相當於電視等參照物的位置。首先我們在上一次位置估算的基礎上使用慣性感測器對當前的位置進行實時預測。在得到新GPS資料前,我們只能通過積分慣性感測器的資料來預測當前位置。但慣性感測器的定位誤差會隨著執行時間增長,所以當接收到新的比較精準的GPS資料時,我們可以使用這個GPS資料對當前的位置預測進行更新。通過不斷地執行這兩個步驟,我們可以取兩者所長,對無人車進行準確實時定位。假設慣性感測器的頻率是1KHz,而GPS的頻率是10Hz,那麼每兩次GPS更新之間,我們可以使用100個慣性感測器資料點進行位置預測。

結論

本文介紹了在無人駕駛場景如何使用GPS與慣性感測器對車輛進行精準定位的原理。這個系統包含了三個部分,一個相對精準但是低頻更新的GPS,一個高頻更新但是精度隨著時間流逝而越發不穩定的慣性感測器,以及一個基於卡爾曼濾波器的數學模型去融合這兩種感測器,各取所長,以達到又快又準的定位效果。但是由於無人駕駛對可靠性和安全性要求非常高,所以除了GPS與慣性感測器外,我們通常還會使用LiDAR點雲與高精地圖匹配,以及視覺里程計演算法等定位方法,讓各種定位法互相糾正以達到更精準的效果。