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