SLAM是機(jī)器人、自動駕駛等應(yīng)用重要的基礎(chǔ)技術(shù),如果離開了SLAM,相當(dāng)于人類失去了雙眼。SLAM可分為激光SLAM和視覺SLAM,視覺SLAM主要是基于相機(jī)來完成環(huán)境的感知工作,相對而言,相機(jī)成本較低,容易放到商品硬件上,且圖像信息豐富,因此視覺SLAM也備受關(guān)注。本文主要是對之前關(guān)于視覺SLAM方案和硬件選型調(diào)研的總結(jié),文中有關(guān)的視頻是從youtube上收集的,上傳到了百度網(wǎng)盤,有需自取。
01
SLAM的引入
1.1定義
SLAM 是 Simultaneous Localization and Mapping 的縮寫,中文譯作“同時定位與地圖構(gòu)建”。它是指搭載特定傳感器的主體,在沒有環(huán)境先驗信息的情況下,于運(yùn)動過程中建立環(huán)境的模型,同時估計自己的運(yùn)動。如果這里的傳感器主要為相機(jī),那就稱為“視覺 SLAM”。
1.2開發(fā)背景
圖1-1 SLAM中建圖的分類與作用
引入SLAM的主要目的如下:
1)建圖。使用SLAM可在傳感器具有良好表現(xiàn)的環(huán)境下建立精度較高的全局地圖,建立好的地圖會為后面的定位、導(dǎo)航等功能提供服務(wù)。
2)定位。視覺SLAM中可通過幀間數(shù)據(jù)匹配計算相機(jī)的相對變換,對應(yīng)的就是機(jī)器人的位姿信息,不過該計算結(jié)果中存在累計誤差的影響;利用SLAM建立的全局地圖,通過相機(jī)采集到的環(huán)境信息與地圖進(jìn)行匹配可以減小累積誤差的影響,獲得更加精準(zhǔn)的機(jī)器人位姿。
3)導(dǎo)航。如果我們建立的地圖中包含了“哪些地方可以通過,哪些地方不能通過”的信息,那么我們可以以此實現(xiàn)機(jī)器人在地圖中從某一起點(diǎn)到某一終點(diǎn)的路徑規(guī)劃與跟蹤,并能夠?qū)Φ貓D中固定障礙物實現(xiàn)避障。但這對我們能夠建立的地圖有要求,需要是“稠密”地圖。
02
視覺SLAM
2.1 經(jīng)典視覺SLAM框架
SLAM至今已歷經(jīng)三十多年的研究,這里給出經(jīng)典視覺SLAM框架,這個框架本身及其包含的算法已經(jīng)基本定型,并且已經(jīng)在許多視覺程序庫和機(jī)器人程序庫中提供。
圖2-1 經(jīng)典視覺SLAM框架
我們把整個視覺 SLAM 流程分為以下幾步:
1)傳感器信息讀取。在視覺 SLAM 中主要為相機(jī)圖像信息的讀取和預(yù)處理。如果在機(jī)器人中,還可能有碼盤、慣性傳感器等信息的讀取和同步。
2)視覺里程計 (Visual Odometry, VO)。視覺里程計任務(wù)是估算相鄰圖像間相機(jī)的運(yùn)動,以及局部地圖的樣子,VO 又稱為前端(Front End)。
3)后端優(yōu)化(Optimization)。后端接受不同時刻視覺里程計測量的相機(jī)位姿,以及回環(huán)檢測的信息,對它們進(jìn)行優(yōu)化,得到全局一致的軌跡和地圖。由于接在 VO 之后,又稱為后端(Back End)。
4)回環(huán)檢測(Loop Closing)?;丨h(huán)檢測判斷機(jī)器人是否曾經(jīng)到達(dá)過先前的位置。如果檢測到回環(huán),它會把信息提供給后端進(jìn)行處理。
5)建圖(Mapping)。它根據(jù)估計的軌跡,建立與任務(wù)要求對應(yīng)的地圖。
某些使用場合中,我們只截取SLAM的部分功能應(yīng)用到實際場景中。舉例來說只使用VO部分我們可以得到連續(xù)的相機(jī)相對運(yùn)動信息,雖然該運(yùn)動信息存在累計誤差,但應(yīng)用中對此要求不高甚至不做要求,譬如VR頭顯中計算頭顯設(shè)備運(yùn)動時的位姿。
不過一般在機(jī)器人應(yīng)用場景中,個人認(rèn)為建圖功能也是不可或缺的。因為前端包括后端優(yōu)化得到的運(yùn)動信息始終包含累積誤差,該累積誤差在SLAM中只能通過回環(huán)檢測(機(jī)器人回到某一處曾經(jīng)經(jīng)過的地方且系統(tǒng)識別出來)或者與事先建立好的具有較高精度的全局地圖匹配來消除。但是機(jī)器人在實際運(yùn)動中,不能保證全局路徑一定會有重疊處,也就是說在SLAM計算中很可能出現(xiàn)不存在回環(huán)的情況,此時累積誤差只能通過與全局地圖匹配來消除,因此SLAM的建圖功能也不可或缺。
圖2-2 回環(huán)檢測消除累積誤差
這一點(diǎn)在VINS開源項目(香港科技大學(xué)團(tuán)隊基于單目+IMU開發(fā)的開源SLAM方案)中的測試視頻(見“視頻/VINS/[Open Source] VINS-Mono_ Monocular Visual-Inertial System in EuRoC MAV Dataset (MH_05 V1_03).mp4”)中也有體現(xiàn)。在回環(huán)檢測前,SLAM計算得到的位姿與真實位姿之間已經(jīng)產(chǎn)生了很大的偏差,如圖2-3所示;該偏差只有在相機(jī)回到了曾經(jīng)經(jīng)過的地方且SLAM成功執(zhí)行了回環(huán)檢測后才得到了消除,如圖2-4所示。
圖2-3 未進(jìn)行回環(huán)檢測前的位姿累積誤差
圖2-4 回環(huán)檢測消除累計誤差
2.2視覺SLAM方案的分類
視覺SLAM方案可按照傳感器的不同(單目、雙目、RGBD、與IMU的組合等)、前端方法的不同(主要分為直接法和特征點(diǎn)法)、后端優(yōu)化方案的不同(濾波或者非線性優(yōu)化)、生成地圖形式的不同(稀疏地圖、稠密地圖等)具有不同的劃分。這里主要以傳感器的不同對slam方案進(jìn)行簡單的介紹。
1)單目slam。只使用一個攝像頭采集信息,在尺度完成初始化的情況下(即相機(jī)初始階段進(jìn)行了一段位移且確定了該段位移的實際大小作為參考),能夠完成連續(xù)圖像間相機(jī)位姿的計算與建圖。優(yōu)點(diǎn)在于設(shè)備簡單,成本低。缺點(diǎn)在于存在尺度漂移現(xiàn)象;圖像的深度信息只能通過三角測量計算得到,對環(huán)境適應(yīng)性差;在相機(jī)位移較小時計算誤差較大,建圖精度不高。
2)雙目slam。使用雙目相機(jī)采集信息,雙目相機(jī)可以通過立體視覺原理計算得到像素深度,這樣就不存在單目slam中深度未知的情況。優(yōu)點(diǎn)在于對環(huán)境的適應(yīng)性要高于單目slam,且能夠計算得到像素真實深度;缺點(diǎn)在于像素深度計算量較大,一般通過FPGA或者GPU加速實現(xiàn)實時計算輸出。
3)RGBD SLAM。RGBD相機(jī)是指能夠同時輸出RGB圖像和對應(yīng)的深度圖的相機(jī),其測量像素深度不再通過耗時的被動雙目匹配計算,而是通過激光散斑增加圖像紋理加速計算或者硬件測量(結(jié)構(gòu)光、TOF等)實現(xiàn)。因此它可以看做減小了計算量的雙目SLAM,但是RGBD相機(jī)普遍在室外表現(xiàn)效果不佳,更多用于室內(nèi)環(huán)境。
4)近年來有學(xué)者提出單目/雙目+IMU的slam方案,其中IMU主要起到的作用包括(1)解決單目slam的初始化尺度問題(2)追蹤中提供較好的初始位姿(3)提供重力方向(4)提供一個時間誤差項以供優(yōu)化。理論上來說IMU提供了冗余的運(yùn)動信息,通過數(shù)據(jù)融合可以得到更加精確的運(yùn)動估計。
從實現(xiàn)難度上來看:單目SLAM>雙目SLAM>RGBD SLAM。
2.3 開源視覺SLAM方案匯總
目前比較流行的開源視覺SLAM方案如表2-1所示:
表2-1 開源SLAM方案匯總
03
視覺SLAM設(shè)備選型
3.1 設(shè)備選型的重要性說了這么多,終于到了設(shè)備選型這一部分。設(shè)備選型的重要性不言而喻,畢竟“好模型架不住壞數(shù)據(jù)”,SLAM模型建立得再好,如果設(shè)備采集的數(shù)據(jù)本身誤差過大,計算結(jié)果必定也不夠理想。先以VINS項目為例,根據(jù)論文內(nèi)容他們的設(shè)備型號和具體信息如下。 相機(jī)模塊:單目相機(jī),型號為MatrixVision的mvBlueFOX-MLC200w,具有全局快門;cmos型號為MT9V034,單色,分辨率為752X480,幀率20Hz IMU:該模塊使用的是大疆的集成飛控模塊A3的內(nèi)置IMU模塊,芯片型號為ADXL278和ADXRS290(都為工業(yè)級IMU芯片);可以確定A3內(nèi)置對IMU的校準(zhǔn)去躁等處理算法。
圖3-1 VINS中設(shè)備型號 由此看來VINS選用的硬件是具有一定要求的,其采集數(shù)據(jù)的精度也對SLAM算法最終的效果產(chǎn)生正向作用。所以如果我們選用了精度沒那么高的消費(fèi)級IMU配合單目相機(jī)采集數(shù)據(jù)時,VINS的輸出結(jié)果就不一定能夠達(dá)到論文中的精度了。3.2 設(shè)備類型選擇我們的項目中工作環(huán)境為室外,對傳感器選型提出了較高要求。以RGBD相機(jī)為例,很多基于結(jié)構(gòu)光或者TOF方案的深度攝像頭在室外表現(xiàn)不佳,主要原因是室外自然光的影響。個人初步傾向于選用雙目或者RGBD(雙目某些情況下可視為RGBD)+IMU的方案,主要理由如下: 1)雙目/RGBD+IMU的硬件,可在此基礎(chǔ)上嘗試基于單目/雙目/RGBD/單目+IMU/雙目+IMU等多種開源SLAM方案;反之單目+IMU的設(shè)備對開源方案的限制較大(只能是單目/單目+IMU) 2)單目SLAM在建圖方面,尤其是深度估計方面,對場景適應(yīng)性不好且精度較差。雙目/RGBD因為可以計算得到深度,在建圖方面相對具有優(yōu)勢,更容易建立“稠密”地圖 3)SLAM定位實現(xiàn)中,基于單目的方案其計算量也要比基于雙目/RGBD要大,且因為引入了三角測量部分,對于環(huán)境適應(yīng)性較差 所以在選型方面,我主要聚焦在雙目/RGBD類型;同時為了加快開發(fā)進(jìn)程,若選擇能夠提供開發(fā)SDK等工具的廠家,可以省去對于相機(jī)的標(biāo)定、數(shù)據(jù)同步等開發(fā)工作。 經(jīng)過一些篩選后,個人列出如下備選設(shè)備。有關(guān)設(shè)備的參數(shù)信息在下方鏈接中都有詳細(xì)說明,我只列出一些重要參數(shù)。3.2.1 ZED
圖3-2 zed雙目相機(jī) 1)官網(wǎng):https://www.stereolabs.com/zed/ 2)基本參數(shù):基于雙目原理匹配計算深度信息,分辨率最高可達(dá)2.2K@15fps(4416X1242);Field of View: 90°(H) X 60°(V) X 110°(D);室內(nèi)外最遠(yuǎn)20m深度感知;使用GPU加速運(yùn)算(支持TX1、TX2) 3)SDK:提供SDK,支持包括Windows、Linux、ROS等開發(fā)平臺;使用SDK能夠獲得雙目圖像和深度圖像、機(jī)器人位姿跟蹤(官網(wǎng)稱頻率可達(dá)100Hz,位置精度達(dá)到1mm,角度精度達(dá)到0.1°)、3D重建等功能 4)應(yīng)用:在網(wǎng)上搜到一些評測和應(yīng)用視頻,主要內(nèi)容總結(jié)如下。 A.視頻1(見“視頻/zed/Realtime depth test using ZED stereo camera.mp4”)表明zed在深度計算方面室外表現(xiàn)較好,距離方面應(yīng)該可以達(dá)15m以上;測距精度方面官方未給出參數(shù),從雙目原理上來說深度測距精度與測量距離的平方成正比,僅從zed輸出的深度圖上來看,深度圖數(shù)據(jù)比較連續(xù),未出現(xiàn)明顯的誤差情況。
圖3-3 zed在室外測量深度的表現(xiàn) B. 3D重建也是SLAM的一種應(yīng)用,使用SLAM輸出的全局世界坐標(biāo)結(jié)合RGB信息可實現(xiàn)真實世界中場景的三維繪制,所以3D重建的效果好壞能夠在一定程度上代表設(shè)備的深度計算精度與SLAM效果。從官方視頻和youtube上視頻(見“視頻/zed/Introducing ZED for Live 3D Mapping.mp4”,“視頻/zed/Outdoor Test for Graph-based RGB-D SLAM using ZED camera on UGV and UAV.mp4”,“視頻/zed/ZEDfu - Real-time 3D Mapping using ZED stereo camera.mp4”)的測試效果來看,3D重建效果還是不錯的,物體輪廓比較連續(xù),未出現(xiàn)明顯的邊界不重合的情況。
圖3-4 使用zed進(jìn)行三維重建 C.有研究人員在室外汽車上使用zed采集信息接入ORB-SLAM2計算車輛的位姿(見“視頻/zed/Evaluation of ORB-SLAM2 in outdoor urban scenes using ZED stereo camera.mp4”)。測量結(jié)果表明(1)在停車場環(huán)境和街道環(huán)境下大都能夠?qū)崿F(xiàn)閉環(huán)檢測(2)非極端情況下相機(jī)采集的圖像滿足特征提取需求(3)車速越快對于相機(jī)幀率要求越高,zed在WVGA分辨率下幀率可到100Hz,滿足了圖像采集頻率要求。
圖3-5 使用zed接入ORB_SLAM2進(jìn)行室外定位 5)價格:國外官網(wǎng)上為$449,國內(nèi)淘寶上價格3200-3800元不等3.2.2 Intel D415/D435系列
圖3-6 Intel D415/D435 1)官網(wǎng):https://software.intel.com/zh-cn/realsense/d400 2)基本參數(shù):基于主動紅外測距(激光散斑增加紋理后立體匹配測距);RGB分辨率和幀率為1920X1080@30fps;內(nèi)置視覺處理器可直接輸出計算深度,深度流輸出分辨率和幀率為1280X720@90fps;室內(nèi)外檢測范圍為0.16m-10m;D415為卷簾快門,D435為全局快門
圖3-7 D415/D435詳細(xì)參數(shù)對比 3)SDK:支持Linux/windows/Mac OS,可獲得彩色圖像與深度圖像,設(shè)置相機(jī)參數(shù)等 4)應(yīng)用:根據(jù)網(wǎng)上相關(guān)測評視頻整理如下 A.有人對比了D415和D435在室內(nèi)的表現(xiàn)(見“視頻/Intel/Intel RealSense D435 vs D415.mp4”),攝像頭如圖3-8所示放置。分別比較了彩色圖、遠(yuǎn)距離深度圖、近距離深度圖的效果,具體如圖3-9所示。結(jié)果表明D435在遠(yuǎn)距離深度圖上效果要優(yōu)于D415,后者出現(xiàn)較大面積的空洞(計算不出深度信息)。不過由于兩個攝像頭的測量環(huán)境并不完全一致,同時存在發(fā)射的紅外光互相干涉影響的可能性,該結(jié)論是否成立不予保證。
圖3-8 D435與D415對比
圖 3-9 D435(左邊)與D415(右邊)室內(nèi)表現(xiàn)效果對比 B.有人在室外街道中使用D415觀察其深度信息(見“視頻/Intel/Review on Intel Realsense D415 RGBD Camera Part 2_ Outdoor test.mp4”),具體效果如圖3-10所示。結(jié)果表明: (1)室外D415的深度檢測距離應(yīng)該可以達(dá)到10m (2)相對于室內(nèi),室外的深度圖噪點(diǎn)較多,這應(yīng)該是自然光對于D415發(fā)射的紅外光的影響,造成圖像匹配失敗或者誤匹配
圖3-10 D415在室外的深度測距表現(xiàn) C.有人將D435固定在汽車上查看道路的深度信息(見“視頻/Intel/Realsense D435 - Outdoor test on road.mp4”),這里截取幾幅圖像如圖3-11所示??梢缘贸觯?(1)D435在室外能夠獲得比較豐富的深度信息 (2)D435深度計算錯誤/失敗的情況多于zed 5)價格:官網(wǎng)上D435為$179.00,國內(nèi)價格¥1500不等;官網(wǎng)上D415為$149.00,國內(nèi)淘寶價格¥1300不等
圖3-11 D435在室外深度測距表現(xiàn)3.2.3小覓雙目攝像頭
圖3-12 小覓雙目攝像頭外觀 1)官網(wǎng)鏈接 http://www.myntai.com/camera 2)基本參數(shù):基于雙目測距,內(nèi)置6軸IMU(ICM2060,消費(fèi)級IMU)。有常規(guī)版(即被動雙目)和IR增強(qiáng)版(原理應(yīng)該是激光散斑增加紋理后立體匹配測距),黑白CMOS,分辨率752X480@50FPS。
圖3-13 小覓雙目攝像頭詳細(xì)參數(shù) 3)SDK:支持Windows、Linux、TX1、TX2;基于CPU/GPU計算深度信息;提供接入了OKVIS、ORB-SLAM2、VINS、VIORB(都是開源SLAM工程)的sample 4)應(yīng)用:目前尚未找到相關(guān)評測信息,不過據(jù)知乎上一些問題的回答,該模塊的售后支持不錯。深度圖效果方面,只有天貓旗艦店上提供的一小段室內(nèi)測試視頻(見“視頻/MYNT-EYE/室內(nèi)景深測試.mp4”),截圖如圖3-14所示。個人感覺深度效果計算較差,有較多的計算錯誤點(diǎn)出現(xiàn);無法判斷深度范圍大小能否達(dá)到宣稱的20m。
圖3-14 MYNT-EYE室內(nèi)深度測試效果 5)價格:天貓¥1999.00 現(xiàn)在對以上幾款設(shè)備進(jìn)行一個信息的對比整理,如表3-1所示。
表3-1 三款設(shè)備主要信息對比3.3 個人意見整體看來,個人首先推薦zed,其次推薦DM435和MYNT-EYE。若選用zed或者D435后準(zhǔn)備測試融合了IMU的開源SLAM方案時,可使用IMU模塊采集相關(guān)信息,之后自己做數(shù)據(jù)同步。
責(zé)任編輯:lq
-
傳感器
+關(guān)注
關(guān)注
2541文章
49967瀏覽量
747582 -
機(jī)器人
+關(guān)注
關(guān)注
210文章
27842瀏覽量
204627 -
SLAM
+關(guān)注
關(guān)注
23文章
405瀏覽量
31712
原文標(biāo)題:超全總結(jié)!視覺SLAM方案整理及硬件選型(附項目地址)
文章出處:【微信號:vision263com,微信公眾號:新機(jī)器視覺】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論