定位問題的引入
我們所熟知的機器人,可以大致分為以下四類:
這四種類型的機器人可以做組合,如有智能行為的移動機器人,機器人可以移動并做一些操作行為。前兩類機器人發(fā)展的比較成熟,已經(jīng)大量應(yīng)用在工業(yè)領(lǐng)域,商業(yè)和家庭領(lǐng)域的應(yīng)用比例在近些年也在增長。其中移動機器人是我們目前關(guān)心的重點,自動駕駛也可以歸結(jié)為移動機器人。移動機器人包含無人機、水下機器人、輪式機器人、履帶式機器人、仿生足大狗等。
移動機器人關(guān)心的問題有三個:
移動機器人的核心問題就是定位問題, 后兩個問題都是以定位問題為前提才能達成的。
定位的基本概念
了解定位,我們首先要先了解位置。位置這個術(shù)語其實不是很準確,應(yīng)該叫做位姿,包含位置和目標體的朝向(姿態(tài)),我們習(xí)慣于用笛卡爾坐標系來表征位姿:
2D平面的位姿
三個自由度(x,y,rotation),x,y是2D平面的坐標位置,rotation 是偏向角。
3D世界的位姿
六個自由度(x,y,z,yaw,pitch,roll)。(x,y,z) 是3D立體坐標系中的位置坐標, yaw(航向角)、pitch(俯仰角)、roll(傾斜角)分別代表目標剛體繞z,y,x軸按照順序旋轉(zhuǎn)后的朝向姿態(tài)。
具體到自動駕駛和機器人,它們都是在一個平面上進行移動,雖然中間有顛簸,但是我們關(guān)注的是水平面上的位姿,上下的顛簸引起的位姿變更,可以投影到水平面上,這樣定位問題其實是2D位姿的估計問題,與之相對的如無人機就是3D定位問題。
理解定位,必須理解的另外一個概念就是參考基準,通俗講就是相對誰的位置和姿態(tài)。我們舉生活中的例子,坐公交汽車,我們相對公交車位置幾乎是不變的,相對于馬路上的某個站牌是一直在變化的。更加嚴謹?shù)亩x是參考幀, 這個參考幀具化成視覺效果,是一個坐標系,遵守右手法則,規(guī)定了在空間的零點位置和三叉戟坐標軸方向。
在這里有一個非常有意思的地方,可以細細琢磨,定位是研究參考幀與參考幀的相對位置關(guān)系。當我們向別人描述“我在哪里”的時候,其實是描述我作為主體的參考幀相對于某個地標(如天安門),甚至地球這個主體參考幀的相對位姿描述,放到太陽系就不對了。雖然我們描述位置的時候,常常是忽略掉這個地球參考幀的,但那是建立在大家都有這個地球參考幀的共識下,去討論位置。這里還有一個引申的概念就是剛體,組成這個剛體的所有參考幀互相之間的相對位姿在任何時刻都是不變的。我們與天安門的相對位置,在任何時刻都可以使用一個固定的運算,因為天安門這個地標隸屬于地球這個剛體。但如果使用這個運算去推算我們與月亮的相對位置,由于月亮與地球不在一個剛體上,且月亮繞著地球轉(zhuǎn),所以任何時刻這個轉(zhuǎn)換關(guān)系都在變。
了解了位置的表征后,我們再來考慮機器人和自動駕駛的定位問題,其實它是要估計運動主體(機器人本身或者車輛)這個參考幀,相對于周遭靜止環(huán)境的位姿或者位姿變化, 這個周遭靜止的環(huán)境,我們可以統(tǒng)稱為世界坐標系。移動定位問題,可以簡化為跟重力方向垂直的水平面上的2D位姿估計。 2D坐標系的(0,0)點, 及x,y軸的朝向其實可以是任意的,只要基準定好了,后面的參考不變即可。
對于自動駕駛,有一些細節(jié)需要補充, 我們熟知的定位(GPS)是經(jīng)緯度坐標,如何對應(yīng)平面笛卡爾坐標系呢?
經(jīng)緯度坐標可以通過墨卡托投影系統(tǒng)(Universal Transverse Mercator,UTM)投影到UTM 的一個區(qū)塊中, 區(qū)塊中再細的位置可以看成一個2D平面使用笛卡爾坐標進行表征, 這樣球面的經(jīng)緯度坐標和平面坐標是可以轉(zhuǎn)換的。
定位需要的傳感器及定位方法
運動主體想要了解自己的位置,必須借助傳感器。傳感器可以分為以下兩種:
內(nèi)傳感器
1. 原理
內(nèi)傳感器通過感知自身的運動變化,計量累計位姿變化。
2. 分類
輪子碼盤(又叫輪式里程計),里程計通過事先知道車輪的直徑,計數(shù)車輪轉(zhuǎn)速,得出速度和位移。 以差分兩輪為例子,根據(jù)兩個輪子的轉(zhuǎn)圈數(shù)差,可以推算出運動主體角度的變化。
慣性傳感器(加速度計、陀螺儀),慣性傳感器可以測量出線性加速度和角速度,通過積分可以推算出累計位移和角度變化。
內(nèi)傳感器的定位, 都依賴于一個起始位姿,通過不停積分,在起始位姿基礎(chǔ)上,合并相對位姿,進而推算出新時刻的位姿。
3. 優(yōu)點
不依賴于外部環(huán)境,不對外部環(huán)境做先驗假設(shè)。
4. 缺點
它推算的是累計位姿變化,所以絕對定位需要一個準確的起始位姿,起始不對,后面定位都不準。既然是累計變化,如果每一步累計引入誤差,不管誤差多小,在后續(xù)長時間的積累下,都會是一個很大的誤差。見下面的點模擬概率分布圖:
外傳感器
1. 原理
外傳感器通過感知周遭環(huán)境,來輔助定位自己的位姿。
2. 分類
GPS接收
2D單目攝像頭
雙目攝像頭
深度攝像頭
激光雷達
……
下面分別描述每種外傳感器的原理和優(yōu)缺點:
GPS接收
優(yōu)點是接收到全局位置錨定的定位信息,不會擔心誤差累計。
缺點有兩個:
1)獲取位置信息的頻率不會很快,大概10Hz的樣子。對于運動速度很慢的運動主體,還湊合能用,對于自動駕駛這個高速行駛的運動主體,需要更高的頻率獲取位姿。
2)GPS信號很容易被遮擋, 室內(nèi)定位基本用不上GPS,汽車過隧道的時候,會有相當長的時間無GPS信號。對室外定位要求比較高的場景,或者室內(nèi)定位場景, GPS無法單獨解決定位問題。
2D單目攝像頭
2D單目攝像頭可以將3D世界中的物體,投影到2D像素平面。它有一個特點,像素平面中的物體大小和物體的遠近可以等比例放大縮小,投射到成像平面是一樣的,也就是說在沒有物體大小先驗知識情況下,是無法分辨遠近的。
單目攝像頭定位最大的優(yōu)點是便宜,定位有多種思路,比較典型的有兩種:
1)間接定位
運動主體可以通過識別一些不動的物體作為參照,間接進行定位。但這個對于機器人來說非常難。因為外界的環(huán)境通過攝像頭傳入機器人的都是數(shù)字化的信息,具體就是像素點,數(shù)字化的信息通過識別物體的方式進行定位,是一件非常吃力的事情。
有一個變種的方案很方便實施,就是二維碼方案,機器人識別二維碼是非常容易的,通過知曉二維碼的寬度(只有知曉先驗大小,才能判斷遠近),與不同二維碼所代表的地標位置,機器人可以僅僅通過單目2D攝像頭方便的推算出自己的絕對位姿。以前的VR設(shè)備,如HTC VIVE,多采用這種方式實現(xiàn)定位。這個方案不方便之處在于要提前部署二維碼。
2)單目SLAM
單目SLAM要做到比較魯棒的定位,需要兩個階段, 分為前端的視覺里程計和后端的回環(huán)機制。該方案的問題包含初始化尺度問題和實際工程實施中計算量實時性問題。
尺度問題,是由2D成像理論內(nèi)在特點決定的,因為沒有深度信息,大小和遠近是可以成比例縮放的, 反映到單目SLAM, 在初始化階段,必須運動主體有平移的動作,來確定一個尺度基準,這個尺度基準是無法與測量單位“m,cm,mm”對應(yīng)的,只是自己的一個單位, 后續(xù)的建圖和定位都是基于這個單位來進行, 建立的地圖和定位理論上可以等比例縮放。
計算量問題,在于SLAM算法本身的復(fù)雜性,勉強在嵌入式設(shè)備上跑,計算資源基本耗盡。在實踐中可以從算法并行計算方面進行探索,或者選擇高性能的計算平臺。
單目SLAM 分為特征點法和直接法,考慮到對周遭環(huán)境的魯棒性,一般采用特征點法,就是采用人工設(shè)計的角點,作為連續(xù)幀進行地標匹配。角點肯定是稀疏的,所以建圖只是作為定位的輔助地標來做使用, 不能指導(dǎo)避障和導(dǎo)航。
主動光深度攝像頭(3D)
這種攝像頭在2D攝像頭的基礎(chǔ)上,增加紅外發(fā)射和接收裝置,在2D RGB像素上增加深度(距離)信息。比較有名的產(chǎn)品有微軟的Kinect,蘋果最新的手機產(chǎn)品IphoneX會配備這種攝像頭,提供給用戶VR使用體驗和增強人臉識別FaceId的準確度。
深度攝像頭在定位方面主要是深度SLAM方案。 相對于單目SLAM, 因為每個像素有了深度信息, 這樣尺度問題就不存在了,不需要運動主體做平移運動來做初始化動作。有了深度信息,理論上建圖是可以做稠密圖,可以做三維建模。
它的缺點也很明顯,除了跟2D一樣算法計算量偏大,紅外主動光非常容易受到其它強光的影響, 這樣在室外基本就退化成一個2D攝像頭了。 對于一些透光介質(zhì),如玻璃,深度信息是無法得到的。
雙目攝像頭
兩個攝像頭,光心距離固定。雙目攝像頭通過視差,可以間接得到兩個攝像頭共視像素的深度信息。雙目攝像頭比較像人的眼睛, 人可以通過雙眼,直接估計出眼前物體的相對遠近。對于計算機來說,通過同一時刻兩個攝像頭分別拍的兩幀圖像,根據(jù)視差的幾何關(guān)系,可以算出像素的深度,達到跟主動光深度攝像頭一樣的效果。
相比主動光深度攝像頭, 它的優(yōu)點是受環(huán)境光線的影響比較小,可以在室外自動駕駛汽車上應(yīng)用。缺點是像素的深度信息不能直接獲取,需要不小的運算量通過視差幾何關(guān)系計算獲得。
雙目攝像頭本質(zhì)上就是一個深度攝像頭,只是獲取深度信息的手段不同,所以定位也可以應(yīng)用深度SLAM方案。
激光雷達
激光雷達是目前定位選擇的主流傳感器,帶自主導(dǎo)航的室內(nèi)掃地機的商用產(chǎn)品,一般都會配備激光雷達。在自動駕駛領(lǐng)域,高精地圖的采集及定位應(yīng)用, 使用的是多線激光雷達方案。
激光雷達分為單線和多線, 單線雷達只能掃描一個平面的障礙,所以直接出來的是一個2D地圖。 多線雷達(有16線,32線,64線)產(chǎn)品,通過多個掃描面的組合,可以給出豐富的環(huán)境3D點云。
激光雷達定位, 主要是激光SLAM算法,跟視覺SLAM一樣,也分前端雷達里程計和后端回環(huán)檢測矯正。
激光SLAM對CPU的消耗,是遠遠低于視覺SLAM的,魯棒性更好,更加穩(wěn)定。以2D激光SLAM為例,它可以在任意時刻得到某個特定高度水平面的2D障礙輪廓,所以在做前端里程計的時候,連續(xù)兩幀,計算局部的地圖輪廓匹配,可以使用相對比較少的計算量獲取相對位移。
激光掃描出的點有準確度很高的深度信息,這樣在做后端回環(huán)優(yōu)化的時候,不需要優(yōu)化某個位姿下的觀測值(掃描的點云), 而直接優(yōu)化位姿。
對于視覺SLAM, 不論是單目SLAM 通過三角測量算出的點云深度,還是深度SLAM中獲取到的點深度, 有很大噪聲在里面,所以優(yōu)化要對觀測點和位姿一起優(yōu)化調(diào)整。
激光做定位的缺點是受環(huán)境如雨、霧的影響比較大,對于透明介質(zhì)也無法得到準確的深度信息。
目前定位應(yīng)用的主要方式
上面我們描述了用于定位的主流傳感器,可以看到單一傳感器在解決定位問題上都有自己的優(yōu)缺點。在實際應(yīng)用中,需要結(jié)合多個傳感器聯(lián)合解決定位問題。 以下針對幾個典型場景,描述一下多傳感器融合的情況:
1. 自動駕駛 GPS+IMU+里程計
GPS 給出的全局錨定,可以消除累計誤差問題,不過它的更新頻率低,并且信號容易被遮擋。 IMU和輪盤里程計更新頻率高,不過有累計誤差問題, 最容易想到的是收到GPS定位,使用GPS位置信息,誤差就是GPS的精度,在下一次收到GPS定位間隔中,使用IMU(角度累加)和里程計(位移累加)進行位姿累加,中間的位姿誤差是初值GPS定位誤差和中間累加誤差的積累。
改進的方法是使用非線性卡爾曼濾波,在收到GPS位置信息的時候,要結(jié)合IMU和里程計的積累預(yù)測值和GPS觀測值,算出一個誤差收斂的更優(yōu)的位置估算值。
2. 自動駕駛 GPS+ 多線雷達+高精地圖匹配
GPS 給出全局錨定,中間使用雷達SLAM 前端里程計做累加,可以配合高精地圖的圖匹配,做類似后端回環(huán)優(yōu)化的方式,將GPS、激光雷達及已知地圖進行融合定位。
3. 自動駕駛多對雙目視覺攝像頭SLAM方案
這種方案成本低,更加考究的是算法,有很少的自動駕駛公司宣稱自己主攻純視覺方案,現(xiàn)在不是主流。
4. 單線雷達+IMU+里程計融合
滿足室內(nèi)定位的要求, 個人理解可以分為淺融合和深融合。 淺融合使用IMU+里程計的累加值作為推算雷達里程計的初值,在這個初值基礎(chǔ)上進行連續(xù)幀的掃描匹配,會大大加速匹配速度。 深融合會結(jié)合IMU和里程計的值作為約束條件,應(yīng)用到后端回環(huán)約束矯正中。
5. 深度攝像頭+ IMU 融合
目前在手機的VR應(yīng)用中已經(jīng)初見端倪,如蘋果公司的IphoneX以及Google已經(jīng)發(fā)布一段時間的Tango項目。 深度視覺SLAM 與 IMU 進行深淺融合,達到一個比較不錯的VR體驗。
以上組合只是市面上能看到的一些產(chǎn)品采用的定位手段,當然還可以結(jié)合單目SLAM, 雙目SLAM與一些內(nèi)傳感器,進行隨意組合。融合方案的定位精度會優(yōu)于單一傳感器,一個傳感器在某種環(huán)境失效,補充傳感器能頂上。
總結(jié)
以上,通過對定位的概念、方法、要解決的問題及常用的手段做了介紹,希望大家讀完能有所收獲。
-
機器人
+關(guān)注
關(guān)注
210文章
28103瀏覽量
205852 -
自動駕駛
+關(guān)注
關(guān)注
782文章
13621瀏覽量
165951
原文標題:知薦 | 自動駕駛 vs 機器人定位技術(shù)
文章出處:【微信號:jingzhenglizixun,微信公眾號:機器人博覽】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論