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