摘" 要:現(xiàn)階段的導(dǎo)航電子地圖的數(shù)據(jù)精度與實際行車過程需求的精度存在一定的差異,為了提供超高精度的導(dǎo)航地圖與超高精度的物體識別,提出基于機(jī)器人操作系統(tǒng)(ROS)的自動駕駛小車系統(tǒng)設(shè)計。系統(tǒng)基于全球定位系統(tǒng)和激光雷達(dá)結(jié)合的粗/精準(zhǔn)定位技術(shù),采用ROS系統(tǒng)并結(jié)合SLAM算法及融合多種傳感器,實現(xiàn)障礙物的高精度實時檢測和精準(zhǔn)定位建圖。測試結(jié)果表明,基于ROS的自動駕駛小車具有實時路況及移動物體的高精度感知,進(jìn)而能實現(xiàn)自動識別、自動導(dǎo)航、自動避障功能。基于ROS的自動駕駛小車系統(tǒng)能有效增加小車駕駛的舒適性和安全性,實現(xiàn)對小車駕駛控制的支持。
關(guān)鍵詞:自動駕駛;ROS;激光雷達(dá);SLAM算法;GPS技術(shù)
中圖分類號:TP23" " " " 文獻(xiàn)標(biāo)志碼:A" " " " " 文章編號:2095-2945(2023)17-0046-04
Abstract: Based on the fact that there is a certain difference between the data accuracy of the current navigation electronic map and the accuracy required by the actual driving process, a ROS-based autonomous driving vehicle system design is proposed in order to provide ultra-high-precision high-altitude maps and ultra-high-precision object recognition. Based on the rough/precise positioning technology combined with global positioning system and LiDAR, the system adopts ROS system, SLAM algorithm and fusion of various sensors to achieve high-precision real-time detection and precise positioning mapping of obstacles. The test results show that the autonomous vehicles based on ROS have the high-precision perception of real-time road conditions and moving objects and can realize the functions of automatic identification, automatic navigation and automatic obstacle avoidance. The ROS-based autonomous driving car system can effectively increase the comfort and safety of car driving and realize the support for car driving control.
Keywords: autonomous driving; ROS; LiDAR; SLAM algorithm; GPS technology
隨著經(jīng)濟(jì)的不斷發(fā)展和城市化進(jìn)程的不斷加快,汽車已經(jīng)成為人們出行的主要交通工具。汽車給人們帶來交通便利的同時,也伴隨著交通問題的頻繁出現(xiàn)。造成交通事故的主觀原因是駕駛員的疏忽大意和操作不當(dāng)。為解決上述問題,各國均不斷研發(fā)自動駕駛汽車。無人駕駛智能汽車具有環(huán)境感知、規(guī)劃決策、輔助駕駛等特點,能及時感知周圍環(huán)境變化并通過自主規(guī)劃實現(xiàn)自主巡航和避障,實現(xiàn)智能汽車自主安全行駛[1-2]。自動駕駛汽車不僅可以大幅度降低交通事故的發(fā)生率、減少交通堵塞等交通問題,還能大大提高公路對汽車的容納能力。而智能汽車的自主導(dǎo)航面臨著復(fù)雜多變的環(huán)境和構(gòu)建周圍環(huán)境數(shù)據(jù)不精準(zhǔn)性而造成信息感知能力魯棒性弱,影響系統(tǒng)決策能力的自適應(yīng)的問題[3]。針對上述問題,本文基于GPS和激光雷達(dá)結(jié)合的粗/精準(zhǔn)定位技術(shù),采用機(jī)器人操作系統(tǒng)(ROS)并結(jié)合SLAM算法,明確信息源、提高數(shù)據(jù)精確度并精準(zhǔn)構(gòu)建各種環(huán)境的決策模型,提高系統(tǒng)的信息感知能力和決策能力自適應(yīng)性。
1" 系統(tǒng)硬件設(shè)計
1.1" 硬件總體構(gòu)架設(shè)計
為進(jìn)一步解決人為駕駛中存在主觀因素的交通隱患問題,系統(tǒng)以微型計算機(jī)控制為核心,結(jié)合圖像采集模塊、激光雷達(dá)模塊、GPS模塊和角度傳感器模塊等研究設(shè)計一種基于機(jī)器人操作系統(tǒng)的自動駕駛小車系統(tǒng)。系統(tǒng)硬件設(shè)計框架如圖1所示。其中,圖像采集模塊采用深度照相機(jī)對周圍環(huán)境進(jìn)行采集和識別;激光雷達(dá)模塊實時采集周圍物體信息并對小車與物體之間的距離進(jìn)行測量并及時反饋給小車核心控制系統(tǒng);GPS模塊利用衛(wèi)星對小車所處地理位置進(jìn)行定位;角度傳感器模塊利用磁力計與經(jīng)緯度的結(jié)合判斷小車的當(dāng)前姿態(tài)和前進(jìn)方向,樹莓派將采集到的周圍環(huán)境、物體信息、小車與物體的距離、小車的定位點和姿態(tài)等信息進(jìn)行整合,然后將整合后的數(shù)據(jù)用二維地圖實時構(gòu)建。最后,樹莓派將地圖信息與目前的地理位置結(jié)合規(guī)劃出一條安全且可執(zhí)行的最簡路線,從而降低交通堵塞和交通事故等交通問題的發(fā)生率。
1.2" 上/下位機(jī)模塊
該自動駕駛小車的核心控制系統(tǒng)采用樹莓派微型計算機(jī)作為上位機(jī),樹莓派板載2個USB接口,其中一個USB接口連接激光雷達(dá),另一個USB接口連接深度相機(jī)。樹莓派上安裝Ubuntu18.04操作系統(tǒng)和ROS操作系統(tǒng),使用ROS系統(tǒng)中自帶的功能包可以對激光雷達(dá)傳輸回來的數(shù)據(jù)解算出二維雷達(dá)圖,小車再根據(jù)與物體的間距做出相應(yīng)避障動作。樹莓派可以使用板載TTL串口連接下位機(jī)進(jìn)行通信,把下位機(jī)傳回來的經(jīng)緯度坐標(biāo)、自身運(yùn)動狀態(tài)等信息進(jìn)行整合處理后給下位機(jī)傳達(dá)行動指令。
下位機(jī)采用STM32單片機(jī),STM32單片機(jī)板載有豐富的外設(shè)接口,內(nèi)置的4個定時器配置到編碼器模式可以對4個車輪上的霍爾編碼器進(jìn)行脈沖次數(shù)的采集,進(jìn)而再換算成速度,IIC接口可以連接角速度傳感器讀取角速度進(jìn)而結(jié)算出角度,四路脈沖寬度調(diào)制(PWM)接口連接到動力驅(qū)動模塊上對車速進(jìn)行控制,板載2個串口中的一個串口用于GPS模塊接收定位信息,另一個串口則通過Serial通信協(xié)議實現(xiàn)與樹莓派之間的信息傳輸或下達(dá)的指令。
1.3" 圖像采集模塊
圖像采集模塊采用深度照相機(jī),其測距原理是深度照相機(jī)的照射單元對光源進(jìn)行脈沖調(diào)制,之后給目標(biāo)連續(xù)發(fā)送脈沖,在圖像拍攝過程中,光源會打開和關(guān)閉幾千次,但是每個光脈沖只有納秒,然后用成像傳感器接收物體返回的光,通過計算探測光脈沖的往返時間得到目標(biāo)物體的距離,并在數(shù)字空間建立與物理空間一致的對象數(shù)字模型,通過實時捕獲物理空間中的對象方向、位置信息,構(gòu)建精確的二維地圖。該模塊主要對行駛過程中遇到的紅綠燈、車道線、行人和車輛等進(jìn)行圖像識別,即通過對采集回來的圖像進(jìn)行檢測分類識別。對于紅綠燈的識別采用直觀的HSV顏色模型來實現(xiàn),在該顏色模型中,可以通過算法修改其色調(diào)、飽和度、明度,主要采集紅色燈信號,當(dāng)小車在行駛過程中遇到紅燈時,系統(tǒng)給小車發(fā)送一個停止指令。在對車道線、行人、車輛等進(jìn)行圖像識別時,采用神經(jīng)網(wǎng)絡(luò)算法對攝像頭采集到的每一幀圖像進(jìn)行處理,在對物體進(jìn)行Darknet神經(jīng)網(wǎng)絡(luò)框架構(gòu)建的基礎(chǔ)上,加入了更深的卷積層及反卷積層,捕捉更豐富圖像上下文信息;高分辨率多通道特征圖,捕捉圖像細(xì)節(jié);深層低分辨率多通道特征圖,編碼更多圖像上下文信息。
1.4" GPS定位模塊
系統(tǒng)定位采用北斗/GPS模塊,該模塊具有體積小、功耗低的特點,并且能提供超高性能,即在弱信號的地方,也能實現(xiàn)快速、準(zhǔn)確定位。該模塊通過TTL電平與STM32單片機(jī)連接,STM32單片機(jī)根據(jù)NMEA協(xié)議,將緯度、經(jīng)度、時間等數(shù)據(jù)進(jìn)行處理,根據(jù)處理后的數(shù)據(jù)得到速度、經(jīng)緯度等信息,最后通過STM32單片機(jī)的串口發(fā)送給樹莓派進(jìn)行導(dǎo)航點的規(guī)劃,為小車的行駛提供規(guī)劃路徑。GPS的定位精度為米級,當(dāng)小車周圍的建筑物密集、高樓林立或者樹比較高時,GPS信號容易減弱,甚至中斷,限制了定位精度最大誤差。
1.5" 激光雷達(dá)感應(yīng)模塊
為解決GPS的定位精度不高的問題,系統(tǒng)選用A1M8激光雷達(dá)感應(yīng)模塊。該雷達(dá)采用飛行時間測距技術(shù)并具有測量精度穩(wěn)定和抗干擾性強(qiáng)的特點,可在復(fù)雜且惡劣的環(huán)境中實現(xiàn)穩(wěn)定測距與高精度建圖。雷達(dá)模塊采用光學(xué)三角測距技術(shù)和精密光學(xué)采集處理器進(jìn)行高頻測距,每次測距過程中,激光雷達(dá)發(fā)射已調(diào)制的紅外激光信號,該紅外激光信號經(jīng)過物體反射后再被激光雷達(dá)的光學(xué)接收口端接收,再由激光雷達(dá)內(nèi)部處理器進(jìn)行實時數(shù)據(jù)分析,計算出目標(biāo)物體到雷達(dá)的距離及當(dāng)前的夾角,經(jīng)過USB接口連接到樹莓派進(jìn)行傳輸數(shù)據(jù)。首先,GPS確定小車的大致位置,通過小車的加速度、角速度和輪速可以預(yù)測全局位置,然后通過激光雷達(dá)進(jìn)行實時特征提取,并結(jié)合車輛初始位置進(jìn)行空間變化,獲取基于全局坐標(biāo)系下的矢量特征,之后將矢量特征與高精度地圖的特征信息進(jìn)行匹配,進(jìn)而獲取準(zhǔn)確定位。
1.6" 角度傳感器和動力驅(qū)動模塊
角度傳感器模塊采用MPU6050多軸姿態(tài)傳感器來實現(xiàn)。MPU6050傳感器通過集成電路總線IIC口與STM32單片機(jī)連接,利用加速度計結(jié)合數(shù)字運(yùn)動處理器DMP來計算歐拉角,再采用磁力計對歐拉角進(jìn)行進(jìn)一步校準(zhǔn),最后得到一個正確的姿態(tài)角度。小車的動力驅(qū)動模塊采用4個12 V帶霍爾編碼器的直流減速電機(jī)來實現(xiàn),電機(jī)通過編碼器接口與STM32單片機(jī)連接,STM32單片機(jī)定時器自帶的編碼模式可以讀取輪胎轉(zhuǎn)動圈數(shù),進(jìn)而得到小車行駛的速度。驅(qū)動直流電機(jī)采用大電流MOSFET-H 橋結(jié)構(gòu)的TB6612FNG 動力驅(qū)動芯片,4個驅(qū)動接口分別連接STM32單片機(jī)的PWM引腳,通過改變PWM周期信號的占空比來調(diào)節(jié)電機(jī)的轉(zhuǎn)速,可使小車勻速行駛。
2" 系統(tǒng)軟件設(shè)計
2.1" 自主導(dǎo)航控制系統(tǒng)軟件總體設(shè)計
該自主導(dǎo)航小車?yán)梦⑿陀嬎銠C(jī)ROS系統(tǒng)處理GPS模塊、雷達(dá)模塊與圖像采集模塊所傳輸?shù)男盘枺褂肧LAM算法建立二維圖,在地圖上建立導(dǎo)航點,并通過運(yùn)行ROS系統(tǒng)實現(xiàn)節(jié)點訂閱和里程設(shè)計、小車狀態(tài)的發(fā)布,當(dāng)導(dǎo)航點確定后,ROS系統(tǒng)給單片機(jī)下達(dá)指令,進(jìn)而控制電機(jī)運(yùn)行狀態(tài)。同時,單片機(jī)采集電機(jī)上的速度、MPU6050的姿態(tài)角的數(shù)據(jù)并反饋給JETSON NANO,并對傳輸方向進(jìn)行控制,使小車做出對應(yīng)符合交通規(guī)則的動作。自主導(dǎo)航系統(tǒng),主要采用GPS+激光雷達(dá)結(jié)合SLAM算法的定位導(dǎo)航方式來實現(xiàn)小車的自動避障、定位及導(dǎo)航功能,無人駕駛自主導(dǎo)航控制系統(tǒng)設(shè)計框圖如圖2所示。
2.2" SLAM算法建模的實現(xiàn)
同步定位與地圖構(gòu)建(SLAM),是根據(jù)雷達(dá)獲取的運(yùn)動控制信息和觀測信息,使用SURF算法濾波對圖像進(jìn)行優(yōu)化,并獲取特征點進(jìn)行的空間建模和本身定位。雷達(dá)激光SLAM系統(tǒng)主要由傳感模塊、視覺里程計、后端、構(gòu)圖及回環(huán)檢測5個模塊構(gòu)成[4-5]。首先通過傳感器模塊采集周圍環(huán)境的原始數(shù)據(jù),之后將采集數(shù)據(jù)對不同時間移動物體相對位置進(jìn)行幀間估算,再通過基于蒙特卡羅方法的粒子濾波法后端實現(xiàn)全局狀態(tài)估算,優(yōu)化視覺里程計所帶來的累積誤差,最后通過回環(huán)檢測提供一個來自空間上的約束以此消除空間累積誤差。經(jīng)過不斷循環(huán)迭代,完成車輛位姿和環(huán)境地圖的相互修正,從而解決車輛位姿和環(huán)境地圖構(gòu)建這一問題。
2.3" 激光雷達(dá)避障的實現(xiàn)
啟動小車后,樹莓派開始開機(jī)并啟動ROS功能包,初始化USB接口和串口,激光雷達(dá)發(fā)送啟動命令,初始化攝像頭。激光雷達(dá)發(fā)送啟動命令后,開始發(fā)送數(shù)據(jù)給ROS系統(tǒng),ROS系統(tǒng)開始遍歷一圈數(shù)據(jù)的有效點,如果距離低于0.5 m,則發(fā)送避障數(shù)據(jù)。當(dāng)前面有障礙物時,系統(tǒng)開始判斷左右兩邊是否存在障礙物,確保小車無障礙行駛。如果四周都有障礙物則開始保持相對靜止,之后重新規(guī)劃路線。
3" 系統(tǒng)測試
3.1" 系統(tǒng)測試步驟
在確定所有的模塊可以正常工作后,安裝在小車上進(jìn)行綜合調(diào)試。無人駕駛小車實物圖如圖3所示。
第一步:導(dǎo)航區(qū)域選擇一個有利于GPS定位的開闊地點,開始定位時,先通過GPS對導(dǎo)航區(qū)域的地圖信息進(jìn)行存儲,即先用經(jīng)緯度信息把可以前進(jìn)的區(qū)域的經(jīng)緯度進(jìn)行畫線標(biāo)記,然后在可前進(jìn)的區(qū)域規(guī)劃出一些紅色節(jié)點。
第二步:得到小車的初始位置與目標(biāo)點后,分別連接最近的節(jié)點,進(jìn)而在2個節(jié)點之間規(guī)劃出一條安全且路徑最短的前進(jìn)路線,如果小車行駛在規(guī)劃路徑的某個節(jié)點上,就可以按規(guī)劃路徑向下一個節(jié)點行駛,當(dāng)應(yīng)躲避障礙物而使小車脫離規(guī)劃節(jié)點時,樹莓派可以根據(jù)實時定位信息糾正小車行駛方向,從而可以行駛到下一個節(jié)點。
第三步:開始對樹莓派錄入地圖信息。編寫到程序上開始執(zhí)行發(fā)送指令使小車可以從出發(fā)點向目的點前進(jìn)。
3.2" 測試結(jié)果分析
經(jīng)過多次對小車自動駕駛測試,小車能實現(xiàn)對周圍環(huán)境掃描和數(shù)據(jù)的實時傳送及地圖的構(gòu)建,能實現(xiàn)路況信息及時傳遞,當(dāng)路況出現(xiàn)異常時及時反饋給用戶并重新規(guī)劃路線;能根據(jù)道路情況,智能尋找最便捷路線;能對車道線、紅綠燈、車輛等目標(biāo)進(jìn)行智能識別,最終到達(dá)目的地,說明本次的系統(tǒng)測試成功。但測試中存在一些偏差:天氣晴朗時,GPS定位基本正常,多云天氣時,GPS定位誤差達(dá)到了2 m;在光線適合時,對于紅綠燈和車輛能精準(zhǔn)識別,不過在光線過強(qiáng)或過暗時,識別有誤差。在光線過強(qiáng)時,激光雷達(dá)的探測距離會減少1~2 m,但5 m范圍內(nèi)的障礙物,系統(tǒng)都可以識別出來。
4" 結(jié)束語
本研究提出了一種基于ROS的自動駕駛小車系統(tǒng)設(shè)計方案,小車可以實現(xiàn)精準(zhǔn)定位和自動識別、自動導(dǎo)航、自動避障功能。小車?yán)蒙疃日障鄼C(jī)對周圍環(huán)境進(jìn)行采集和識別,采用激光雷達(dá)、SLAM算法與GPS技術(shù)相結(jié)合進(jìn)行精準(zhǔn)定位導(dǎo)航,小車在行駛過程中能建立環(huán)境地圖,并根據(jù)道路情況規(guī)劃并優(yōu)化路線,并能對車道線、紅綠燈、車輛等目標(biāo)進(jìn)行智能識別。該系統(tǒng)的設(shè)計能降低交通事故的發(fā)生率、減少交通堵塞等交通問題。
參考文獻(xiàn):
[1] 李松澤.基于深度學(xué)習(xí)的車道線檢測系統(tǒng)的設(shè)計于實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2016.
[2] 王俊.無人駕駛車輛環(huán)境感知系統(tǒng)關(guān)鍵技術(shù)研究[D].合肥:中國科學(xué)技術(shù)大學(xué),2016.
[3] 鄒貴豪,葉金鑫,梁嘉鈺.基于ROS的自動駕駛小車的設(shè)計[J].電子世界,2019(9):143-144,147.
[4] 曾仕峰,吳錦均,葉智文,等.基于ROS的無人駕駛智能車[J].物聯(lián)網(wǎng)技術(shù),2020,10(6):62-63,66.
[5] 何松,孫靜,郭樂江,等.基于激光SLAM和深度學(xué)習(xí)的語義地圖構(gòu)建[J].計算機(jī)技術(shù)與發(fā)展,2020,30(9):88-94.