王 晉
(山西大眾電子信息產(chǎn)業(yè)集團(tuán)有限公司,山西 太原 030024)
隨著科技的進(jìn)步和多學(xué)科的交叉融合,人工智能領(lǐng)域已經(jīng)進(jìn)入了飛速發(fā)展的時(shí)代,其中,包含環(huán)境識(shí)別與定位建圖、自主導(dǎo)航與路徑規(guī)劃、行為控制與運(yùn)動(dòng)執(zhí)行等多種功能的無(wú)人駕駛技術(shù),成為人工智能領(lǐng)域的研究熱點(diǎn)[1]。無(wú)人駕駛技術(shù)中,要想實(shí)現(xiàn)自主導(dǎo)航,首先要明確無(wú)人車自身以及周圍障礙物的狀態(tài)和位置,這就需要借助傳感器的感知能力獲得目標(biāo)環(huán)境的三維空間模型,從而實(shí)現(xiàn)無(wú)人車的環(huán)境感知、定位建圖的功能。常用的傳感器主要有激光雷達(dá)、毫米波雷達(dá)、攝像頭等。其中,激光雷達(dá)是基于激光測(cè)距原理,直接得到與周圍目標(biāo)的距離和角度,獲得大量的點(diǎn)云數(shù)據(jù),從而對(duì)周圍空間環(huán)境進(jìn)行描述,生成地圖。激光雷達(dá)具有精度高、受光照強(qiáng)度等環(huán)境因素影響較小的優(yōu)點(diǎn)[2],適合室外環(huán)境的建圖。
跟室內(nèi)環(huán)境構(gòu)建三維點(diǎn)云地圖相比,室外環(huán)境主要有以下幾個(gè)技術(shù)難點(diǎn):對(duì)傳感器要求更高,室內(nèi)定位多采用里程計(jì)融合慣性測(cè)量單元的方法,在短距離內(nèi)可以忽略累計(jì)誤差的影響,但室外空間大、距離遠(yuǎn),需使用NDT算法,結(jié)合GPS或RTK實(shí)現(xiàn)高精度定位[3];室內(nèi)環(huán)境距離短、多為靜態(tài),可用三角測(cè)距法,室外測(cè)距范圍大、多為動(dòng)態(tài),要用飛行時(shí)間測(cè)量法,且反射信號(hào)是在不同時(shí)間接收的,加上激光雷達(dá)的運(yùn)動(dòng),點(diǎn)云會(huì)出現(xiàn)變形[4];室內(nèi)環(huán)境特征點(diǎn)更穩(wěn)定、更易提取,室外環(huán)境存在不固定性、特征匹配難度變高[5-6];點(diǎn)云數(shù)據(jù)匹配算法不同,針對(duì)室外環(huán)境產(chǎn)生的大量點(diǎn)云數(shù)據(jù),需要選用合適的算法來(lái)精確地匹配點(diǎn)云、提高匹配效率[7]。Autoware是世界上第一款用于自動(dòng)駕駛領(lǐng)域的“一體化”開(kāi)源框架,包含建圖、定位、感知、規(guī)劃和運(yùn)動(dòng)控制等自動(dòng)駕駛的關(guān)鍵技術(shù),依賴于ROS(機(jī)器人操作系統(tǒng))可提供豐富的開(kāi)發(fā)和使用資源。本文中,利用五菱迷你電動(dòng)車,基于鐳神16線激光雷達(dá),借助Autoware軟件,設(shè)計(jì)和實(shí)現(xiàn)了室外封閉小區(qū)域的三維點(diǎn)云地圖的構(gòu)建。
本文中激光雷達(dá)選用的是深圳市鐳神智能系統(tǒng)有限公司的鐳神多線激光雷達(dá)C16。該雷達(dá)外殼內(nèi),安裝有16對(duì)固定在軸承上的激光發(fā)射與接收裝置,通過(guò)內(nèi)部電機(jī)(轉(zhuǎn)速為5、10或20 rpm)沿順時(shí)針旋轉(zhuǎn),進(jìn)行360°全景掃描,生成目標(biāo)環(huán)境的三維點(diǎn)云地圖。激光雷達(dá)外形圖如圖1所示。
激光雷達(dá)安裝由4個(gè)安裝孔定位來(lái)實(shí)現(xiàn),數(shù)據(jù)線接口位置為規(guī)定的水平角度180°。采用鋁板將激光雷達(dá)固定在車頂,如圖2所示。設(shè)備供電電源推薦輸入電壓使用12 V DC。
圖1 激光雷達(dá)外形圖 圖2 激光雷達(dá)上裝圖
激光雷達(dá)測(cè)距原理為飛行時(shí)間測(cè)量法:在每一次測(cè)距時(shí),激光雷達(dá)內(nèi)部的發(fā)射器發(fā)出激光脈沖,內(nèi)部定時(shí)器開(kāi)始計(jì)時(shí)(設(shè)為t1),當(dāng)光波碰到物體部分能量被反射回來(lái),激光接收器收到返回的激光信號(hào)時(shí),停止內(nèi)部定時(shí)器計(jì)時(shí)(設(shè)為t2)。
距離=光速×(t2-t1)/2
.
該系列激光雷達(dá)測(cè)距精度為±3 cm,最小測(cè)程0.5 m,最大測(cè)程150 m(反射率為70%)。
激光雷達(dá)與車體為剛性連接,兩者之間的相對(duì)位置和姿態(tài)固定不變。為了建立激光雷達(dá)與車體之間的相對(duì)坐標(biāo)關(guān)系,需要對(duì)激光雷達(dá)的安裝進(jìn)行標(biāo)定,使激光雷達(dá)數(shù)據(jù)從激光雷達(dá)的坐標(biāo)系轉(zhuǎn)換至車體坐標(biāo)系上。
激光雷達(dá)坐標(biāo)系與車體坐標(biāo)系的相對(duì)關(guān)系包括旋轉(zhuǎn)角度與平移位置的差值,其中平移位置差值可通過(guò)激光測(cè)距儀等測(cè)量工具來(lái)測(cè)得。旋轉(zhuǎn)角度差值分為3個(gè)方向的角度差,即俯仰角(pitch)、翻滾角(roll)和航向角(yaw)。
本文中使用的激光雷達(dá)自帶內(nèi)部定位孔,將激光雷達(dá)通過(guò)定位銷上裝到車頂后,即可實(shí)現(xiàn)激光雷達(dá)水平方向和垂直方向的標(biāo)定。使用附帶的傾角傳感器進(jìn)行水平x軸和y軸方向上的角度測(cè)量,可以檢測(cè)和驗(yàn)證標(biāo)定結(jié)果。激光雷達(dá)最終的標(biāo)定位置為x:0.7;y:0;z:1.8;yaw、pitch、roll均為0。
激光雷達(dá)對(duì)外通信接口為以太網(wǎng),與電腦之間使用UDP協(xié)議,協(xié)議包均為1248字節(jié)定長(zhǎng),與電腦的通信協(xié)議主要分三類:主數(shù)據(jù)流輸出協(xié)議、設(shè)備信息輸出協(xié)議、用戶權(quán)限寫(xiě)入?yún)f(xié)議。
其中,主數(shù)據(jù)流輸出協(xié)議是將激光雷達(dá)掃描出來(lái)的距離、角度、反射率等信息封裝成包輸出給電腦;設(shè)備信息輸出協(xié)議用來(lái)監(jiān)聽(tīng)此設(shè)備當(dāng)前狀態(tài)的各種配置信息;用戶權(quán)限寫(xiě)入?yún)f(xié)議中,用戶可以根據(jù)自己需求,重新修改設(shè)備的某些配置參數(shù)。
激光雷達(dá)的掃描測(cè)距數(shù)據(jù)可通過(guò)其提供的UART或USB接口來(lái)傳輸。數(shù)據(jù)信息包括激光回波的反射率值,實(shí)測(cè)距離值,角度值,時(shí)間戳。一個(gè)完整的主數(shù)據(jù)流輸出協(xié)議的數(shù)據(jù)格式結(jié)構(gòu)包括幀頭、子幀、幀尾,每個(gè)數(shù)據(jù)包長(zhǎng)1248字節(jié),其中42字節(jié)為UPD封包所用,1200字節(jié)子幀數(shù)據(jù)包區(qū)間,4字節(jié)時(shí)間戳,2字節(jié)幀尾。
本文中,基于鐳神C16激光雷達(dá)對(duì)室外封閉小區(qū)域的環(huán)境構(gòu)建三維點(diǎn)云地圖時(shí),需要借助Autoware軟件。其默認(rèn)的激光雷達(dá)為velodyne 16線激光雷達(dá),故使用其他品牌的激光雷達(dá)時(shí),需在對(duì)應(yīng)的程序文件中更改話題名稱和點(diǎn)云的坐標(biāo)系。
首先運(yùn)行Autoware軟件,然后啟動(dòng)激光雷達(dá)節(jié)點(diǎn)。
在Autoware界面,點(diǎn)擊ROSBAG按鈕,在彈出的對(duì)話框中點(diǎn)擊Refresh按鈕刷新話題列表,勾選/points_raw。點(diǎn)擊Start按鈕,開(kāi)始錄制數(shù)據(jù)。駕駛汽車在目標(biāo)區(qū)域內(nèi)走完一圈后,點(diǎn)擊Stop按鈕,停止錄制數(shù)據(jù)。
構(gòu)建三維點(diǎn)云地圖時(shí),需要完成world(世界坐標(biāo)系)到map(地圖坐標(biāo)系)、map到base_link(車體坐標(biāo)系)、base_link到velodyne(傳感器坐標(biāo)系)的坐標(biāo)系轉(zhuǎn)換。坐標(biāo)系轉(zhuǎn)換關(guān)系如圖3所示。
圖3 坐標(biāo)系轉(zhuǎn)換關(guān)系圖
world到map、base_link到velodyne的坐標(biāo)系轉(zhuǎn)換用TF工具即可,它們都是固定的。前者是在Autoware界面,選擇Map頁(yè)面,點(diǎn)擊TF右側(cè)的Ref按鈕,加載對(duì)應(yīng)的launch文件,點(diǎn)擊TF按鈕。后者是選擇Setup頁(yè)面,點(diǎn)選Velodyne,填寫(xiě)激光雷達(dá)標(biāo)定的x、y、z、yaw、pitch、roll數(shù)值,點(diǎn)擊TF按鈕,點(diǎn)擊Vehicle Model按鈕(其后為空表示加載默認(rèn)模型)。以上坐標(biāo)系轉(zhuǎn)換如圖4(a)、(b)所示。
圖4 坐標(biāo)系轉(zhuǎn)換
map到base_link的坐標(biāo)系轉(zhuǎn)換,選擇Computing頁(yè)面,勾選ndt_mapping,如圖5所示。
坐標(biāo)變換設(shè)置完成后,選擇Simulation頁(yè)面,點(diǎn)擊Ref按鈕,加載錄制好的bag文件,將Start Time設(shè)為0,點(diǎn)擊Play按鈕播放數(shù)據(jù)進(jìn)行建圖。在建圖過(guò)程中,查看終端輸出信息,顯示Process/Input(已處理點(diǎn)云幀數(shù)/加載點(diǎn)云幀數(shù))的數(shù)值前后相等時(shí),表示數(shù)據(jù)處理完成。
圖5 map到base_link的坐標(biāo)系轉(zhuǎn)換
當(dāng)數(shù)據(jù)包播放結(jié)束后,建圖完成,選擇Computing頁(yè)面,點(diǎn)擊ndt_mapping右側(cè)的app按鈕,點(diǎn)擊Ref按鈕選擇地圖保存路徑,點(diǎn)擊PCD OUTPUT按鈕,導(dǎo)出點(diǎn)云地圖。
選擇Map頁(yè)面,點(diǎn)擊Point Cloud右側(cè)的Ref按鈕,加載保存的.pcd文件,點(diǎn)擊Point Cloud按鈕,進(jìn)度條顯示OK,加載完畢。打開(kāi)Rviz查看點(diǎn)云地圖。
構(gòu)建點(diǎn)云地圖的過(guò)程,是將激光雷達(dá)掃描到的一幀幀點(diǎn)云數(shù)據(jù)進(jìn)行匹配和拼接的過(guò)程。
本文中,使用NDT算法(ndt_mapping)實(shí)現(xiàn)精確地匹配點(diǎn)云。NDT最初在2003年提出,只用作2D點(diǎn)云匹配;在2009年3D NDT被提出,通過(guò)一系列局部概率密度函數(shù),將點(diǎn)云轉(zhuǎn)化為一種平滑的曲面表達(dá)方式。Autoware軟件使用3D NDT算法對(duì)點(diǎn)云數(shù)據(jù)進(jìn)行一幀幀匹配,然后直接將配準(zhǔn)后的點(diǎn)云疊加在一起,從而構(gòu)成三維點(diǎn)云地圖。該方式能夠忽略單幀點(diǎn)云配準(zhǔn)誤差,依賴NDT匹配時(shí)對(duì)噪聲不敏感的特性消除累積誤差。
NDT算法使用概率分布的概念來(lái)對(duì)點(diǎn)云的形狀進(jìn)行描述,充分考慮了點(diǎn)云的幾何特性,能夠有效地提高匹配效率。然而,因?yàn)樵撍惴ㄊ腔诜蔷€性優(yōu)化的,故在遇到誤差較大的初值時(shí),極易落入局部極值中。此外,每個(gè)柵格只在其范圍內(nèi)對(duì)局部概率有效,選擇的柵格尺寸過(guò)小會(huì)導(dǎo)致算法對(duì)于初值的敏感度增加,而選擇柵格的尺寸過(guò)大會(huì)使稀疏點(diǎn)云無(wú)法配準(zhǔn)。可以對(duì)其進(jìn)行一定的約束,如回環(huán)檢測(cè)、使用RTK或者組合導(dǎo)航來(lái)進(jìn)行后端的優(yōu)化,進(jìn)一步提高匹配準(zhǔn)確度。
基于鐳神16線激光雷達(dá),借助Autoware軟件,本文設(shè)計(jì)和實(shí)現(xiàn)了室外封閉區(qū)域的三維點(diǎn)云地圖構(gòu)建。點(diǎn)云地圖的構(gòu)建使用了基于柵格地圖的NDT算法,其優(yōu)點(diǎn)是有更快的運(yùn)行速度,且不受環(huán)境中細(xì)微變化的影響,可在室外封閉區(qū)域?qū)崿F(xiàn)較好的三維點(diǎn)云地圖構(gòu)建。但在回環(huán)路徑很大、沒(méi)有初始相對(duì)位姿的情況下,由于累積誤差的原因,僅基于NDT算法制作的地圖會(huì)與真實(shí)地圖的差異較大,需要對(duì)其進(jìn)行一定的約束,如回環(huán)檢測(cè)、使用RTK或者組合導(dǎo)航來(lái)完成后端優(yōu)化。