Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation
在上一講《Coursera自動駕駛課程第14講:Linear and Nonlinear Kalman Filters》 我們學習了卡爾曼濾波相關知識,包括:線性卡爾曼濾波(KF)、擴展卡爾曼濾波(EKF)、誤差卡爾曼濾波(ES-EKF)、無損卡爾曼濾波(UKF)。
本講我們學習自動駕駛定位中常用的兩種傳感器:慣性測量單元(IMU) 和全球導航衛星系統(GNSS)。
B站視頻鏈接:
- 3D Geometry and Reference Frames (Video)
- The Inertial Measurement Unit (Video)
- Global Navigation Satellite System (Video)
1. 3D Geometry and Reference Frames
1.1 Introduction
回顧一下中學所學知識,向量是具有大小和方向的矢量。在不同的坐標系下,同一個向量可以使用不同的坐標來表示。如下圖所示的向量 rrr,在兩個坐標系 →Fa\stackrel{\mathscr{F}}{\rightarrow}_{a}→Fa? ,→Fb\stackrel{\mathscr{F}}{\rightarrow}_{b}→Fb? 下將會有兩個不同的表示 ra\mathbf{r}_ara? 和 rb\mathbf{r}_brb?。
很顯然,向量rb\mathbf{r}_brb? 可由向量 ra\mathbf{r}_ara? 經過旋轉變換而來,即可以找到一個旋轉矩陣 Cba\mathbf{C}_{ba}Cba?,滿足 :
rb=Cbara\mathbf{r}_{b}=\mathbf{C}_{b a} \mathbf{r}_{a} rb?=Cba?ra?
旋轉矩陣 Cba\mathbf{C}_{ba}Cba? 表示向量從 aaa 坐標系向 bbb 坐標系進行變換。
然而在現實世界中,兩個坐標系的原點經常不是同一個原點,這時候還需要進行平移變換處理,如下圖所示。慣性坐標系為 →Fi\stackrel{\mathscr{F}}{\rightarrow}_{i}→Fi?,車輛坐標系為 →Fv\stackrel{\mathscr{F}}{\rightarrow}_{v}→Fv?。現在我們用 ripi\mathbf{r}_{i}^{p i}ripi? 表示點 PPP 在慣性坐標系的位置,rivi\mathbf{r}_{i}^{v i}rivi? 表示車輛坐標系在慣性坐標系下的位置,Civ\mathbf{C}_{i v}Civ? 表示車輛坐標系到慣性坐標系的旋轉變換矩陣,rvpv\mathbf{r}_{v}^{p v}rvpv? 表示點 PPP 在車輛坐標系下的位置。則 ripi\mathbf{r}_{i}^{p i}ripi? 可以寫成:
ripi=rivi+Civrvpv\mathbf{r}_{i}^{p i}=\mathbf{r}_{i}^{v i}+\mathbf{C}_{i v} \mathbf{r}_{v}^{p v} ripi?=rivi?+Civ?rvpv?
1.2 Rotation Representation
旋轉變換可以有很多方式來表示。 最常見的是使用旋轉矩陣。 它通常也被稱為方向余弦矩陣。 旋轉矩陣的一個重要的性質就是 R?1=RTR^{-1}=R^{T}R?1=RT。
第二種表示方法就是使用單位四元數。 四元數本身就是一個有趣的數學主題,但在本課程中,知道單位四元數可以表示為單位長度的四維向量就足夠了,這里有兩個需要注意的東西,一是旋轉軸 u\mathbf{u}u,二是旋轉角度 ?\phi?。 為什么要使用四元數? 因為它不受奇點的影響,與旋轉矩陣相比它只需要四個參數而不是九個。
第三種表示方法就是使用歐拉角。歐拉角之所以有吸引力,原因在于它是一種直觀簡約的表示,只需要知道繞每個軸轉動的角度就可以得到最終的旋轉變換。
在自動駕駛中會選擇哪一種旋轉表示方式呢? 這要看具體情況。 每種表達方式都有優缺點。旋轉矩陣可以表示任何旋轉,但需要九個參數并有六個約束。單位四元數也可用于表示任何旋轉,但它也有一個約束。 最后,歐拉角不受約束、直觀地可視化并且僅需要三個參數,但受奇點影響。
1.3 Reference Frames
現在讓我們看一下車輛定位時將使用到的重要參考坐標系。 第一個坐標系是地心慣性坐標系或 ECIF。該坐標系的原點位于地球中心,z\mathbf{z}z 軸指向正北,x\mathbf{x}x 軸和 y\mathbf{y}y 軸相對于非常遙遠的恒星是固定的。 這意味著雖然地球繞 z\mathbf{z}z 軸旋轉,但 x\mathbf{x}x 和 y\mathbf{y}y 軸不會移動。
接下來,以地球為中心的(ECEF)與 ECIF 類似,只是它的 x\mathbf{x}x 軸與本初子午線對齊并與地球一起旋轉。y\mathbf{y}y 軸由右手定則確定。ECEF坐標系是定位中經常用到的一個坐標系,主要是與GNSS傳感器有關。
盡管ECEF和ECIF在我們討論衛星和飛機上的慣性傳感時很有用,但對于汽車應用,我們通常希望使用相對于地面固定的框架。為此,我們將使用我們所說的導航坐標系。 一個常見的導航坐標系是選擇某個位置作為起點并且坐標系與北、東和向下反向對齊的導航坐標系(NED坐標)。 最后,我們還經常需要考慮剛性連接到傳感器的傳感器坐標系,例如 LIDAR、GPS接收器或慣性測量單元。傳感器坐標系通常與車輛坐標系不同,后者可以放置在車輛上任何方便的地方,例如在質量中心。 對于定位,我們通常會忽略車輛和傳感器坐標系之間的區別,并假設如果我們可以跟蹤傳感器,我們應該能夠在適當校準的情況下跟蹤車輛上的任何點,這是我們稍后研究的主題。
2. The Inertial Measurement Unit
2.1 Introduction
慣性測量單元或IMU測量物體在慣性空間中的運動。如今,幾乎所有智能手機中都配備了IMU。它們經常用于健康跟蹤的計步,以及最近用作增強現實設備。
盡管它們在今天無處不在,但能夠準確跟蹤運動物體運動的傳感器的開發是20世紀的一項重大成就。 IMU早在GPS之前就為跨洋飛行提供了幫助,并且作為機載制導、導航和控制系統的一部分對阿波羅任務至關重要。阿波羅航天器依靠IMU來準確跟蹤飛行器在漫長的月球航行中的位置和方向。
在現代自動駕駛汽車中,IMU扮演著非常相似的角色。在來自其他傳感器的導航信息不可用或不可靠時來進行導航計算。那么什么是IMU呢?
一般來說,慣性測量單元是一個復合傳感器套件,它結合了三軸陀螺儀和三軸加速度計來跟蹤剛體的外部自由運動。一些IMU還包含磁力計或指南針,以幫助跟蹤方向。IMU有多種形狀和形式。現代智能手機中的傳感器相對便宜,批量購買時的成本通常不到幾美元。它們重量輕,需要的功率相對較小,但會產生相當嘈雜的測量結果。而更昂貴的IMU使用更復雜的組件并具有更準確的校準模型,可以消除溫度波動等的影響。
下面簡單介紹下陀螺儀。陀螺儀這個詞本身來自希臘詞。歷史上,陀螺儀是一個旋轉的圓盤,它的角動量會阻止方向的變化。在 19 世紀末和 20 世紀初,工程師們意識到這種設備可以用作海洋和航空導航的方向參考。
在現代陀螺儀中,旋轉輪通常被微機電系統取代,該系統由一個小的硅音叉組成,該系統根據施加的旋轉或方向變化來改變其共振特性。這種傳感器要便宜得多,而且體積也很小。然而,它們會產生嘈雜的測量結果并且對溫度的波動很敏感。此外,它們測量旋轉速率,而不是直接測量方向,因此必須對輸出信號進行數值積分以確定方向變化。這個過程會在最終的方向估計中引入額外的誤差。
加速度計測量沿單個軸的加速度。更便宜的基于MEMS的加速度計使用微型懸臂梁,并附有檢測質量。當傳感器加速時,光束發生偏轉。可以通過電容電路測量這種偏轉,并將其轉換為加速度值。
然而,出于導航目的,我們更關心的是相對于某個固定參考系的加速度。為了計算這個加速度,我們需要使用重力場中加速度計的基本方程。
f+g=r¨i\mathbf{f}+\mathbf{g}=\ddot{\mathbf{r}}_{i} f+g=r¨i?
2.2 IMU Measurement Models
首先介紹陀螺儀測量模型,模型方程如下:
ω(t)=ωs(t)+bgyro(t)+ngyro(t)\omega(t)=\omega_{s}(t)+\mathbf{b}_{\mathrm{gyro}}(t)+\mathbf{n}_{\mathrm{gyro}}(t) ω(t)=ωs?(t)+bgyro?(t)+ngyro?(t)
其中 ωs(t)\omega_{s}(t)ωs?(t) 是陀螺儀測量值, 測量模型中包含一個緩慢變化的偏置項 bgyro(t)\mathbf{b}_{\mathrm{gyro}}(t)bgyro?(t) 和一個白高斯加性噪聲項 ngyro(t)\mathbf{n}_{\mathrm{gyro}}(t)ngyro?(t) 來模擬傳感器誤差。盡管陀螺儀確實測量地球的自轉,但對于我們只關心短時間運動的應用,忽略這一點通常是安全的。
加速度計測量模型將具有類似的噪聲和偏置項。但是現在,我們不再像使用旋轉角速度那樣直接測量身體加速度,而是需要使用重力場中加速度計的基本方程來消除重力的影響。
a(t)=Csn(t)(r¨nsn(t)?gn)+baccel(t)+naccel(t)\mathbf{a}(t)=\mathbf{C}_{s n}(t)\left(\ddot{\mathbf{r}}_{n}^{s n}(t)-\mathbf{g}_{n}\right)+\mathbf{b}_{\mathrm{accel}}(t)+\mathbf{n}_{\mathrm{accel}}(t) a(t)=Csn?(t)(r¨nsn?(t)?gn?)+baccel?(t)+naccel?(t)
可以看到,為了得到準確的加速度,我們首先要得到準確的方向矩陣 Csn(t)\mathbf{C}_{s n}(t)Csn?(t),而這又需要我們得到準確的角速度。
最后,讓我們討論一下IMU模型的一些限制。
- 首先,準確的方向估計對于準確的位置估計至關重要。 當我們將測得的比力轉換為加速度時,我們必須確保重力方向是正確的。 否則,即使方向上的一個小錯誤也會讓我們認為我們正在加速,而實際上我們并沒有。
- 其次,我們推導出的兩個模型都忽略了地球自轉的影響。 對于更遠距離的導航(飛機或導彈導航時不能忽略),這實際上很重要。
- 最后,我們推導出的模型適用于捷聯IMU。 這些IMU是物理固定在車輛上,并且沒有在萬向節上安裝旋轉輪。 盡管后者可能更準確,但由于體積大且成本高,它們很少用于汽車應用。
3. Global Navigation Satellite System
3.1 Introduction
與上一節介紹的IMU一樣,幾乎每部現代智能手機都至少有一種類型的GNSS接收器。盡管我們現在認為它們是理所當然的,但第一個現代全球定位衛星系GPS 是在 1980 年代為軍事用途而建造的。
到 1995 年第二版系統全面運行時,GPS 已免費向公眾開放。部分原因是大韓航空 007 號航班在 1983 年墜毀。007 號航班是一架 747 客機,從紐約飛往首爾,在阿拉斯加安克雷奇加油。當它從安克雷奇飛往首爾時,它偏離了計劃的飛行路線,在蘇聯領空停留了幾個小時后被一架戰斗機擊落。
為了穿越北太平洋,007 航班依靠慣性導航系統進行引導。飛行員未能正確初始化系統,錯誤地將飛機保持在特定的磁航向。反過來,這架飛機偏離了計劃航線 300 多公里。在 007 航班被擊落后不久,羅納德·里根總統發布了一項指令,允許美國全球定位系統在完全開發后免費向公眾開放。
GPS系統由位于六個軌道平面的 24-32 顆衛星組成。衛星會定期退役和更換。高度約為 20,000 公里,軌道周期不到 12 小時。系統的設計使得至少四顆衛星在地球上的任何表面點始終可見。每顆衛星以兩種頻率進行廣播,一種用于民用,一種用于軍用。每個廣播信號都包含一個偽隨機碼,用于識別衛星位置和信號傳輸時間。
GPS背后的基本原理是到達時間測距。接收器通過將自己的內部時鐘與傳輸時間的時鐘進行比較來計算每個可見衛星的距離。使用電磁信號以光速傳播的知識將時間差轉換為距離。為了計算 3D 位置,測距方程需要至少四顆可見衛星。如果已知高度并且只需要 2D 位置,則只需要三顆衛星。
3.2 Trilateration
對于每顆衛星,偽距測量方程為:
ρ(i)=c(tr?ts)=(p(i)?r)T(p(i)?r)+cΔtr+cΔta(i)+η(i)\rho^{(i)}=c\left(t_{r}-t_{s}\right)=\sqrt{\left(\mathbf{p}^{(i)}-\mathbf{r}\right)^{T}\left(\mathbf{p}^{(i)}-\mathbf{r}\right)}+c \Delta t_{r}+c \Delta t_{a}^{(i)}+\eta^{(i)} ρ(i)=c(tr??ts?)=(p(i)?r)T(p(i)?r)?+cΔtr?+cΔta(i)?+η(i)
各物理量含義如下:
請注意,這與三角測量不同,三角測量基于角度測量計算位置。 該模型考慮了接收器時鐘誤差、大氣傳播延遲和測量噪聲。術語偽距是指距離信息被上述誤差源破壞的事實。 每個偽距測量在 2D 中定義一個圓或在 3D 中定義一個球體。 如果我們正好有四顆衛星,我們可以明確地求解接收器位置和接收器時鐘誤差。
如果我們有四個以上,我們可以使用最小二乘法找到假設高斯噪聲的最大似然位置。
3.3 Error Sources and Improvements
GPS 存在多種誤差源:
- 首先,電離層中的帶電離子可以將信號延遲。
- 周圍的地形和建筑物可能會引起反射,從而增加信號在到達接收器之前傳播的距離,這些被稱為多徑誤差。
- 時鐘同步或衛星位置信息中的任何小錯誤都可能導致災難性后果。即使是 1 微秒的計時誤差也會導致 300 米的重大位置誤差。星歷數據和衛星時鐘都會經常更新和重新校準,但校準可能會過時。
- 最后,可見衛星的幾何配置也會導致定位精度的變化。這被稱為精度的幾何稀釋。為了獲得更高的精度,最好采用衛星遍布天空的配置。
幸運的是,對于某些應用程序,我們可以通過以各種方式增強系統來提高GNSS精度。
- 差分GPS 可以通過使用一個或多個固定基站更準確的已知位置來校正接收機定位估計。修正以不同的頻率廣播到移動車輛中的 GNSS 接收器。
- 在某些情況下,實時動態或RTK GPS 利用載波相位信息將定位精度提高到兩厘米。
盡管這兩種技術都可以顯著提高 GPS 的精度,但它們的實施成本通常非常高。正如我們在之前的視頻中提到的,慣性傳感器對于導航非常有用。然而,隨著時間的推移,它們會漂移或累積無限的誤差。相比之下,GPS 系統提供有界誤差定位更新。配備 GPS 的自動駕駛汽車將始終保持有保證的定位精度水平,除非 GPS 接收器出現故障或丟失至少四顆衛星的軌道。
總結
以上是生活随笔為你收集整理的Coursera自动驾驶课程第15讲:GNSS and INS Sensing for Pose Estimation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017交行白金信用卡年费标准 省年费你
- 下一篇: 怎么用计算机拟合数据,数据拟合的几个应用