一文了解自動駕駛汽車“定位”

定位,是讓自動駕駛汽車找到自身確切位置的方法,這對自動駕駛汽車來說非常重要。當你在駕駛一輛車時徹底迷路了,你不知道自己在哪兒,而這時你有一張全球的高精度地圖,定位的任務就是確定你的車輛在這張高精度地圖上的位置(見圖1)。

一文了解自動駕駛汽車“定位”

在日常生活中,我們一直使用手機 GPS 來確定自己的位置,但 GPS 1到3米之間的精確度對自動駕駛汽車來說不夠精確。而當我們被高樓、山脈環繞,或位於峽谷內時,GPS 的精度可能會更差,只有10米或50米(見圖2)。

由於我們無法完全信任 GPS,因此我們必須找到另一種方法來更準確地確定車輛在地圖上的位置。最常用的方法是,將車輛感測器所看到的內容與地圖上所顯示的內容進行比較,車輛感測器可以測量車輛與靜態障礙物(樹木、電線杆、路標和牆壁)之間的距離。

一文了解自動駕駛汽車“定位”

我們在車輛自身的座標系中測量這些距離,以及靜態障礙物的方向。在車輛自身的座標系中,汽車的前進方向始終向前,當汽車左轉或右轉時,座標系與汽車一同旋轉,以使車輛的前進方向在座標系中繼續向前。隨著車輛的轉彎,車輛自身的座標系必然與地圖座標不一致(見圖3),車輛的座標和地圖的座標可能都取決於手機導航系統中的設定。

一文了解自動駕駛汽車“定位”

在地圖上也有可能找到車輛感測器所檢測到的地標,為估計車輛在地圖上的位置,我們將感測器的地標觀測值與這些地標在地圖上的位置進行匹配,地圖自帶座標系,無人駕駛軟體必須將感測器的測量得到的在車輛座標系中的座標,轉換為地圖座標系中的座標(見圖4),執行這類轉換是解決定位問題的關鍵步驟。

總結:車輛將其感測器識別的地標與高精地圖上存在的地標進行對比,為了進行該對比,必須能夠在它自身座標系和地圖座標系之間相互轉換資料。而後,系統必須在地圖上以十釐米的精度確定車輛的精確位置。

定位提供了許多可供選擇的方法,每種方法都有各自的優缺點。接下來,我們將探討幾種常見的自動駕駛汽車定位方法。

全球導航衛星系統 GNSS

如果你迷路了,要如何在高精度地圖上確定自己的位置?

一文了解自動駕駛汽車“定位”

假如你看到自己離一棵樹75米遠,你可能比較清楚自己處在什麼位置,但仍然不能確定,因為你智慧判斷自己位於一個以樹為圓心、半徑75米的圓上(見圖5)。

一文了解自動駕駛汽車“定位”

然後,你看到一個離自己64米遠的房子,於是你知道自己位於兩個圓的交點處,但不知道自己位於哪個交點上(見圖6)。

一文了解自動駕駛汽車“定位”

現在假設你看到第三個路標:一個距離你離你55米遠的路燈,如果你有一張地圖,裡面註明了這些地標在世界上的確切位置,那麼你就能知道自己相對於這些路標的確切位置,這個過程被稱為三角測量(見圖7)。

我們要在地球表面上進行三維定位,使用的是傳送地標與我們之間距離的衛星,而不是我們可以看到的地標,這就是 GPS 工作的原理,那麼,我們需要幾顆衛星才能確切知道自己的位置?

GPS 即全球定位系統,是一種由美國政府開發、並在全球範圍運營的衛星導航系統。這類系統的通用名稱為全球導航衛星系統或 GNSS,GPS 是使用最廣泛的 GNSS 系統。起初 GPS 只是用於軍事導航,但現在任何人都可以使用 GPS 接收器,從 GPS 衛星收集訊號並使用該系統。

GPS 由三部分組成:

衛星。在任何特定時間,大約有30顆 GPS 衛星在太空執行,他們各自距離地球表面約2萬公里。

控制站。控制站分散在世界各地,用於監視和控制衛星,其主要目的是讓系統保持執行,並驗證 GPS 廣播訊號的精確度。

GPS 接收器。GPS 接收器存在於手機、電腦、汽車、船隻以及許多其他裝置中,如果周圍沒有高樓等障礙物並且天氣良好,那麼無論你身在何處,GPS 接收器應每次至少檢測到四顆 GPS 衛星。

一文了解自動駕駛汽車“定位”

GPS 接收器實際上並不直接探測你與衛星之間的距離。它首先測量訊號的飛行時間,即訊號從衛星傳播到你的 GPS 接收器需要多長時間,然後透過將光速乘以這個飛行時間來計算衛星的距離。

實時運動定位 RTK

因為光速的值很大,即使是少量的時間誤差也會在計算過程中造成巨大的誤差,所以每顆衛星都配備了高精度的原子鐘。而為進一步減小誤差,我們可以使用 RTK(實時運動定位)。

RTK 需要在地面上建立幾個基站,每個基站都知道自己精確的地面位置,同時每個基站也透過 GPS 測量自己的位置,已知的地面位置與透過 GPS 測量的位置之間的偏差為 GPS 測量結果中的誤差,然後基站將這個誤差傳遞給其他 GPS 接收器,以供其調整自身位置的定位結果。

一文了解自動駕駛汽車“定位”

在 RTK 的幫助下,GPS 可以將定位誤差限定在10釐米以內,但是:

高樓和其他障礙物可能阻擋 GPS 訊號,這使定位變得困難或根本無法進行;

同時,GPS 的更新頻率很低,大約為10赫(每秒更新10次),但由於自動駕駛汽車在快速移動,需要更頻繁地更新位置。

慣性導航

假設一輛車正以恆定速度直線行駛,已知汽車的初始位置、速度及行駛時長,我們可以算出汽車的當前位置。再進一步,我們可以使用加速度、初始速度和初始位置計算汽車在任何時間點的車速和位置。而在這個計算過程中,我們需要解決一個問題:如何測量加速度。

一文了解自動駕駛汽車“定位”

當前位置=初始位置+速度×時間

為了測量加速度,我們需要“三軸加速度計”感測器。它可以精確測量加速度。但加速度計本身不足以計算車輛的位置和速度。加速度計根據車輛的座標系記錄測量結果,而後這些測量值被轉換成世界座標系,為了實現這種轉換我們需要藉助“陀螺儀”感測器。三軸陀螺儀的三個外部平衡環一直在旋轉,但在三軸陀螺儀中的旋轉軸始終固定在世界座標系中,車輛透過測量旋轉軸和三個外部平衡環的相對位置來計算其在座標系中的位置。

一文了解自動駕駛汽車“定位”

陀螺儀 3D 展示圖

加速度計和陀螺儀是 IMU(慣性測量單元)的主要元件。IMU 的一個重要特徵在於它以高頻率更新,其頻率可達到1000赫茲,所以 IMU 可以提供接近實時的位置資訊。

慣性測量單元的缺點在於其運動誤差隨時間增加而增加,我們只能依靠慣性測量單元在很短的時間範圍內進行定位。但是,我們可以結合 GPS 和 IMU 來定位汽車,一方面,IMU 彌補了GPS 更新頻率較低的缺陷;另一方面,GPS 糾正了 IMU 的運動誤差。

對自動駕駛汽車而言,僅將 GPS 和 IMU 系統相結合,還不能完全解決定位所面臨的問題,如果我們在山間、峽谷或地下隧道中行駛,我們可能會長時間沒有 GPS 更新,這會讓整個定位面臨失敗的風險。

一文了解自動駕駛汽車“定位”

本節將介紹自動駕駛汽車的定位技術:鐳射雷達定位和視覺定位,以及Apollo框架是如何解決定位問題的。

鐳射雷達定位

利用鐳射雷達,我們可以透過點雲匹配來對汽車進行定位,該方法將來自鐳射雷達感測器的檢測資料與預先存在的高精度地圖連續匹配。透過這種比較,可獲知汽車在高精度地圖上的全球位置和行駛方向。

一文了解自動駕駛汽車“定位”

有許多演算法可用於匹配點雲,迭代最近點(ICP)是其中一種方法。假設我們想對兩次點雲掃描進行匹配,對於第一次掃描中的每個點,我們需要找到另一次掃描中最接近的匹配點。最終會收集到許多匹配點對,把每對點之間的距離誤差相加,計算平均距離誤差。

一文了解自動駕駛汽車“定位”

我們的目標是透過點雲旋轉和平移來最大限度降低這一平均距離誤差,這樣就可以在感測器掃描和地圖之間找到匹配。我們將透過感測器掃描到的車輛位置轉換為全球地圖上的位置,並計算出在地圖上的精確位置。

濾波演算法是一種 LiDAR 定位方法,可消除冗餘資訊,並在地圖上找到最可能的車輛位置。Apollo 使用了直方圖濾波演算法,該方法有時候也被稱為誤差平方和演算法(SSD)。為了應用直方圖濾波,我們將透過感測器掃描的點雲劃過地圖上的每個位置,在每個位置,我們計算掃描的點與高精度地圖上的對應點之間的誤差或距離,然後對誤差的平方求和。求得的和越小,掃描結果與地圖之間的匹配越好。

一文了解自動駕駛汽車“定位”

該示例圖中顯示的一些對齊較好的點,用紅色表示;以及一些對齊較差的點,用藍色表示;綠色表示中等對齊。

卡爾曼濾波是另一種 LiDAR 定位方法,也是一種演算法,它根據我們在過去的狀態和新的感測器測量結果預測我們當前的狀態。具體來說,卡爾曼濾波使用了預測更新週期:

首先,我們根據之前的狀態以及對移動距離和方向的估計,來估計或“預測”我們的新位置,並透過使用感測器測量我們的位置並加以糾正。一旦使用感測器測量了我們的新位置,便可以使用機率規則,將感測器測量結果與我們現有的位置預測結合起來。我們會永遠遵循這個預測更新週期,也即需要對車輛進行定位時,先預測我們的新位置,然後用感測器測量我們的位置。

總結:LiDAR 定位的主要優勢在於穩健性。只要從高精度地圖開始,並且存在有效的感測器,我們就始終能夠進行定位。主要缺點在於難以構建高精度地圖,並使其保持最新。事實上,幾乎不可能讓地圖保持完全最新,因為幾乎每個地圖均包含瞬態元素,汽車和行人,甚至停放的汽車,在我們下次駕車駛過時都會消失,街道上的垃圾會被吹走,世界上的許多元素都在不斷髮生變化。

視覺定位

影象需要收集到最簡單的資料型別。攝像頭便宜且種類繁多還易於使用,我們可以使用影象來定位汽車嗎?

透過影象實現精確定位非常困難。實際上,攝像頭影象通常與來自其他感測器的資料相結合,用以準確定位車。但將攝像頭資料與地圖和 GPS 資料相結合比單獨使用攝像頭影象進行定位的效果更好。

假設一輛車正在路上行駛,它感知到右邊有一棵樹,但是地圖顯示道路右側有幾棵樹,全部位於不通的位置,我們如何知道車輛現在“看”到的是哪棵樹?

一文了解自動駕駛汽車“定位”

我們可以用機率來解決這個問題。想象一下,我們正位於道路上許多不同點中的任意一點處,使用機率能確定哪個點最可能代表我們的實際位置。

一文了解自動駕駛汽車“定位”

已知車輛右側有一棵樹,我們假設從一些點可以看到右邊有一棵樹,而從另一些點則看不到。我們可以在開車的同時繼續觀察周邊世界。

一文了解自動駕駛汽車“定位”

想象一下,我們開車前行,觀察到車輛右邊的另一棵樹,在觀察到地圖上的其餘點之後,我們發現僅在少數幾個位置會發現車輛右側有成排的兩棵樹,我們當然最有可能位於這些位置之一,所以我們可以排除所有其他位置。

過程繼續,透過觀察結果、機率和地圖來確定我們最可能的位置,該過程被稱為粒子濾波。因為我們使用粒子或點來估計最可能的位置,當然,樹木在許多道路上比較稀少,但是車道線在許多道路上卻很常見,可以使用相同的粒子濾波原理對車道線進行拍照。使用拍攝的影象來確定車輛在道路中的位置,可以將道路攝像頭影象與地圖進行比較。我們的攝像頭影象與地圖的某些部分匹配得很好,但與地圖的其他部分匹配得沒那麼好。

一文了解自動駕駛汽車“定位”

上圖是視覺車道線的一個示例,藍色代表地圖上兩個不同位置的車道線,紅色代表車輛攝像頭觀察到的車道線,紅線與右側藍線的匹配度要比與左側藍線的匹配度高得多,因此我們更有可能位於與右側影象對應的地圖位置上。

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

Apollo 定位

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

這些感測器同時支援 GNSS 定位和 LiDAR 定位。GNSS 定位輸出位置和速度資訊,LiDAR 定位輸出位置和行進方向資訊。融合框架透過卡爾曼濾波將這些輸出結合在一起,卡爾曼濾波建立在兩步預測測量週期之上,在 Apollo 定位中,慣性導航解決方案用於卡爾曼濾波的預測步驟,GNSS 和 LiDAR 定位用於卡爾曼濾波的測量結果更新步驟。