1. 程式人生 > 其它 >Apollo自動駕駛入門課程第③講 — 定位

Apollo自動駕駛入門課程第③講 — 定位

1.定位的概述

在日常生活中假設你手中有一張高精地圖,定位的任務是確定你的車輛在這張高精地圖上的位置。

大多數時候,我們使用GPS來進行定位,但是GPS對於無人車來說還不夠精確。因此我們必須找到另一種方法來更準確地確定車輛在地圖上的位置。最常用的方法是將汽車感測器所看到的內容與地圖上所顯示的內容進行比較。車輛感測器可以測量車輛與靜態障礙物之間的距離。我們在車自身的座標系中測量這些距離以及這些靜態障礙物的方向。在車的座標系中,汽車的前進方向始終向前,座標系正方向始終與車頭保持一致,但不一定與地圖座標系保持一致。當車輛感測器測量到地圖上的物體,會將感測器的地標觀測值,與地標在地圖上的位置匹配,轉換到地圖自帶座標系,反之亦然,從而達到地圖與車感資料的對比。

定位提供了許多可選擇的方法,但每種都有自己的優劣。接下來將介紹主流的定位方法。

高精地圖最重要特徵之一是精度,手機上的導航地圖只能達到米級精度,而高精地圖可以使車輛能夠達到釐米級的精度,這對確保無人車的安全性至關重要。

2.定位方法介紹

如果在野外迷路,假如你看到自己離一棵樹 75 米遠,你只知道自己位於一個以樹為中心半徑為75米的圓上。但是如果看到一個離自己 64 米遠的房子,你就會知道自己位於兩個圓的交點處,但仍不知道自己位於哪個交點上。假設你看到了第三個路標,如路燈。經過測量你發現自己離路燈55 米遠,自己就知道了相對於這些地標的確切位置。

首先。假設現在有一個世界地圖標註了這三個地標在世界上的確切位置,那麼就可以知道自身的確切位置了,這就被稱為三角測量。

GPS就是這樣的工作原理,只是參照物並不是地標而是衛星。三顆衛星再加上一顆用來定位高度的衛星,4顆衛星就可以知道自身的確切位置了。GPS這類系統的通用名稱為全球導航衛星系統或GNSS,GPS 是其中使用最廣泛的GNSS 系統。

GPS 分為三部分。第一部分是衛星,在任何特定時間大約有 30 顆 GPS 衛星在外層空間執行,它們各自距離地球表面約 2 萬公里。第二部分由世界各地的控制站組成,控制站用於監視和控制衛星,其主要目的是讓系統保持執行並驗證 GPS 廣播訊號的精確度。第三部分是 GPS 接收器,GPS 接收器存在於手機、電腦、汽車、船隻以及許多其他裝置中。

GPS 接收器實際上並不直接探測你與衛星之間的距離,它首先測量訊號的飛行時間即TOF原理。通過將光速乘以這個飛行時間,來計算離衛星的距離。由於光速的值很大,即使是少量的時間誤差也會在距離計算中造成巨大的誤差。

 因此每顆衛星都配備了高精確度的原子鐘。為進一步減小誤差,使用實時運動定位(RTK)。RTK 涉及在地面上建立幾個基站,每個基站都知道自己精確的“地面實況”位置,但是每個基站也通過 GPS 測量自己的位置。已知的“地面實況”位置與通過 GPS 測量的位置之間的偏差,為 GPS 測量結果中的誤差。然後將這個誤差傳遞給其他 GPS 接收器以供其調整自身的位置計算。在 RTK 的幫助下,GPS 可以將定位誤差限制在 10 釐米以內。

但是仍存在高樓和其他障礙物可能阻擋 GPS 訊號的問題,這使定位變得困難或根本無法定位。GPS 的更新頻率很低,大約為 10 赫茲。由於無人駕駛車在快速移動,可能需要更頻繁地更新位置。

慣性導航

假設一輛汽車正以恆定速度直線行駛,如果提供了汽車的初始位置、速度、行駛時長,那麼汽車的位置即從初始位置開始,然後速度乘以時間。

假如給予一輛汽車的初始速度,並給予加速度和駕駛時間,就可以使用加速度、初始速度、初始位置來計算汽車在任何時間點的車速和位置。

加速度需要三軸加速度計的感測器來測量,有三種不同型別的三軸加速度計,它們採用不同的方法,但共同的目標是精確測量加速度。加速度計根據車輛的座標系記錄測量結果,還需要陀螺儀感測器將這些測量值轉換為全域性座標系測量值。

三軸陀螺儀的三個外部平衡環一直在旋轉,但三軸陀螺儀中的旋轉軸始終固定在世界座標系中。在座標系中的位置是通過測量旋轉軸和三個外部平衡環的相對位置來計算的。

加速度計和陀螺儀是慣性測量單元(IMU)的主要元件,IMU 可以以高頻率更新,可達 1000 赫茲,所以 IMU 可以提供接近實時的位置資訊。但缺點在於其運動誤差隨時間增加而增加,我們只能依靠慣性測量單元在很短的時間範圍內進行定位。但是我們可以結合 GPS 和 IMU 來定位汽車,一方面  IMU 彌補了 GPS 更新頻率較低的缺陷。另一方面 GPS 糾正了 IMU 的運動誤差。但是即使將 GPS 和 IMU 系統相結合也不能完全解決定位問題,比如我們在山間行駛或城市峽谷中或在地下隧道中行駛,那麼可能長時間沒有 GPS 更新。

鐳射雷達定位

利用鐳射雷達,可以通過點雲匹配來對汽車進行定位。該方法將來自鐳射雷達感測器的檢測資料與預先存在的高精地圖之間匹配,通過這種比較可獲知汽車在高精度地圖上的全球位置和行駛方向。匹配點雲有多種方法,比如迭代最近點(ICP)就是一種方法。對於第一次掃描中的每個點,需要找到另一次掃描中最接近的匹配點。最終會收到許多匹配點對, 把每個點的距離誤差相加,然後計算平均距離誤差。假設我們對兩次點雲掃描進行匹配。我們的目標是通過點雲旋轉和平移來最大限度地降低這一平均距離誤差,就可以在感測器掃描和地圖之間找到匹配,將通過感測器掃描到的車輛位置轉換為全球地圖上的位置並計算出在地圖上的精確位置。

 濾波演算法是另一種LiDAR 定位方法。將通過感測器掃描到的車輛位置轉換為全球地圖上的位置並計算出在地圖上的精確位置,濾波演算法是另一種LiDAR 定位方法。濾波演算法可消除冗餘資訊並在地圖上找到最可能的車輛位置。Apollo 使用了直方圖濾波演算法,該方法有時也被稱為誤差平方和演算法( SSD)。為了應用直方圖濾波,將通過感測器掃描的點雲滑過地圖上的每個位置,在每個位置上計算掃描的點與高精度地圖上的對應點之間的誤差或距離然後對誤差的平方求和,求得的和越小掃描結果與地圖之間的匹配越好。在事例中,藍色表示較好,紅色較差,綠色表示一般。

卡爾曼濾波是另一種LiDAR 定位方法,卡爾曼濾波用於根據我們在過去的狀態和新的感測器測量結果預測我們當前的狀態。具體來說,卡爾曼濾波使用了預測更新週期,首先我們根據之前的狀態以及對移動距離和方向的來估計我們的新位置。當然運動估計並不完美,所以需要通過使用感測器測量我們的位置並加以糾正。一旦感測器測量了我們的新位置,我們便可以使用概率規則將不完美的測量結果與現有位置匹配起來。我們會永遠遵循這個預測更新週期,只要我們需要對車輛進行定位,先預測我們的新位置,然後用感測器測量我們的位置。LiDAR定位的主要優勢在於穩健性,只要從高精地圖開始並且存在有效的感測器,就始終能夠進行定位。主要缺點在於難以構建高精地圖並使其保持最新,事實上幾乎不可能讓地圖完全保持最新,因為幾乎每個地圖均包含瞬態元素,汽車、行人、停放的汽車、垃圾等。

視覺定位

 影象是要收集的最簡單的資料型別,攝像頭便宜且種類繁多、易於使用。通過影象實現精確定位卻非常困難,實際上攝像頭影象通常與來自其他感測器的資料相結合以準確定位車輛,將攝像頭資料與地圖和 GPS 資料相結合,比單獨使用攝像頭影象進行定位的效果更好。假設一輛車正在路上行駛,感知到右邊有樹,但是地圖顯示道路右側有幾棵樹有很多不同的點位置。如何知道車輛現在看到哪棵樹?我們可以使用概率來確定哪個點最可能代表我們的實際位置。有些點是無法看到右邊有樹,可以先排除。

繼續開車可以發現,有些點右邊只有一棵樹,也可以排除。

 該過程稱為粒子濾波。當然樹木在許多道路上比較稀少,但是車道線在許多道路上卻很常見,可以使用相同的粒子濾波原理對車道線進行拍照,然後使用拍攝的影象來確定車輛在道路中的位置,可以將道路攝像頭影象與地圖進行比較。如圖所示,藍色代表地圖上兩個不同位置的車道線,紅色代表車輛攝像頭觀察到的車道線,紅線與右側藍線的匹配度要比與左側藍線的匹配度高得多,更有可能位於右側影象位置上。

視覺定位的優點在於影象資料很容易獲得,缺點在於缺乏三維資訊和對三維地圖的依賴。

高精地圖不僅可以減少計算需求,還可以通過提供有關駕駛環境的詳細資訊,來確保無人車的安全。保持這些地圖的更新是一項重大任務,測試車隊需要不斷地對高精度地圖進行驗證和更新。此外,這些地圖可能達到幾釐米的精度,這是水準最高的製圖精度。

Apollo定位

Apollo使用基於GPS、IMU、鐳射雷達的多感測器融合定位系統,這種方法利用了不同感測器的互補優勢,也提高了穩定性和準確性。

Apollo定位模組依賴於IMU、GPS、鐳射雷達、雷達、高精地圖,這些感測器同時支援 GNSS 定位和LiDAR 定位,GNSS 定位輸出位置和速度資訊,LiDAR 定位輸出位置和行進方向資訊。融合框架通過卡爾曼濾波將這些輸出結合在一起。

卡爾曼濾波建立在兩步預測測量週期之上,在Apollo中,慣性導航解決方案用於卡爾曼濾波的預測步驟,GNSS 和 LiDAR 定位用於卡爾曼濾波的測量結果更新步驟。