林 華, 徐宇寶, 汪 鑫, 吳 瑤, 鄔志軍, 曹昌勇
(皖西學(xué)院機(jī)械與車輛工程學(xué)院, 安徽 六安 230712)
智能汽車競(jìng)賽中的雙車會(huì)車組,兩車要經(jīng)過(guò)圓環(huán)、路障、斷路和會(huì)車區(qū)等元素并快速穩(wěn)定地完成任務(wù),其車模設(shè)計(jì)制作工作量大,調(diào)試過(guò)程也更加繁瑣復(fù)雜。陳磊等[1]基于恩智浦MK60并綜合多種傳感器研究了電磁導(dǎo)航智能車雙車通信控制系統(tǒng),嚴(yán)明輝[2]等研究制作了攝像頭組雙車,主要依靠攝像頭獲取賽道的會(huì)車區(qū)特征,并討論對(duì)比了會(huì)車的多個(gè)邏輯設(shè)計(jì)。林華[3]、喬緯國(guó)[4]、林嘉裕[5]等研究了兩輪自平衡車的姿態(tài)融合算法和串級(jí)控制等控制研究,一定程度提高了智能車系統(tǒng)的快速性和穩(wěn)定性。魏磊[6]等研究了三輪車模的電磁傳感器布置方案,研究了系統(tǒng)的彎道側(cè)滑問(wèn)題等,其主要采用了Ackermann公式和分段式PID相結(jié)合的復(fù)合方向控制模式。王能才[7]在LabVIEW中調(diào)用MATLAB對(duì)電磁感應(yīng)線圈在磁場(chǎng)中的特性進(jìn)行了分析,優(yōu)化了傳感器的排布。都針對(duì)當(dāng)年的規(guī)則對(duì)車模和控制算法等進(jìn)行了研究和實(shí)踐,從多個(gè)方面提高了車模的綜合性能。本文主要針對(duì)攝像頭與電磁導(dǎo)航的兩輪直立車、三輪車以快速性和穩(wěn)定性等目標(biāo),對(duì)其機(jī)械結(jié)構(gòu)、硬件電路和程序算法等進(jìn)行研究和實(shí)踐。
直立車的整車系統(tǒng)框圖如圖1所示。整車主控芯片采用恩智浦Kinetics系列單片機(jī)K60DN512Z,由電磁傳感器采集賽道信息并通過(guò)運(yùn)算放大器將微弱電磁信號(hào)進(jìn)行倍數(shù)放大來(lái)確定賽道位置,由姿態(tài)檢測(cè)傳感器采集車身的姿態(tài)信息,由光電編碼器采集車模行走速度信息作為速度反饋信號(hào),由兩個(gè)直流電機(jī)執(zhí)行速度輸出和方向差速,采用NRF通訊模塊進(jìn)行雙車之間的通訊,采用按鍵、撥碼開關(guān)、藍(lán)牙和上位機(jī)等調(diào)試工具。
由于兩輪直立自平衡車其動(dòng)力學(xué)系統(tǒng)具有非線性、多變量等特點(diǎn)[3],不合理的結(jié)構(gòu)設(shè)計(jì)和裝配會(huì)導(dǎo)致車模質(zhì)量過(guò)大、重心分散,會(huì)導(dǎo)致車模轉(zhuǎn)動(dòng)慣量增大,以至于車模在高速過(guò)彎時(shí)會(huì)出現(xiàn)打滑并損失大量速度分量,車模運(yùn)行的穩(wěn)定性也會(huì)大打折扣[8]。所以,為提高車模的加減速性能和高速過(guò)彎穩(wěn)定性,須盡量減小總重,在重心設(shè)計(jì)上使重心盡量低且相對(duì)集中,本車模的創(chuàng)新性做法主要有:電路板設(shè)計(jì)上將所有電路設(shè)計(jì)在同一個(gè)電路板上;車模配件選擇和裝配上盡量減輕重量;部分裝配件采用3D打印件等。
整體框圖如圖1所示。由CMOS攝像頭與電磁傳感器共同采集賽道信息和邊界識(shí)別,角速度傳感器來(lái)解算運(yùn)動(dòng)的角度,由光電編碼器采集測(cè)算電機(jī)轉(zhuǎn)速并反饋,車模速度和方向由兩個(gè)直流電機(jī)執(zhí)行。
由于三輪智能車采用兩輪差速,比傳統(tǒng)舵機(jī)轉(zhuǎn)向的四輪車更靈活,轉(zhuǎn)動(dòng)半徑更小,但又因?yàn)槭莾奢喓篁?qū),高速運(yùn)行中的不穩(wěn)定性比四輪車要高,方向控制難度更大,所以對(duì)傳感器的靈敏性的要求更高,控制的精度和快速性也更高。三輪車機(jī)械結(jié)構(gòu)與重心調(diào)整方面主要存在的問(wèn)題是:如果重心太過(guò)靠前,會(huì)導(dǎo)致轉(zhuǎn)彎時(shí)轉(zhuǎn)動(dòng)半徑過(guò)大,后輪失去動(dòng)力而滑出賽道;如果重心過(guò)于靠后,會(huì)使車模在加減速時(shí)車模抬頭而導(dǎo)致傳感器采集到的賽道信息突變,影響車模高速時(shí)的穩(wěn)定性。
針對(duì)上述問(wèn)題,本車模在機(jī)械結(jié)構(gòu)等調(diào)整時(shí)主要采用的做法有:優(yōu)化一切可以減重的配件,使總重降低;裝配時(shí)盡可能緊湊并使整車重心集中于后輪電機(jī)兩軸線中間并且重心盡可能降低;輪胎及齒輪等的調(diào)整。
智能車雙車直立車和三輪車實(shí)物圖如圖2所示。
圖1 智能車系統(tǒng)整體框圖
圖2 智能車雙車實(shí)物圖
為優(yōu)化機(jī)械結(jié)構(gòu)布局,為提高硬件電路本身的可靠性,在主控板的設(shè)計(jì)上作了優(yōu)化,主要有[8]:將單片機(jī)的最小系統(tǒng)與電機(jī)驅(qū)動(dòng)等電路設(shè)計(jì)在一塊PCB上;采用LQFP封裝芯片;單獨(dú)的運(yùn)放電路;芯片供電和信號(hào)采集等分別供電。整個(gè)系統(tǒng)由7.2V鎳鎘電池供電,電源設(shè)計(jì)上采用TPS7350將電池電壓7.2V穩(wěn)壓至5V,用TPS7333將5V穩(wěn)壓到3.3V,給K60、姿態(tài)傳感器、攝像頭和通訊模塊等器件供電。驅(qū)動(dòng)由IR2104作為驅(qū)動(dòng)芯片的MOS驅(qū)動(dòng)電路,整體板中間用74LVC245做隔離,整體板如圖3所示,該板占用空間小,運(yùn)行穩(wěn)定性高。電磁傳感器用運(yùn)算放大器將電感采集到的電流信號(hào)進(jìn)行放大,采用OPA2350雙路運(yùn)算放大器,該運(yùn)放具有放大倍數(shù)高、失真低、精度高等優(yōu)點(diǎn),采用TPS7350進(jìn)行供電,利用可調(diào)電阻來(lái)進(jìn)行放大倍數(shù)的調(diào)節(jié),電路如圖4所示。
圖3 PCB整體板圖
圖4 運(yùn)算放大電路圖
智能車系統(tǒng)控制總流程圖如圖5所示,各個(gè)模塊初始化開始后進(jìn)入一個(gè)主函數(shù)循環(huán),在循環(huán)里獲取利用主控芯片對(duì)圖像和電磁傳感器采集到的賽道信息并進(jìn)行處理,然后檢測(cè)撥碼的狀態(tài)來(lái)決定串口調(diào)試等功能是否使用,循環(huán)的最后是進(jìn)行起跑線的檢測(cè)以決定是否停車,不斷循環(huán)直至結(jié)束。
車模均采用1024線光電編碼器采集車模兩個(gè)驅(qū)動(dòng)輪的脈沖數(shù)經(jīng)過(guò)傳動(dòng)比和車輪直徑計(jì)算出當(dāng)前車模的行駛速度,反饋至單片機(jī)進(jìn)行閉環(huán),經(jīng)過(guò)處理后控制器輸出PWM控制電機(jī)以達(dá)到各種運(yùn)行狀態(tài)。
為提高直立車的運(yùn)行穩(wěn)定性,須避免頻繁加減速,在直立車的速度控制采用增量式PI控制,輔以積分限幅控制和分段控制法,在總體速度控制上采用近勻速運(yùn)行的思想,經(jīng)調(diào)試可以總體上實(shí)現(xiàn)直立車模的高速穩(wěn)定運(yùn)行,缺點(diǎn)是對(duì)于日益復(fù)雜的賽道而言速度和穩(wěn)定性往往是不可兼得,需大量調(diào)試。
三輪車速度控制采用增量式PI算法,優(yōu)點(diǎn)是計(jì)算量較小,可以快速達(dá)到目標(biāo)速度,這對(duì)于追求速度的三輪車而言是必須首要考慮的,但其不足之處是當(dāng)速度偏差為0時(shí)就無(wú)法實(shí)現(xiàn)增速,同時(shí)會(huì)出現(xiàn)積分飽和的影響。另外,三輪車的驅(qū)動(dòng)力和方向控制均來(lái)自后輪,因此在行駛過(guò)程中會(huì)出現(xiàn)速度環(huán)的輸出與方向環(huán)的輸出相互抑制的現(xiàn)象,即在彎道中或者在出彎時(shí)會(huì)出現(xiàn)突然減速的現(xiàn)象。針對(duì)上述現(xiàn)象,這里采用增量式PI算法配合棒棒算法,限制積分飽和和積分分離、比例分段輸出等處理方式,總體上實(shí)現(xiàn)了車模的高速運(yùn)行。
圖5 系統(tǒng)控制總流程圖
在直立車的直立與方向控制中,如何提高整體運(yùn)行的速度和成功率是主要目標(biāo),從以下幾點(diǎn)進(jìn)行分析研究:
首先必須程序整體執(zhí)行效率要高,在直立車的眾多控制算法中,串級(jí)控制的整體執(zhí)行效率高、魯棒性好,本文采用三環(huán)串級(jí)控制方案[8]:“速度環(huán)—角度環(huán)—角速度環(huán)”,其中,速度環(huán)是最外環(huán),角速度環(huán)PID控制是最內(nèi)環(huán)。直立環(huán)采用PD控制、速度環(huán)采用PI控制、方向環(huán)采用PD和補(bǔ)償控制。控制函數(shù)全部在定時(shí)器中斷完成,直立環(huán)與PWM輸出需要較高的響應(yīng)速度,可利用K60的PIT中斷,設(shè)置1ms的中斷時(shí)間,并分步實(shí)現(xiàn)5ms周期,將直立環(huán)與電機(jī)輸出控制在1ms周期中、方向環(huán)10ms控制周期、速度100ms控制周期。
其次在獲取車模姿態(tài)角度方面必須要快和準(zhǔn)確,這里采用加速度計(jì)和陀螺儀檢測(cè)車模運(yùn)行姿態(tài)的檢測(cè),并采用卡爾曼濾波的方法進(jìn)行多傳感器信息融合得到姿態(tài)角度等信息??柭鼮V波比一階互補(bǔ)濾波要更快速和準(zhǔn)確[3]。
最后車模自身的方向和賽道位置信息的獲取要準(zhǔn)確,這里將電感采集到的車身位置信息、角速度傳感器采集到的偏航角的角速度變化信息與各電機(jī)編碼器的方向速度反饋值關(guān)聯(lián)形成多反饋調(diào)節(jié)系統(tǒng),能夠?qū)崿F(xiàn)方向的精確快速調(diào)整。實(shí)際轉(zhuǎn)角和車身位置的獲取策略:使用電磁桿上四個(gè)電感來(lái)采集,采集到的電感值利用中值濾波實(shí)現(xiàn)雜波等干擾的濾波后,將電感值兩兩作差得到車身位置信息,通過(guò)設(shè)定參數(shù)可以將車身位置信息擬合出三個(gè)區(qū)間:左、中間和右區(qū)間,分別表示賽道中間電磁線的左方、正上方和右方,且此三個(gè)區(qū)間是關(guān)于電磁線對(duì)稱的。
會(huì)車要處理的元素較多,有圓環(huán)、障礙、斷路等,這些元素特征皆不相同,需要對(duì)每個(gè)元素進(jìn)行單獨(dú)的處理,以下對(duì)一些特殊元素的特點(diǎn)進(jìn)行分析提出相應(yīng)的處理方法,提出切實(shí)可行的會(huì)車的策略并進(jìn)行實(shí)踐。
3.3.1 圓環(huán)算法
圓環(huán)元素的鋪設(shè)是由一條電磁線在環(huán)島中環(huán)繞一圈而成,直徑不一。其特征為:幾何特征是圓環(huán)與直的電磁線相切,主要磁場(chǎng)特征是切點(diǎn)處由兩個(gè)同向磁場(chǎng)疊加[6]。一般的處理方法是:用豎直電感來(lái)判別入環(huán)特征,其能在入環(huán)切點(diǎn)處有較大的瞬間感應(yīng)電壓增幅,此時(shí)利用算法將水平電感循跡切換為豎直電感來(lái)進(jìn)行偏差的計(jì)算,則可使小車進(jìn)行循跡較平穩(wěn)入環(huán)。缺點(diǎn)是小車在環(huán)內(nèi)時(shí)運(yùn)行時(shí),傳感器的電感值特征不足以區(qū)分環(huán)島特征,導(dǎo)致車模在環(huán)內(nèi)速度較低,浪費(fèi)了較多時(shí)間。
這里針對(duì)上述問(wèn)題,這里調(diào)試了兩種處理方法,第一種是大家常用的,第二種是本實(shí)驗(yàn)室首次提出的。
第一,車模增加姿態(tài)傳感器或角速度傳感器,利用其在環(huán)島過(guò)程中的角度和角速度值變化特征(如積分)來(lái)區(qū)分環(huán)島判斷車身的姿態(tài),進(jìn)行消除環(huán)島標(biāo)志。優(yōu)點(diǎn)是入環(huán)較易、環(huán)內(nèi)運(yùn)行快、出環(huán)穩(wěn)定、調(diào)試方便。缺點(diǎn)是增加了傳感器,入環(huán)時(shí)有速度波動(dòng),若輪胎打滑則在高速入環(huán)時(shí)有嚴(yán)重偏離車道的風(fēng)險(xiǎn),試驗(yàn)中的三輪車使用此方法處理圓環(huán),取得了較好的效果。
第二,車模只用水平電感來(lái)判別入環(huán)。當(dāng)小車在經(jīng)過(guò)圓環(huán)切點(diǎn)時(shí),由于在切點(diǎn)處電感值最大,車體會(huì)發(fā)生輕微的橫擺方向振動(dòng),這時(shí)四個(gè)水平電感的電感值會(huì)交替發(fā)生變化,通過(guò)對(duì)各個(gè)電感值的變化波形曲線進(jìn)行分析,可依據(jù)曲線的波峰相位差來(lái)判斷是否到達(dá)圓環(huán)及所在圓環(huán)的左右方向。調(diào)試中使用此算法可以在不使用垂直電感、在環(huán)內(nèi)不用陀螺儀模塊的信息的情況下能實(shí)現(xiàn)循線入環(huán)出環(huán)、波動(dòng)很小,成功率很高。試驗(yàn)中的直立車使用此方法處理圓環(huán),取得了很好的效果。
3.3.2 障礙算法
賽道障礙為一個(gè)長(zhǎng)方體橫放在賽道上,并且比賽道略寬,電磁線從障礙下方穿過(guò)??刹捎脭z像頭、超聲波距離傳感器等方法來(lái)實(shí)現(xiàn)障礙檢測(cè)。本文利用灰度傳感器檢測(cè)賽道障礙的反射光強(qiáng),可通過(guò)公式計(jì)算出與前方障礙的距離。這里提出一種方法可以實(shí)現(xiàn)車模在不嚴(yán)重?fù)p失速度的情況下穩(wěn)定繞過(guò)障礙。主要思路如下:根據(jù)計(jì)算的與障礙的距離擬合出可以有效避過(guò)障礙的路徑,路徑可包含三段,檢測(cè)到障礙時(shí),向左側(cè)或者右側(cè)打一個(gè)固定角度并且通過(guò)編碼器算出行駛的路程;當(dāng)行駛到固定路程時(shí),切換成原方向并直線行駛一小段路程;最后切換到與第一段方向成直角的方向上行駛直至采集到主賽道電感值并循跡完成繞障礙的動(dòng)作。其中向左側(cè)或者右側(cè)打的固定角度約為30度,為方便調(diào)試可用按鍵來(lái)調(diào)整,行駛的距離可用以下計(jì)算公式:
S=K·Vad
式中:Vad為紅外傳感器采集的數(shù)值,K為比例值,這里可取K=0.17。
3.3.3 斷路算法
針對(duì)斷路特征,由于其圖像特征明顯,采用并調(diào)試了直立車模雙向灰度檢測(cè),即使用兩個(gè)灰度傳感器來(lái)同時(shí)檢測(cè)斷路,只有當(dāng)兩個(gè)灰度都檢測(cè)到斷路時(shí)才處理。三輪車模采用攝像頭和灰度傳感器共同檢測(cè)斷路,當(dāng)攝像頭離斷路1米檢測(cè)到斷路時(shí)減速行駛,當(dāng)灰度傳感器再次檢測(cè)到斷路時(shí)停車等待。這種方法成功率很高,在調(diào)試與比賽中沒有出現(xiàn)失誤。
3.3.4 會(huì)車算法
會(huì)車的處理方式很多,本算法采取的是會(huì)車后三輪車跟隨直立車行走,這樣的處理方法其實(shí)會(huì)浪費(fèi)一定的時(shí)間,但簡(jiǎn)便、可行和穩(wěn)定。雙車的會(huì)車算法和處理流程如圖6所示。
三輪車先檢測(cè)到斷路時(shí)停車等待并同時(shí)打開NRF發(fā)送和接收中斷,當(dāng)直立車模到達(dá)斷路時(shí)直立車發(fā)送信號(hào)給三輪車,三輪車模經(jīng)過(guò)一定時(shí)間后啟動(dòng),跟隨直立車行駛,直到檢測(cè)到終點(diǎn)停車;
直立車先到達(dá)斷路時(shí),掉頭并進(jìn)行等待,開啟接收信號(hào),同時(shí)開始不斷發(fā)送信號(hào),當(dāng)接收到三輪車到達(dá)斷路時(shí)NRF發(fā)出的信號(hào),此時(shí)直立開始行駛,并通知三輪車開始準(zhǔn)備跟隨行走,直到結(jié)束。
針對(duì)攝像頭與電磁導(dǎo)航的兩輪直立和三輪智能車進(jìn)行了設(shè)計(jì)制作和控制研究,主要有:
1) 從機(jī)械結(jié)構(gòu)的總體布局、重心配置、配件選擇等各個(gè)方面進(jìn)行優(yōu)化,為提高車模的高速穩(wěn)定運(yùn)行打好基礎(chǔ);
2) 采用多種控制方法相結(jié)合,優(yōu)化采集、處理和執(zhí)行等各環(huán)節(jié)算法,進(jìn)一步提高了車模運(yùn)行快速性和穩(wěn)定性;
3) 討論了賽道特殊元素的處理方法并給出了雙車會(huì)車策略等。
比賽中,雙車成功會(huì)車并通過(guò)所有特殊元素,圓滿完成比賽并沖進(jìn)賽區(qū)決賽,其中直立車速度約2.6m/s。