陸則宇
(沈陽航空航天大學(xué) 自動化學(xué)院,遼寧 沈陽110136)
隨著全面建成小康社會目標(biāo)的實現(xiàn),人們的生活水平也得到了顯著提高。私家車的數(shù)量近幾年隨著國民經(jīng)濟(jì)的發(fā)展而大幅度增加,城市的主干道因此經(jīng)常會出現(xiàn)道路擁堵的現(xiàn)象,甚至?xí)捎诟鞣N原因?qū)е陆煌ㄒ馔馐鹿实陌l(fā)生。交通事故已經(jīng)成為危及人民群眾生命財產(chǎn)安全的“第一殺手”,故降低交通事故發(fā)生率亟待解決。在車輛正常運(yùn)行過程中,按照軌跡運(yùn)行與安全的檢測避障成為車輛安全運(yùn)行的關(guān)鍵性指標(biāo)。
5G時代的到來,讓無人駕駛技術(shù)再次進(jìn)入人們的視野,過去數(shù)十年間國內(nèi)外許多科技公司和眾多學(xué)者都對無人駕駛汽車進(jìn)行了深入研究。2009年,Google開始研發(fā)無人駕駛汽車;2013年百度公司成立深度學(xué)習(xí)研究院,加入無人駕駛汽車研究行列;2015年英偉達(dá)發(fā)布Drive PX計算平臺,專門用于無人駕駛汽車的設(shè)計工作;2018年華為公司與奧迪展開合作,依托5G技術(shù)研發(fā)商用無人駕駛汽車[1]。在實驗室內(nèi)進(jìn)行智能小車的設(shè)計是無人駕駛車輛研制工作不可或缺的一部分,智能車?yán)愐渤蔀樵S多高校的官方賽事,其主要涉及小車的尋跡和避障兩大部分內(nèi)容。劉漢忠等[2]采用視覺CCD傳感器完成了小車黑線尋跡任務(wù)。王宇洋等[3]選用灰度傳感器ITR9909實現(xiàn)智能小車的自動尋跡功能。劉雪飛等[4]針對小車避障問題使用紅外避障傳感器進(jìn)行實現(xiàn)。黃志敏等[5]采用觸須傳感器感知和識別物體表面輪廓以確定障礙物的方法開展避障研究。
本文主要針對當(dāng)前無人駕駛小車控制中的循跡運(yùn)動和避障兩大問題,設(shè)計了一款以STC89C52單片機(jī)作為控制核心,能夠?qū)崿F(xiàn)黑線尋跡同時兼具避障功能的智能小車。本次設(shè)計小車采用紅外尋跡傳感器實現(xiàn)沿預(yù)定路徑行駛,相較于CCD傳感器和灰度傳感器等,紅外傳感器實時性較好,對主控芯片的要求較低,造價低廉。避障采用超聲波傳感器避障的方法,與紅外避障傳感器和觸須傳感器等比較而言,超聲波避障實現(xiàn)方式簡單、數(shù)據(jù)處理量小、易于實時控制[6]。此次設(shè)計小車,即結(jié)合紅外尋跡和超聲波避障控制小車,根據(jù)路況實時做出合理決策,最終達(dá)到小車沿既定路線行駛并躲避障礙物到達(dá)目標(biāo)點的目的。
設(shè)計的智能小車使用STC89C52單片機(jī)作為主控芯片,采用紅外傳感器實現(xiàn)尋跡功能,避障功能的實現(xiàn)則采用超聲波避障的方法,車體采用三輪結(jié)構(gòu),小車左右兩個車輪各用一個電機(jī)控制,小車后方加裝一個萬向輪,起到支撐小車的作用。傳感器接收到的信息反饋給小車CPU單片機(jī),單片機(jī)根據(jù)反饋信息指導(dǎo)電機(jī)做出響應(yīng),控制小車實現(xiàn)前后左右運(yùn)動以及轉(zhuǎn)彎。系統(tǒng)的整體設(shè)計結(jié)構(gòu)如圖1所示。
圖1 整體結(jié)構(gòu)設(shè)計圖
單片機(jī)通過接收紅外傳感器和超聲波傳感器的反饋信號,結(jié)合單片機(jī)產(chǎn)生的脈沖寬度調(diào)制(Pulse Width Modulation,PWM)波和控制驅(qū)動模塊來實時調(diào)整小車的車速,通過左右輪的車速差達(dá)到左轉(zhuǎn)、右轉(zhuǎn)、直行的目的。小車還安裝了蜂鳴器,在超聲波傳感器30cm以內(nèi)碰到障礙物時,蜂鳴器會報警以提示使用者該道路有障礙,需要重新選擇道路,此時小車會沿原道路即圖2道路1選擇后退至岔道口A處稍微左轉(zhuǎn),進(jìn)入新的可行駛道路,即圖2中道路2繼續(xù)完成尋跡。
圖2 道路演示圖
作為小車的關(guān)鍵信息輸入設(shè)備,紅外傳感器能夠良好地捕捉到前方道路的路況信息,將信號實時反饋給單片機(jī)進(jìn)行處理,對小車進(jìn)行動態(tài)控制[5]。紅外傳感器是利用紅外光的反射特性對黑色和白色加以區(qū)分,其反射特性大致可以描述為對于白色物體,紅外光反射量較多,而對于黑色物體,紅外光反射量將大大減少。利用這一特性當(dāng)平面是白色時,傳感器發(fā)射出的紅外光有很大一部分將被反射回來,此時傳感器輸出低電平0。當(dāng)平面是黑色時,由于黑色反射能力非常弱,大部分的光都無法反射回來,傳感器輸出高電平1[7-8]。
本次設(shè)計小車的紅外尋跡傳感器為RPR220傳感器,該紅外傳感器的優(yōu)點在于可以在一定程度上屏蔽自然光的干擾,有利于提高傳感器對于黑線與白色平面識別的準(zhǔn)確度。紅外尋跡模塊原理圖如圖3所示,共有U1、U2兩個紅外對管。圖4為紅外尋跡反饋模塊原理圖。圖3和圖4是對紅外尋跡原理示意。
如圖3所示,電路中含有U1和U2兩個紅外對管,對于紅外對管U1,IN1為接收管,其與圖4中的IN1為對應(yīng)關(guān)系。將I3-處的反饋電壓與I3+的電壓進(jìn)行比較,并通過O3反應(yīng)。若I3-處電壓值大于I3+處電壓值,則O3表現(xiàn)為低電平,若如圖中所示O3與P3.2引腳相連接,那么對應(yīng)該處的發(fā)光二極管將會被點亮,符合紅外傳感器的基本原理。紅外對管U2原理與紅外對管U1相同,只需將I3換為I4,O3換為O4即可。本次設(shè)計總共采用5個紅外尋跡傳感器,相較于傳統(tǒng)的2路或者3路尋跡小車,5路尋跡提高了運(yùn)行過程的穩(wěn)定性。
圖3 紅外尋跡模塊原理圖
圖4 紅外尋跡反饋模塊原理圖
超聲波測距是通過超聲波發(fā)射裝置發(fā)射超聲波,觸碰到物體后,反射回超聲波給接收裝置,通過公式(1)可計算超聲波發(fā)射器與障礙物之間的距離大小[9]。
其中,L為超聲波發(fā)生器與障礙物間距離;t為從超聲波發(fā)射到返回的時間;v為聲速,通常取340m/s。
超聲波避障選用的是HC-SR04超聲波測距模塊,該模塊可提供2cm-400cm的非接觸式距離感測功能,測距精度可達(dá)3mm。其基本原理為通過IO口TRGI觸發(fā)測距,給至少10us的高電平進(jìn)行觸發(fā);觸發(fā)后模塊會自動發(fā)送8個40kHZ的方波,以檢測有無返回信號。若檢測到有信號返回,則會通過IO口ECHO輸出一個高電平,此高電平持續(xù)時間也即為公式(1)中時間t。
完成該部分模塊內(nèi)容的設(shè)計采用L293D芯片。如圖5所示為L293D電機(jī)驅(qū)動芯片原理圖。
圖5 L293D電機(jī)驅(qū)動芯片原理圖
L293D芯片共有16個引腳,其中左邊一側(cè)引腳控制右電機(jī)的工作狀態(tài),右邊一側(cè)引腳控制左電機(jī)的工作狀態(tài)。左側(cè)引腳中的OUT1與OUT2為驅(qū)動端,用于使該驅(qū)動芯片輸出電流以驅(qū)動右電機(jī);EN1為使能端,只有當(dāng)EN1為高電平時才能使電機(jī)工作,實現(xiàn)車輪的轉(zhuǎn)動;IN1與IN2根據(jù)高低電平的不同會使電機(jī)產(chǎn)生正轉(zhuǎn)、反轉(zhuǎn)和停轉(zhuǎn)的效果,如表1左側(cè)所示。由于當(dāng)使能端EN1為低電平時則電機(jī)不工作,故默認(rèn)為EN1為高電平的情況。用于控制左電機(jī)的右側(cè)管腳的情況與右電機(jī)類似,設(shè)置如表1右側(cè)部分。
表1 電機(jī)轉(zhuǎn)動狀態(tài)控制表
除了電機(jī)本身控制正轉(zhuǎn)、反轉(zhuǎn)和停轉(zhuǎn)外,無論是對于智能小車還是日常使用的其他交通工具而言,轉(zhuǎn)彎問題都成為其運(yùn)動控制過程中的關(guān)鍵性難點問題。由于設(shè)計的智能小車為差速小車,即利用兩輪的速度差實現(xiàn)左轉(zhuǎn)和右轉(zhuǎn),當(dāng)左輪速度小于右輪速度,小車會進(jìn)行左轉(zhuǎn),而左輪速度大于右輪時則相反。為了控制兩個車輪的速度大小,通過改變STC89C52的IO口輸出脈沖寬度來實現(xiàn)。進(jìn)而在一個脈沖寬度內(nèi),不斷改變占空比以控制輸出電壓,電壓減小后電機(jī)轉(zhuǎn)速就會相應(yīng)下降,即可達(dá)到改變車速的目的。
在尋跡部分,本次設(shè)計小車共裝有5只RPR220紅外傳感器,對于每個紅外傳感器而言,在接收到路線信息后,會通過發(fā)光二極管的亮滅來展現(xiàn)。當(dāng)紅外傳感器感應(yīng)到黑線時,發(fā)光二極管會熄滅,同時用1來表示,當(dāng)未觸碰到黑線也即感應(yīng)到的是白色地面時發(fā)光二極管會亮起,同時將這種情況用0來表示。每個傳感器都有兩種不同的情況,則5個傳感器共有32種情況可能發(fā)生。事實上,在車速不是太快且傳感器靈敏度較高的情況下,如圖6所示,灰色方塊看作是傳感器,那么最左邊和最右邊的傳感器很難發(fā)揮實際效果,尋跡的過程通過中間三個傳感器大致就能夠完成,其他的傳感器主要是為了加強(qiáng)穩(wěn)定性,使運(yùn)行過程更加地平穩(wěn),也為了提高容錯率使小車始終沿既定路徑行駛。
圖6 RPR220紅外傳感器分布圖
如圖7所示為尋跡模塊程序設(shè)計流程圖?;谫惖啦粩嗾{(diào)試后,圖8給出了不同情況下的PWM占空比,也即自定義了幾種不同擋位以進(jìn)行直行和轉(zhuǎn)彎的有效銜接。當(dāng)M0檢測到黑線,就執(zhí)行直行命令;當(dāng)L1檢測到黑線,PWM占空比設(shè)置為70%進(jìn)行幅度不大的微左轉(zhuǎn);當(dāng)L2檢測到黑線,PWM占空比設(shè)置為30%進(jìn)行幅度較大的左轉(zhuǎn)以保證轉(zhuǎn)動幅度足夠M0重新檢測到黑線;當(dāng)R1檢測到黑線,PWM占空比設(shè)置為70%進(jìn)行幅度不大的微右轉(zhuǎn);當(dāng)R2檢測到黑線,PWM占空比設(shè)置為30%進(jìn)行幅度較大的右轉(zhuǎn),此時需要保證右轉(zhuǎn)幅度足夠M0重新檢測到黑線。
圖7 尋跡模塊程序設(shè)計流程圖
圖8 超聲波模塊程序設(shè)計流程圖
超聲波主要涉及超聲波發(fā)生器與障礙物的距離問題以及超聲波探測到障礙物的時間間隔問題。通過多次實驗得出,將距離設(shè)置為30cm較為合適,太短會導(dǎo)致離障礙物太近而產(chǎn)生偶爾撞擊障礙物的現(xiàn)象,如果太遠(yuǎn)會影響到正常的尋跡過程,所以設(shè)置30cm的距離較為合理。探測到障礙物的時間間隔推薦值為64ms,但經(jīng)過實驗后發(fā)現(xiàn),設(shè)置為64ms的話也會導(dǎo)致單片機(jī)來不及反應(yīng),為了給出足夠的時間用于主控芯片的有效反應(yīng),最終設(shè)置的時間間隔為115ms。超聲波模塊程序設(shè)計流程圖如圖8所示。
為了檢驗小車的設(shè)計效果,將小車放置于實驗室內(nèi)用于智能小車?yán)惖呐艿肋M(jìn)行性能測試。向單片機(jī)燒錄進(jìn)寫好的程序后,發(fā)現(xiàn)有時會出現(xiàn)原地打轉(zhuǎn)的現(xiàn)象,可能是程序跑飛,所以又在程序中加上看門狗防止該現(xiàn)象的發(fā)生[10]。首先進(jìn)行無障礙物和有障礙物兩種情況下的實驗,共分別進(jìn)行3次實驗,實驗結(jié)果如表2所示。
表2 實驗1測試結(jié)果
實驗表明,當(dāng)小車的運(yùn)行軌跡上無障礙物時,小車能夠順利到達(dá)指定目的地,較好地完成尋跡任務(wù)。當(dāng)小車的既定軌道上存在障礙物時,小車會通過自身避障檢測,自行規(guī)避并調(diào)整路線,并最終到達(dá)終點,達(dá)到了較好的避障功能。
為了更好地檢驗小車的尋跡效果,將其與除紅外尋跡只有3個、其他模塊均相同的小車進(jìn)行對比測試,共進(jìn)行10組對比測試,實驗測得相關(guān)數(shù)據(jù)如表3所示。
表3 實驗2測試結(jié)果
通過表3看出,本文設(shè)計的5路尋跡智能小車較3路尋跡小車要更加穩(wěn)定,運(yùn)行過程也更加平穩(wěn)。
本次設(shè)計的無人駕駛智能小車,在主控芯片單片機(jī)和紅外尋跡模塊、超聲波避障模塊、直流電機(jī)驅(qū)動模塊等的協(xié)調(diào)運(yùn)作下實現(xiàn)了小車的直行、左轉(zhuǎn)、右轉(zhuǎn)等基本動作,完成了尋跡和避障的功能,特別采用5路尋跡相較傳統(tǒng)的3路尋跡更加合理。
未來可以在小車上增加多個避障傳感器,再將其用于更加復(fù)雜的環(huán)境,這對火場救援、貨物運(yùn)輸、山地探測等方面的“無人化”具有推動作用,從而進(jìn)一步減少人力資源的消耗,最大限度地保障人身安全。