1. 程式人生 > 實用技巧 >無人駕駛導航定位技術初探(開山篇)

無人駕駛導航定位技術初探(開山篇)

寫在前面
本文是基於全球衛星導航體統(GNSS)結合慣導(IMU)在無人駕駛中的應用。計劃寫成一個系列,力求通俗易懂,儘量少用公式,大白話解釋問題。撰寫過程中參考學習了一系列的書籍、論文、部落格文章,對前人的工作表示感謝。
概述:
定位的目的是讓自動駕駛汽車找到自身確切位置的方法,可以說,定位導航技術是整個自動駕駛技術的核心!在日常生活中,我們一直使用谷歌、百度、高德or其他地圖 來確定自己的位置,其實質就是使用了衛星導航技術,手機終端接收衛星導航電文進行解算,計算出你此刻的位置。但衛星導航定位精度誤差在10米左右,這對於自動駕駛是致命的,完全不能滿足自動駕駛的需求。如果駕駛的周圍環境複雜,過橋洞,接收不了導航訊號,遮蔽嚴重,如高樓、山脈,會產生多徑效應,導航的精度可能會更差,50米開外了。所以無人駕駛系統不能依賴衛星導航系統,因此需要藉助其他方式方法來提高車輛在地圖上的位置精度,這就要配合高精地圖,融合慣導和視覺等技術了,所以,無人駕駛系統中的導航定位分系統是技術交叉很厲害的一部分。

一、導航定位技術
什麼是導航定位?導航定位就是利用電、磁、光、力學等科學原理與方法,通過測量與空中飛機、海上艦船、大洋裡的潛艇、陸地上的車輛、人流等運動物體每時每刻位置有關的引數,從而實現對運動體的定位,並正確地從出發點沿著預定的路線,安全、準確、經濟地引導到目的地,這種技術就叫導航技術(百度百科解釋)。曾經聽一個報告,一位大專家說什麼是導航?他說這是一個哲學問題:“我從哪裡來?將要到何方?”,作為一個俗人,我不能給出這麼富有詩意的表達,我的理解導航定位就是:定位是導航的第一步,導航是定位的一個連續過程,導航涉及路徑規劃和決策引導。所以,能不能導航,關鍵看定位怎麼樣,核心指標就是定位精度。導航技術分為無線電導航、衛星導航、天文導航、慣性導航、地形輔助導航等,這裡主要談衛星導航和慣性導航以及鐳射雷達、視覺導航。
二、衛星導航
1、定位原理
需要說明的是衛星導航技術依然是無人駕駛導航定位的主要手段,簡單說一下全球導航衛星系統(GNSS),GNSS包括美國的GPS系統,中國北斗(BDS),俄羅斯的格洛納斯(GLONASS),還有不爭氣的歐盟伽利略(GALILEO),主流使用美國的GPS,其實現在的終端都是多模多星座,用你不經意之間就使用了北斗系統。衛星導航原理及其簡單,就是“三球交匯原理”,使用者測量出已知位置的衛星到使用者接收機之間的距離,在時間高精度同步的前提下,理論上接收機觀測到三顆以上衛星即可實現定位(其實需要大於等於4顆)。原理圖如下,關於衛星導航技術不過多的敘述,有時間專門寫一篇介紹北斗系統的文章。
衛星導航定位原理
2、RTK技術
RTK(Real - time kinematic,實時動態)載波相位差分技術,是實時處理兩個測量站載波相位觀測量的差分方法,將基準站採集的載波相位發給使用者接收機,進行求差解算座標,RTK能夠提高衛星導航的定位精度達到釐米級。基本原理是十分簡單,在一定的區域範圍內,兩個衛星導航終端接收機都距離不遠,那麼兩者的訊號將具有幾乎相同的誤差,如果能精確地計算出第一個接收機的誤差,我們就可以對第二個接收機的結果進行修正。這樣做大大提高了導航地位的精度。目前,也是無人駕駛的通用技術之一。
RTK技術原理圖
三、慣性導航
慣性導航系統是一種不依賴於外部資訊、也不向外部輻射能量的自主式導航系統。其工作環境不僅包括空中、地面,還可以在水下。慣導的基本工作原理是以牛頓力學定律為基礎,通過測量載體在慣性參考系的加速度,將它對時間進行積分,且把它變換到導航座標系中,就能夠得到在導航座標系中的速度、偏航角和位置等資訊。百度百科解釋
在駕駛中想要知道車的當前位置,用速度乘以時間即可,但是這是在車是勻速且走直線的前提下。很顯然,實際情況要複雜得多。這個時候就用到了高中物理姿勢"加速度"!對加速度做積分,得到了速度,再次積分,得到了位置,道理就這麼簡單!但是問題來了,這“加速度”如何得到?為了測量加速度,就要使用“三軸加速度計”感測器。它可以精確測量加速度。速度解決了,還有方向問題,車不是一直走直線的,所以單有加速度計不足以計算車輛的位置。這個時候就需要一個叫“陀螺儀角速度器”出場了!用陀螺儀能測量當前的角速度。解決了車輛行駛的方向的問題。加速度計和陀螺儀合起來就是是 IMU(慣性測量單元)一個解決速度,一個解決方向。IMU 頻率為1000Hz,所以 IMU 可以提供接近實時的位置資訊。而衛星導航的頻率大約10Hz,實時性差很多,說直白一點,開跑車的話,容易“丟星”。但是IMU也是有缺點的,會產生誤差積累,運動誤差會隨時間增加而增加,所以IMU只能短時定位。現在通用辦法是結合 GNSS 和 IMU 來進行來汽車定位,一方面,IMU 彌補了GNSS更新頻率較低的缺陷;另一方面,GNSS反過來糾正了 IMU 的運動誤差。這種結合就是“組合導航”。
四、LiDAR 定位
LiDAR也就是鐳射雷達。是利用衛星導航訊號和IMU機載鐳射掃描。其所測得的資料為數字表面模型的離散點表示,資料中含有空間三維資訊和鐳射強度資訊。應用分類技術在這些原始數字表面模型中移除建築物、人造物、覆蓋植物等測點,即可獲得數字高程模型(Digital Elevation Model, DEM),並同時得到地面覆蓋物的高度 。百度百科解釋
LiDAR會在車輛行駛的過程中不斷收集點雲來了解周圍的環境。就可以利用這些環境資訊來定位。這裡我們可以把這個問題用一個簡化的概率問題來表示:已知t0時刻的衛星導航(GPS/BDS)資訊,t0時刻的點雲資訊,以及t1時刻無人車可能所在的三個位置:P1、P2和P3(這裡為了簡化問題,假設無人車會在這三個位置中的某一個)。求t1時刻車在這三點的概率。根據貝葉斯法則,無人車的定位問題可以簡化為如下概率公式:
在這裡插入圖片描述

右側第一項表示給定當前位置,觀測到點雲資訊的概率分佈。其計算方式一般分區域性估計和全域性估計兩種。區域性估計較簡單的做法就是通過當前時刻點雲和上一時刻點雲的匹配,藉助幾何推導,可以估計出無人車在當前位置的可能性。全域性估計就是利用當前時刻的點雲和上面提到過的高清地圖做匹配,可以得到當前車相對地圖上某一位置的可能性。在實際中一般會兩種定位方法結合使用。右側第二項表示對當前位置預測的概率分佈,這裡可以簡單的用衛星導航(GPS/BDS)系統給出的位置資訊作為預測。通過計算P1、P2和P3這三個點的後驗概率,就可以估算出無人車在哪一個位置的可能性最高。通過對兩個概率分佈的相乘,可以很大程度上提高無人車定位的準確度。
五、視覺定位
基於視覺的定位演算法有兩大分類:一種是基於拓撲與地標的演算法,另一種是基於幾何的視覺里程計演算法。
基於拓撲與地標的演算法:把所有的地標組成一個拓撲圖,然後當無人車監測到某個地標時,便可以大致推斷出自己所在的位置。基於拓撲與地標的演算法相對於基於幾何的方法容易,但是要求預先建立精準的拓撲圖,比如將每個路口的標誌物做成地標。
基於幾何的視覺里程計演算法:該方法計算比較複雜,但是不需要預先建立精準的拓撲圖,這種演算法可以在定位的同時擴充套件地圖。視覺里程計演算法主要分為單目以及雙目兩種,純單目的演算法的問題是無法推算出觀察到的物體的大小,所以使用者必須假設或者推算出一個初步的大小,或者通過與其它感測器(如陀螺儀)的結合去進行準確的定位。雙目的視覺里程計演算法通過左右圖三角剖分(Triangulation)計算出特徵點的深度,然後從深度資訊中推算出物體的大小。
雙目測距原理
圖 中, Q 是待測距點(某匹配點),其到相機的垂直距離為 R,在左右相機上形成的像點分別是 Q1 和 Q2 。 b 是雙目相機的基線長度,f是相機焦距, X1,X2 是 Q 點在左右兩幅影象上像點的位置差, 又稱為視差。利用相似三角形原理, 可得相機到 Q 點的距離為在這裡插入圖片描述
雙目視覺里程計演算法(來源於網路)
雙目視覺里程計的優勢在於,能夠精確的估計運動軌跡,且具有確切的物理單位。在單目視覺里程計中,你僅僅只知道物體在x/y方向上移動了1個單位,而雙目視覺里程計則可明確知道是移動了1cm。但是,對於距離很遠的物體,雙目系統則退化成為單目系統,所以,究竟使用哪種視覺里程計方法,取決於我們的應用場景。通過視覺里程計演算法,無人車可以實時推算出自己的位置,進行自主導航。但是純視覺定位計算的一個很大問題是演算法本身對光線相當敏感。在不同的光線條件下,同樣的場景不能被識別。特別在光線較弱時,影象會有很多噪點,極大地影響了特徵點的質量。在反光的路面,這種演算法也很容易失效。這也是影響視覺里程計演算法在無人駕駛場景普及的一個主要原因。
至此,把無人駕駛系統中的導航定位分系統進行了一個簡單的梳理,後續將對差分RTK技術,鐳射雷達,視覺定位進行展開討論。

本文連結:https://blog.csdn.net/haohaobaobao520/article/details/83117221