




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第六屆“飛思卡爾”杯全國大學生智能汽車邀請賽技 術 報 告學 校:隊伍名稱: 參賽隊員:帶隊教師:關于技術報告和研究論文使用授權的說明本人完全了解第六屆“飛思卡爾”杯全國大學生智能汽車邀請賽關保留、使用技術報告和研究論文的規定,即:參賽作品著作權歸參賽者本人,比賽組委會和飛思卡爾半導體公司可以在相關主頁上收錄并公開參賽作品的設計方案、技術報告以及參賽模型車的視頻、圖像資料,并將相關內容編纂收錄在組委會出版論文集中。參賽隊員簽名:帶隊教師簽名:日 期:摘要隨著現代科技的飛速發展,人們對智能化的要求已越來越高,而智能化在汽車相關產業上的應用最典型的例子就是汽車電子行業,汽車的電子化程度則被看作是衡
2、量現代汽車水平的重要標志。同時,汽車生產商推出越來越智能的汽車,來滿足各種各樣的市場需求。本文以第六屆全國大學生智能車競賽為背景,主要介紹了智能車控制系統的機械及硬軟件結構和開發流程。機械硬件方面,采用組委會規定的標準 A 車模,以飛思卡爾半導體公司生產的80管腳 16 位單片機 MC9S12XS128MAA 為控制核心,其他功能模塊進行輔助,包括:攝像頭數據采集模塊、電源管理模塊、電機驅動模塊、測速模塊以及無線調試模塊等,來完成智能車的硬件設計。軟件方面,我們在 CodeWarrior IDE 開發環境中進行系統編程,使用增量式 PD 算法控制舵機,使用位置式 PID 算法控制電機,從而達到
3、控制小車自主行駛的目的。另外文章對濾波去噪算法,黑線提取算法,起止線識別等也進行了介紹。關鍵字:智能車 攝像頭 圖像處理 簡單算法 閉環控制 無線調試第一章 引言飛思卡爾公司作為全球最大的汽車電子半導體供應商,一直致力于為汽車電子系統提供全范圍應用的單片機、模擬器件和傳感器等器件產品和解決方案。飛思卡爾公司在汽車電子的半導體器件市場擁有領先的地位并不斷贏得客戶的認可和信任。其中在8 位、16 位及32 位汽車微控制器的市場占有率居于全球第一。飛思卡爾公司生產的S12 是一個非常成功的芯片系列,在全球以及中國范圍內被廣泛應用于各種汽車電子應用中。受教育部高等教育司委托,高等學校自動化專業教學指導
4、分委員負責主辦全國大學生智能車競賽。該項比賽已列入教育部主辦的全國五大競賽之一。此項賽事涉及的專業主要有:控制,電子,圖像處理,及計算機等,能極大的培養學生的動手能力及創新型思維。也因此受到全國各大高校的重視。從第一屆發展到現在,飛思卡爾智能車比賽在全國高校的影響力也越來越大。在整個備賽過程中,隨著對小車各種性能要求認識的提高,我們的設計理念也隨著不斷的得到了更新。現在我們認識到,穩定的電路是小車運行的基本保證,優良的機械性能是小車快速穩定運行的有力保證,良好的控制算法能充分發揮硬件電路和機械性能的優勢,再加上一定的應賽策略就能在比賽中取得好成績。 基于以上的重要認識,在小車的制作過程中我們始
5、終把硬件電路設計、機械調節與安裝以及控制算法優化三個方面擺在同等重要的位置,同時入手,一齊改進,單把某個或兩個方面作為重點來突破都無法取得滿意的效果。我們從零起步,一步一個腳印的走過來;在數十次的試驗和嘗試過程中,我們從頭摸起,如今建立起了一套科學合理的試驗和研究方法,培養了迅速行動的良好習慣和大膽創新的開拓精神,為今后的工作和學習打下了堅實的基礎;在無數次的各種交流和學習后,我們深刻認識到了努力學習、大膽交流和團結協作的重要性。硬件電路設計智能小車的硬件電路設計在整個系統中起著基礎性作用,硬件電路的穩定性好壞影響著整個調試過程。本系統以飛思卡爾公司S12系列16位80引腳的MC9S12XS1
6、28作為核心控制處理器。此單片機具有8kB的RAM、64kB的EEPROM,完全滿足系統需要,而且具有很好的超頻性能。同時片上還集成了許多標準模塊,包括2個異步串行通信口SCI、3個同步串行通信口SPI、8通道輸入捕捉/輸出比較定時器、1個10位8通道A/D轉換模塊、1個8通道脈寬調制模塊,這些資源能夠滿足完成智能車所需要的所有的條件。硬件電路是整個小車系統運行的基本,因此小車硬件的設計制作必需仔細考慮,精心設計,最終可以穩定可靠地運行。基于這樣的認識與綜合小車的結構,合理地設計電路外形,合理的布局與布線,最終的框圖如下:本系統的硬件設計主要包括,電源模塊,視頻采集模塊,電機驅動模塊等等,下面
7、將就個部分進行詳細的介紹。圖像采集測速電源(12V、7.2V、6V、5V)舵機電機驅動5V7.2V12V5V5VMC9S12XS128 控制器撥碼開關圖2.1 小車控制系統框圖電源電路設計電源是小車系統的心臟,向各個電路模塊提供能量,如果電源的任何一個出了小問題,都會使系統無法正常工作,因此供電部分一定要也必須要穩定可靠。考慮到各部分模塊需要,其中5V的電壓分別供給單片機、測速、視頻分離模塊,6V供給舵機,7.2V供給電機驅動,12供給攝像頭。7.2V電源LM29405VMC3406312VLM11176V單片機編碼器CMOS舵機電機CMOS攝像頭供電在此部分,我們采用了升壓電路,采用的芯片為
8、MC34063,通過該電路直接把電池的7.2V升壓到12V,然后供給攝像頭。MC34063是開關穩壓芯片,可構成升壓、降壓斬波電路。輸出開關電流大于1.5A。2.5mA的低靜態電流。實驗證明,由其構成的12V穩壓電路完全能夠為CMOS攝像頭提供穩定的電源保證。其圖所示:舵機供電本想直接采用電池電壓的7.2V為舵機供電,但實際上每個電池的實際電壓卻遠遠不只7.2V,有的甚至達到8點幾伏,而且電池電壓在整個系統運行的時候會有很大的波動,為了避免產生不必要的問題,我們最終采用6V電壓為舵機供電,6V電壓是從7.2V的電池電壓中穩壓下來的,采用的穩壓芯片為LM1117。其他電路模塊供電下面對各種常見
9、3.3V 和 5V 穩壓芯片進行分析,尋找一款最符合穩定、高效和簡單的硬件設計宗旨的穩壓芯片。表 4.2.1 常見 3.3V、5V 穩壓芯片對比穩壓芯片78系列LM317系列LM2575 系列LM2940 系列LM1117 系列輸出電壓5V1.237V可調5V可調5V5V可調額定電流1A1.5A(2A max)1A(1.5A max)1A(2A max)800mA(1A max)最小壓差3V2V2V0.5V1V輸出紋波較大小小較小較小電路復雜程度低較低較高低低價格低較低較高較高較低經過對比我們可以知道 LM2940 系列和 LM1117 系列都是低壓差的三端穩壓芯片系列,性能穩定且外圍電路只有
10、兩個濾波電容,電路設計簡單高效,最能滿足硬件設計宗旨和需求。所以我們在 5V 穩壓芯片選擇貼片的LM2940芯片。具體電路圖如下圖所示視頻信號采集電路模塊我們的小車采用黑白CMOS模擬攝像頭來采集路況信息。該攝像頭重量輕、體積小、易安裝是我們選用它的原因之一。視頻信號分離采用LM1881視頻分離芯片,分離出模擬視頻信號的行同步信號和場同步信號,單片機根據這些同步信號來搭建控制時序,完成信號處理和各種控制。如圖所示:電機驅動電路競速比賽的智能車最關鍵的就是要有強勁的驅動力。這個“驅動力”不光包括通常所說的驅動電機,同時還包括電機驅動電路。由于比賽規則嚴禁改動更換驅動電機,所以一個好的電機驅動電路
11、對比賽影響非同小可,要能夠保證長時間大電流輸出的情況下減少升溫且要穩定持續工作。對于PWM調速的電機驅動電路,主要有以下性能指標:1.輸出電流和電壓范圍:它決定著電路能驅動多大功率的電機。2.效率:高的效率不僅意味著節省電源,也會減少驅動電路的發熱。要提高電路的效率,可以從保證功率器件的開關工作狀態和防止共態導通(H橋或推挽電路可能出現的一個問題,即兩個功率器件同時導通使電源短路)入手。3.對控制輸入端的影響:功率電路對其輸入端應有良好的信號隔離,防止有高電壓大電流進入主控電路,這可以用高的輸入阻抗或者光電耦合器實現隔離。4.對電源的影響:共態導通可以引起電源電壓的瞬間下降造成高頻電源污染;大
12、的電流可能導致地線電位浮動。5.可靠性:電機驅動電路應該盡可能做到,無論加上何種控制信號,何種無源負載,電路都是安全的。BTS7960 在較小的電路板空間占用的情況下為大電流保護的 PWM 電機驅動提供了一種成本優化的解決方案,于傳統的MC33886驅動能力十分有限,,根據上圖各種驅動方案得比較得知用BTS7960是較好的選擇。其電路圖如下:不過在今年的飛思卡爾比賽中攝像頭組的C車模是雙電機驅動,所以就要用到四塊的BTS7960芯片分別對兩個電機驅動,原來基礎上再加一路驅動電路就行了,加兩路閉環,兩路PWM分開控制,最關鍵的還是軟件,不過直道上,兩輪的速度應該相同才有利于在直線上的加速,可以通
13、過兩個編碼器反饋進而調節兩個電機,而且舵機的響應速度很高,0.16sec/60度,可以電機輔助轉彎,沒有必要使電機共軸。但是考慮到程序算法的復雜性,而且經過有些組別在我們已經采用兩個電機級聯的方法,感覺這影響也不是很大,既然有過成功的案例,所以我們暫時也通過電機共軸來簡化程序。主控制系統主控制系統相當于大腦,車子的轉向,加速減速、識別、判斷全都由它來完成。我們直接采用比賽提供的MC9S12XS128,但是由于現在經驗還是不夠,所以我們將主電路,電源電路,驅動電路分開,以降低電路問題帶來的風險。圖13 單片機最小系統原理圖單片機引腳規劃如下:PORTA1-5:按鍵PORTT0-2:LED 測試燈
14、PORTB0-7:攝像頭數據線PORTE2-7:無線傳輸模塊PE2:奇偶場信號IRQ:行同步脈沖輸入信號。PT6:光電編碼器脈沖輸入信號。PWM0、1:舵機角度控制信號輸出。PWM2、3、4、5:電機速度控制信號輸出。45 / 46文檔可自由編輯打印機械結構設計硬件軟件的結合可以控制小車能夠順利地運行,但真正在賽道上跑的是小車,良好的機械的性能可以幫助小車更好地工作。就像一個真正的賽車手一樣,要跑出好成績,除了需要一個好車手以往,還需要一輛好車,兩者缺一不可。基于這種想法,我們非常重視車模的機械結構。差速器的調節差速器的松緊程度對模型車的轉彎性能、加速性能有較大的影響。差速器越松對轉彎越有利,
15、但是不利于模型車的加速,如果差速器過松,還會導致差速器嚴重的滑動,使得編碼器測得的速度與實際速度不符等。差速器越緊越有利于加速,但是不利于轉彎。綜上應選擇一折中的程度,即半鎖狀態,新車模在未調節差速器時即處于這種狀態。傳動齒輪的調節輪子的動力是電機通過傳動齒輪傳到后輪的,因此齒輪間的耦合十分重要。如果耦合過松則齒輪容易受損甚至會打壞齒輪,但如果過緊又會加重電機的負擔,甚至造成磨擦過大或者卡死現象。所以要把齒輪調節到一個適當位置,使齒輪既可傳動又不會因為磨擦過大發出噪聲。同時,為了減小齒輪間的磨擦,我們給齒輪間加上潤滑油。舵機的安裝舵機是車模中很重要的一個部分,車子的轉向全靠它。舵機的安裝得是否
16、得當直接關系到車子的轉向性能,因此考慮一個好的安裝方法是十分重要的。由于比賽規定禁止改動伺服舵機,所以我們采取加壓的方法提高舵機的性能。實踐表明,電壓過高極易燒毀舵機里面的驅動三極管,我們只好使用較適宜的 5V 作為舵機的電源電壓。還有,我們也試圖提高舵機輸入的 PWM 波的頻率來提高舵機的性能,最后因為這樣的改動極為容易造成舵機的燒毀,故使用較為常用的 50Hz 作為舵機輸入的 PWM 波的頻率。車輛的轉向響應就存在這樣一個平衡:即增加轉向力臂可以提高轉向的響應速度,但增加力臂也會導致車輛高速轉向時車輪對舵機反向的作用力增加,一旦這個反向的力矩大于舵機的扭矩,舵機就會因發熱過度而燒毀。鑒于舵
17、機性能所限的情況下,我們通過車子高速轉向時所需的扭力計算出安全力臂約為 3cm,所以根據整車的實際情況,在盡量減少轉向傳動摩擦的前提下,我們選擇了舵機直接傳動轉向傳動軸的方法,力臂長度為 2.6cm。攝像頭的安裝攝像頭是收集道路信息的核心部分,安裝方法的好壞直接關系到車子的性能。因些必須選擇一個合適的安裝方法既可以讓攝像頭有足夠廣的視野,又不使車子的重心過高。為了使得整車的重心降低,攝像頭的高度就要有所限制,但是隨之而來的問題就是攝像頭的視野收到了局限。如果攝像頭放在整車的前方,盲區和視野區都將縮小,車輛的視野寬度和前瞻性都將受到影響;如果攝像頭放在整車的后方,盲區和視野區都將擴大,雖然能夠提
18、高車輛視野寬度和前瞻性,但是小車前的盲區也會成為影響車輛穩定性的隱患(如圖 2.2.1 所示)。圖 2.2.1 前置攝像頭與后置攝像頭的視野差異CMOS攝像頭視野的調整攝像頭的左右視野不對稱,是一個不等腰梯形,因此必要在機械設計時做適當調整,如圖所示:圖3.2 攝像頭可視范圍示意圖光電編碼器安裝編碼器安裝方法也有很多種,為了安裝得牢固,我們采用剛性安裝的耦合方法,直接采用齒輪帶動編碼器。本想在車模上直接打孔安裝,但為了避免打孔打偏產生誤差及可調性不好,我們放棄了這一想法。采用設計外部零件固定編碼器的方法,最終設計了一個較好的安裝零件,而且前后左右可調,可以理想地安裝編碼器。如圖3.3所示為未裝
19、編碼器時的模型:其它部件的調節這要根據到以后的情況進行調試,改進。軟件設計高效穩定的程序是智能車平穩快速尋線的基礎。本智能車采用CMOS攝像頭作為尋線傳感器,圖像采集處理就成了整個軟件的核心內容。在智能車的轉向和速度控制方面,我們使用了經典PID控制算法,配合理論計算和實際參數補償等辦法,使在智能車達到了穩定快速的效果。系統程序主要包括初始化程序、圖像采集及圖像處理程序和PID速度控制程序等。下圖為系統軟件流程圖。 4.1系統軟件流程圖由于攝像頭每秒掃描25 幀圖像,每幀又分奇、偶兩場,先奇場后偶場,故每秒掃描50 場圖像。采集每場需要的時間大約為20ms,程序每采集一場圖像執行控制一次,故速
20、度控制也只能限定在20ms內調整一次。視頻信號采集CMOS視頻模擬信號經LM1881視頻分離芯片分離出場信號和行信號,以場信號和行信號作為視頻信號時序根據,使用S12單片機片內AD對模擬信號進行采集。 本隊采用的CMOS黑白攝像頭每幀信息共320行,其中場頭消隱22行,場尾消隱11行(以LM1881分離出來的場信號跳變沿作分界),即有效的圖像信息為287行。在單片機內存有限的情況下,如此大的信息量不可能完全被采集。根據攝像頭安裝位置和俯仰角度大小,以及考慮到圖像的畸變等因素,本隊采取跳行采集,所跳行數從近到遠。根據需要共采集12行信息,每行采集52個點,從而形成12*52像素的圖像數組用于路況
21、分析。 為了檢測起始線,采集到的一幀前面2行作為起始線的檢測數據。按照本隊攝像頭的安裝方案,從一幀的第100行到260行在路面上前后可以覆蓋20cm的距離,按照4m/s的速度計算,攝像頭每采集一幀圖像(20ms)小車可前進8cm。所以能覆蓋20cm的檢測方案足以完成對所經過路面的路況檢測,不會漏掉起始線。 圖像采集攝像頭采樣機制攝像頭主要由鏡頭,圖像傳感芯片和外圍電路構成。圖像傳感芯片又是其最重要的部分,攝像頭的指標(如黑白或彩色,分辨率)就取決于圖像傳感芯片的指標。攝像頭通常引出三個端子,一個為電源端,一個為地端,另一個就為視頻信號端(有的攝像頭多出一個端子,那是音頻信號端)。電源接多大要視
22、具體的單板而定,目前而言,一般有兩種規格,6-9V,或9-12V 。視頻信號的電壓一般位于0.5V-2V 之間。攝像頭的主要工作原理是:按一定的分辨率,以隔行掃描的方式采樣圖像上的點,當掃描到某點時,就通過圖像傳感芯片將該點處圖像的灰度轉換成與灰度成一一對應關系的電壓值,然后將此電壓值通過視頻信號端輸出。具體而言(參見圖4.2),攝像頭連續地掃描圖像上的一行,就輸出一段連續的電壓視頻信號,該電壓信號的高低起伏正反映了該行圖像的灰度變化情況。當掃描完一行,視頻信號端就輸出一低于最低視頻信號電壓的電平(如0.3V), 并保持一段時間。這樣相當于,緊接著每行圖像對應的電壓信號之后會有一個電壓“凹槽”
23、,此“凹槽”叫做行同步脈沖,它是掃描換行的標志。然后,跳過一行后(因為攝像頭是隔行掃描的方式),開始掃描新的一行,如此下去,直到掃描完該場的視頻信號,接著就會出現一段場消隱區。此區中有若干個復合消隱脈沖(簡稱消隱脈沖),在這些消隱脈沖中,有個脈沖,它遠寬于(即持續時間長于)其他的消隱脈沖,該消隱脈沖又稱為場同步脈沖,它是掃描換場的標志。場同步脈沖標志著新的一場的到來,不過,場消隱區恰好跨在上一場的結尾部分和下一場的開始部分,得等場消隱區過去,下一場的視頻信號才真正到來。攝像頭每秒掃描25 幅圖像,每幅又分奇、偶兩場,先奇場后偶場,故每秒掃描50 場圖像。奇場時只掃描圖像中的奇數行,偶場時則只掃
24、描偶數行。圖4.2攝像頭視頻信號檢測賽道相對車模中心的偏移量、方向、曲率等信息是實現車模自主沿賽道運行基礎,獲取更多、更遠、更精確的賽道信息是提高車速的關鍵。LM1881是針對電視信號的視頻同步分離芯片,它可以直接對電視信號進行同步分離,準確地獲得所需的視頻圖像信號,使用者可根據需要對該同步信號進行時序邏輯控制。圖4.3 LM1881應用原理圖圖4.3引腳2 為視頻信號輸入端,攝像頭信號即由此輸入LM1881 。引腳1 為行同步信號輸出端,它輸出的信號波形只是輸入的攝像頭信號在黑屏電位之下的波形的簡單復制(對比圖中b 和a)。引腳3 為場同步信號輸出端,當攝像頭信號的場同步脈沖到來時,該端將變
25、為低電平,一般維持230us,然后重新變回高電平(如圖4.4中的c)。引腳7 為奇-偶場同步信號輸出端,當攝像頭信號處于奇場時,該端為高電平,當處于偶場時,為低電平。奇-偶場的交替處與場同步信號的下降沿同步,也就是和場同步脈沖后的上升沿同步(如圖4.4中的d)。事實上,我們不僅可以用場同步信號作為換場的標志,也可以用奇-偶場間的交替作為換場的標志。視頻信號中除了包含圖像信號之外,還包括了行同步信號、行消隱信號、場同步信號、場消隱信號以及槽脈沖信號、前均衡脈沖、后均衡脈沖等,因此,若要對視頻信號進行采集,就必須準確地把握各種信號問的邏輯關系。LM1881就是針對視頻信號的同步分離而生產的,LM1
26、881可以從0.52V的標準負極性NTSC制、PAL制、SECAM制視頻信號中提取行同步、場同步、奇偶場識別等信號,這些信號都是圖像數字采集所需要的同步信號,由此便確定采集點在哪一場,哪一行。本隊的連接方式在前面硬件部分已經介紹了。圖像采集原理攝像頭視頻信號端接LM1881 的視頻信號輸入端,同時也接入S12 的一個AD 轉換器口(選用AD0)。LM1881 的行同步信號端(引腳1)接入S12 的一個帶中斷能力的I/O 口(選用IRQ 口,S12 帶中斷能力的接口除T 口外還有H 口、P 口、J 口和E 口)。之所以選用中斷IRQ 口是因為,行同步信號(即對應攝像頭信號的行同步脈沖)持續時間較
27、短,為了不漏檢到行同步信號,若使用普通I/O 口,則只能使用等待查詢的方式來檢測到行同步信號,這會浪費不少S12 的CPU 資源。LM1881 的奇-偶場同步信號輸出端接S12 的XIRQ口。采樣思路,攝像頭是采用隔行掃描的方式,奇場時只掃描畫面的奇數線,偶場時只掃描畫面的偶數線。攝像頭每場信號的第23 行至第310 行為視頻信號,即攝像頭每場會掃描產生288 行的視頻信號。為方便設計,我們忽略奇場和偶場在掃描位置上的細微差別,認為奇、偶場的掃描位置相同。因此,我們只需對這288 行視頻信號中的某些行進行采樣就足夠了。假設每場采樣27 行圖像數據,我們可以均勻地采樣288 行視頻信號中的27
28、行,例如采樣其中的第14 行、第23 行、第32 行、第257 行、第266 行,即采樣該場信號的第36 行、第45 行、第54 行、第279 行、第288 行(每場開始的前22 行視頻為場消隱信號)。當XIRQ 口的信號由高變低或由低變高時,表明新的一場到來了,由此時開始對行同步信號重新計數。當IRQ 口每檢測到一個上升沿,表明一個行同步信號剛過去,讓計數變量增1。當計數變量變為36 時,表明第36 行信號(即第14 行視頻信號)開始了,對此行信號進行采樣,直到下一個行同步信號到來為止。保持對每個行同步信號的計數,直到計數變量又增加9 個變為45 時,開始對到來的第45 行信號(即第23 行
29、視頻信號)進行采樣,直到下一個同步信號到來為止。如此下去,計數變量每增加7 個,就采樣隨后的一行視頻信號,直到采樣完第288 行信號(即第266 行視頻信號),然后就結束了對該場信號的采樣。S12 是每9 行視頻信號才采樣其中一行,因此在這每9 行中那8 行不需要采樣的信號持續的時間內,可讓S12 處理別的任務,然后,隔段時間檢側一次PT 口有沒有接受過新的上升沿或下降沿(表明有新的行同步信號過去),并相應地給計數變量增1。這樣,既不影響攝像頭視頻采樣,也不耽誤智能車定位系統中別的任務的執行。圖像處理CMOS傳回來的視頻信號接入LM1881視頻分離芯片,分離出模擬視頻信號的行同步信號和場同步信
30、號,單片機根據這些同步信號來搭建控制時序,完成信號采集,AD轉換。每場圖像采集12行52個點,即圖像被單片機采集后存于的數組中。采用跳變檢測法,識別圖像每行中的黑點,進而辨別出圖像中的直道,大彎,急彎,還有小S彎等。黑線提取方法根據采集點電平高低來提取前方路面黑點信息,低電平(數值小)表示黑點,高電平(數值大)表示白色路面,通過提取黑點位置來判斷路況。黑線提取思路有:a) 直接利用原始圖像逐行掃描,根據設定的閾值提取黑白跳變點;這方法費時且容易受干擾。b) 黑線寬度有一個范圍,在確定的黑線寬度范圍內提取有效黑塊,這樣可以濾除不在寬度范圍內的黑點干擾;c) 利用黑線的連續性,根據上一行黑線中心的
31、位置來確定本行求出的黑線中心是否有效;d) 圖像是遠處小近處大,所以黑線寬度范圍和前后行黑線中心的位置差別都要動態調整;e) 求黑線中心時,因為近處的黑線穩定,遠處黑線不穩定,所以采用由近及遠的辦法;f) 圖像數據量大,全部掃描一遍會浪費很多時間,利用前面已經求出的黑線中心位置判斷出黑線的趨勢,從而推斷出下一行的黑線大概位置,確定出掃描范圍,避免整行逐點掃描,節約時間;g) 提取出整場所有有效行的黑線中心后,根據預先設定好的權重計算出黑線中心的加權平均,作為本場的黑線中心。本智能車通過片內AD每行采集52個有效點,其中賽道黑線采集1至5個有效點(最遠處1個點最近處5個點),以第25個點為中心,
32、提取每場采集到的12行信息,用于分析賽道類型。我們采用的算法為,圖像數組經過閥值二值化(大于閥值為0,小于閥值為1)后,從某一行的左邊開始,向右搜尋,以此來尋找黑線的起始點。為了確保搜尋到的起始黑點非常可靠,則所搜尋的行就必須受干擾最小。由于距車子前端最近的一行圖像數據受干擾幾乎為零,因此將此行作為基準行進行搜索黑線起始點。搜尋黑線起始點的方法為,從該行左邊開始搜尋從0到1 的跳變,為了保證該跳變就是黑線的出現,我們用四個點的信息來進行判斷黑線出現,即,從左到右的四個像素點分別為0011(此算法還可以輕松濾掉藍色地板帶來的干擾,當拍攝到邊界地板時,藍色也被二值化為1,這時的跳變為1100,不滿
33、足條件)當搜尋到黑線的出現時,再從出現1的那個列值開始,向右搜索1到0的跳變,如果搜索三個連續的像素點為110時,即出現1到0的跳變,此時還不能斷定是起始點的出現,因為也可能是搜尋到的起跑線兩側的跳變。因此需要加上另一個限定條件,即兩次跳變之間1的個數,即黑點個數、黑線寬度。由拍攝到的大量圖像得出,25mm的黑線所占像素點最多為5個,因此加個的限定條件為,搜索到的最右邊黑點所在列值減去最左邊的黑點所在列值,如果此值小于7的話,則可以確定搜尋到了所需的黑線起始點。否則就視為沒有搜尋到黑線起始點,黑線信息按上一場提取到的進行處理。黑線起始點已確定,如果圖像數組中的每一行都按上述方法進行處理搜索,將
34、會浪費太多時間,以至于在20ms內無法完成所有控制。由于黑線的連續性,不難想到,可以借用數字圖像處理技術中的邊界跟蹤方法,借助可靠的起始點,來對圖像數據進行連續的區域掃描,以此來獲得所需的黑線數組。具體方法如下:當黑線起始點確定以后,以此點為基點,向此點的上、左、右進行搜索為1 的點(因為我們搜尋到的起始點在圖像最下方,因此區域掃描不能向下,否則會出現將黑線左右兩個邊界都搜尋出來,沒有必要,而且會浪費時間)。如圖3.6所示:圖3.6 區域掃描對圖中五個點搜尋的優先級,必須按圖中所標的優先級順序來進行搜索,否則的話,十字交叉就會過濾不掉,從而影響賽道的判斷。起初我們設置的優先級順序為先左右后向上
35、, 由于我們采取的方法是,得到的黑線數組,每一行中只保留一個黑點,如果一行中有多個黑點,下一次的將前一次的覆蓋掉(這樣有利于后面的舵機和速度控制)。如果向右為最高優先級,跟蹤的結果,會被判斷為彎道。從而使智能車走錯誤的路線,這是我們不想看到的。經過分析,將區域搜索的優先級改為如圖3-6所示后,十字交叉被輕松濾過。我們的方法比較簡單,直接對二值化后的圖像進行提取黑線,沒有濾波,去雜等處理。但由于賽道及場地環境的關系,雜點以及地板等干擾,都出現在圖像的前端或邊界,距中間實際黑線都有一定的白色底板的間隔,因此不用擔心會搜尋到雜點。路徑識別我們從圖像的30行采到240行,其中每隔17行采集一次,于是可
36、得12×52的數組,采完后對數組進行識別處理。第一,先利用單邊搜索法尋找最近2行的黑點,若連續2行都沒有發現黑點,則認為視野出界,什么也沒有看到,這時停止搜索,直接進入控制程序,控制保持上次圖像處理結果。若都發現黑點,則進行第二步。第二,第1第2行都發現黑點后,我們記下黑點的位置,然后繼續后面行的黑點搜索,并記下黑點位置。若黑點位置與前面黑點位置偏差太大,我們記下有一跳變標志。這個跳變可能是起跑線也可能是干擾,先把標準位記下,后面進一步處理。第三,若沒有跳變,則繼續搜索下一行。若發現該行找不到黑點,而且前一點(row-1)的位置在圖像的最左或最右區域,這時我們認為這行以后已經離開了黑
37、線,即黑線到頭了,應該是彎,記下head=row+1.我們后面用到head來判別急彎和普通彎。第四,對跳變進行處理,先對跳變行進行起跑線判斷。若是起跑線,則進行停車程序。若不是起跑線,則很可能是黑三角或十字交叉。我們用中值濾波濾波掉。四步下來圖像基本處理結束。最后進行的是識別程序,根據賽道情況我們細分下面幾種情況:1.直道、小S,急彎50、普通彎60.算法流程圖當所有黑點的位置都落在中心線區域內時,我們認為此時圖像顯示的是直道或小S道,如圖直道小S道識別圖:直道識別圖當head某個值時,我們進行急彎和普通彎的識別,通過電視機輔助調試,我們取值為3.當head大于3時,我們認定為急彎,小于等于3
38、為普通彎。如圖所示:彎道的判別圖起跑線的檢測本智能車采集每幀信號的第1行至2行信息作為起始線的檢測數據。根據對起始線特征(黑白黑白黑)的判斷,當檢測到某行的電平有“低高低高低”的特征時就認為是起始線。為了不產生誤檢測,通過判斷連續3行以上起始線特征數據行才確認為起始線。當確認為起始線之后,馬上屏蔽起始線檢測2秒,以保證智能車順利通過起。我們設定采集的行數為40行,假設圖像前后端均勻分配,每行所占的實際距離為1米/40=2.5cm,假設智能車的速度為3米每秒,3m/s*20ms=6cm,6cm/2.5cm=2.4行。即一場圖像處理完成后,起跑線會向圖像后端移2.4行,因此,只需在圖像后端一定行內
39、進行起跑線的判斷即可。不會浪費太多時間。經過不斷測試,我們選取離車子前方最近的20內進行起跑線的判斷。1,圖像經過二值化后,在后20行內,從最左端開始由下到上搜尋0到1 的跳變,當搜尋到后,再由1開始,搜尋1到0零的跳變,如果出現,并且1的個數小于某一個值,則認為此搜尋有效。此時可以借助黑線的連續性,由出現1的這一行,向列值變大的方向,即向右搜尋1到0的跳變,如果出現,并且黑點數,即1的個數大于某一值,則認搜尋到了起跑線的左側一半。2,接著再從此行向右搜尋01跳變,即找賽道的中心黑線,此時也是有01,10兩個跳變的出現才認為正確。上述兩種情況都滿足時,還不能確定就是起跑線,因為當智能車斜著通過
40、十字交叉時,也是出現上述兩種情況,而且只有這兩種。因此必須搜尋起跑的右半邊。上述情況成立后,就可以確定右半邊黑線的搜尋范圍。因為智能車有可能偏離賽道通過起跑線,因此,我們將右半邊的搜索設定在上述出現兩次跳變的那一行的上下一個范圍內,太大會浪費時間,太小剛可能搜尋不到。范圍設定后,搜尋方法跟上述1方法類似,只是上下限被設定的非常小。如果搜尋到的情況滿足,則此時就可以斷定是起跑線的出現了。經過實際實驗,我們的方法對起跑線的檢測準確率極高。控制策略有了一定的路徑識別算法后,要想小車快速穩定,我們需要很好的控制算法。系統根據識別到的路徑信息進行有效的速度控制。當檢測到為直道時小車以設置最高目標速度高速
41、行駛,當進入彎道時,以次高速行駛。識別到急彎時速度進一步降底。根據不同的彎道路況,速度控制也是有所區別。為了盡量提高車速,采用直道上設置最高目標速度,轉入彎道立即減速,并把車速調整到過彎極限速度,保證小車順暢過彎且不出跑道。要使小車高效完成比賽,則小車的速度將如圖3所變化:(假設小車是依次經過直道,大彎,急彎,再小S彎,最后回到直道)。圖3不同路況中小車速度變化圖經典PID控制算法介紹在生產過程自動控制發展歷程中,PID控制方式歷史最久、生命力最強,其原理簡單、適應性好和魯棒性強等優點使之成為工業過程控制的主要技術之一。PID 控制原理框圖如圖 4.11 所示。圖4.11 單位反饋的PID控制
42、原理為了使小車能較好跟蹤圖3的目標速度,我們先采用常規PID算法。通過旋轉編碼器實現智能車的速度采樣,進行閉環PID速度控制。通過速度反饋可以快速、有效的調節PWM的占空比,使小車跟蹤目標速度。系統利用測速模塊反饋的當前速度值,通過增量式PID算法進行調節。增量式PID算法的優點:增量式每次輸出并不與整個過去狀態有關,計算式中沒有用到過去偏差的累加值,不容易產生較大的積累誤差。增量式只需計算增量,當存在計算誤差或精度不足時,對控制量計算的影響較小。增量式PID的算式為: (2)。單神經元PID速度控制器仿真在實驗中,該算法能滿足一般的控制要求。但當平均速度加大時,控制系統的響應速度不夠,小車容
43、易沖出賽道(未能及時剎車),再者,由于更換電池后電量變化較大,PID系數也要變化。所以系數非常難調,花了大量的時間才調出個比較理想的參數。就此我們引入單神經元PID控制算法。單神經元作為神經網絡的基本單位具有自學習和自適應能力,而且結構簡單、易于計算。而PID控制器的參數與被控對象聯系密切,將兩者結合組成具有自適應能力的單神經元PID控制器,可以實現電機負載變化時控制器參數的自動調節圖4所示單神經元控制器結構圖。圖4單神經元控制器結構圖圖中轉換器的輸入為,輸出為,經過轉換器轉換后得神經元的輸入量、,即積分、比例和微分三個分量。且有: (3) (4) (5) (6)設 為對應于的加權,為神經元的
44、比例系數,。單神經元控制器通過有監督的Hebb學習規則調整加權系數。控制量為: (7) (8)單神經元PID控制器的控制學習算法為: (9) (10) (11)上面的式中,分別對應增量式PID控制器的3個參數, ,、為比例、積分、微分的學習速率。為了更清楚準確的比較兩個算法的差異,我們在MATLAB中進行仿真比較,系統的輸入,控制對象都相同。常規增量PID控制方式時,由于積分項容易產生飽和,影響系統的穩態性能,積分項Ki=0,其它參數分別為Kp=1.2、Kd=4,采樣時間為20ms(由于受圖像采集和處理影響,控制部分只能20ms運行一次)。在此條件下,小車的速度給定波形如圖5所示。(其中最高速
45、為直道4.5m/s,急彎最小,為1.5m/s,普通彎和小S彎為2.5m/s和3.5m/s。)圖5 小車給定速度波形常規PID跟蹤結果如圖6,其中藍色是小車給定的目標速度,紅色是實際跟蹤速度。其中上升時間約為300ms左右,存在一個波動。圖6 單純PID控制小車速度波形當采用單神經元PID速度控制時設速度控制器PID參數的初始值為,;學習速率為0.2, 學習速率為0.01,學習速率為0.001,神經元的比例系數為0.6。同樣小車在速度給定波形如圖5所示時,圖7為單神經元PID速度控制方式下小車穩態時速度波形。對圖6和圖7所示的試驗波形做比較,可以看出,采用了單神經元PID控制方式的控制效果好于單
46、純的PID控制方式,上升時間沒有受到參數整定計算影響都是150 ms左右,有很小的超調量并且穩態運行時速度的穩定性非常好。再由圖7可以看到當速度給定為圖5波形時系統在單神經元PID控制方式下有很好的快速性和穩定能。圖7 單神經元PID控制速度波形由仿真結果可以看出,采用單神經元自適應PID控制算法,智能車在加速或減速時能在較小的增幅或減幅范圍內快速調節到目標速度,從而保證了模型車的平穩過渡而不影響整體速度。由于單神經元的連接權值可調,使得基于單神經元的PID控制器具有在線調整參數,自學習以及自適應的能力。在智能車速度控制中,單神經元PID優于常規PID,能快速提高智能車運行速度。從而為智能車快
47、速、平穩的前進、轉彎以及制動控制提供更好的判斷依據開發與調試好的開發和調試工具以及測試環境能夠加快產品開發速度,提高調試精度,減少工作量。本章將對開發和調試工具以及測試環境作相關說明。本智能車在開發和調試中所使用開發環境為Metrowerks公司的集成開發環境MetrowerksCorewarrior IDE4.7和與之配套使用的調試軟件 hiwave,調試器為清華大學工程物理系開發的 BDM,輔助調試工具有電視機、KT板、刻度尺等。通過以上各工具配合使用,再加上良好的測試環境,使得小車開發和調試能夠順利而快速地完成。 軟件開發環境Corewarrior IDE 是 Metrowerks 為其
48、 DSP 和微處理芯片所推出的專用可視化集成開發環境,功能強大,除了能編譯代碼外還具有芯片仿真等功能。下面以一個簡單的實例來說明使用 Corewarrior IDE 開發全過程。 BDM常見問題解決辦法BDM for S12(TBDML)設計了跳線開關,允許用戶對BDM for S12(TBDML)進行一些特定的設置,以此滿足用戶的特定要求。打開BDM for S12(TBDML)硬件包裝盒,可以看到有3個跳線可以進行設置,分別是J4、J5和J6。 BDM引腳定義,跳線J4用于選擇BDM電纜的信號定義。 默認狀態為J4閉合。 當J4閉合(有跳線)時,BDM電纜的信號定義如圖1所示; 當J4斷開
49、(無跳線)時,BDM電纜的信號定義如圖2所示。 目標板供電方式選擇 ( 跳線J5和J6) 默認狀態是目標板由5V外部電源供電。跳線J5、J6用于選擇目標板的工作電壓,以及供電方式。J5、J6跳線具體設置如表1所示。 表1 跳線J5、J6設置目標板工作電壓設置類型跳線J5跳線J6目標板工作電壓目標板供電方式1(默認)閉合(有跳線)斷開(無跳線)+5V自供電2閉合(有跳線)閉合(有跳線)+5V由BDM供電(不推薦,因為USB供電不足)3斷開(無跳線)閉合(有跳線)+3.3V自供電4斷開(無跳線)斷開(無跳線)無效【常見問題之一】正確安裝了BDM for S12(TBDML)的驅動程序和
50、動態鏈接庫后,并用BDM連接了目標單片機后,在Hiwave.exe的【TBDML HCS12】菜單中,沒有出現“Flash.”項,無法對目標單片機進行調試。 解決辦法:首先,用戶應該確保目標板供電正常,BDM for S12(TBDML)默認的電源工作方式是目標板自供電;如果,還有問題,用戶應該打開BDM的包裝小盒,查看跳線J4是否已經短接,原因見上文。 【常見問題之二】驅動程序安裝正常,跳線也沒有問題,目標板也供電了,但BDM還是不工作。 解決辦法:出現這一問題,最大的可能是,用戶的CodeWarrio版本不對,沒有利用CodeWarrio V4.1以上的版本進行調試。安裝高版本的CodeW
51、arrio即可解決問題。 總結本文主要介紹了采用飛思卡爾單片機MC9S12XS128進行控制處理,基于CMOS攝像頭進行路徑識別的智能車設計。回顧整個過程,從最初的CMOS攝像頭的選取, CMOS攝像頭的安裝位置的調整,主板電路的設計與檢測,再到控制算法的編寫和調試,最終設計出了相對穩定的賽車。從總體上看,賽車主要分為車體機械結構的調整,硬件電路的設計,軟件算法的設計和調試。機械結構在機械結構的調整上,主要調整了舵機的擺放方式和攝像頭的安裝位置,也對賽車進行了大規模的改造。通過實際的測試和調整,使車已經能適應跑道并且達到了相對的穩定。但由于條件的限制,所需的支架都要手工制作和打磨,對于攝像頭的
52、安裝精度有一定的影響,左右平衡性稍差,在對賽車的定期維護,保養元件減少損耗上也有很多的不足,在將來的制作中一定要提高機械制作精度,把握好賽車的平衡性。使用專業的維護工具,在跑車的前后要做保養維護。硬件設計在硬件方面,制作電路板的過程中,我們首先利用對電路進行多次的仿真,減少了電路問題造成對原件的拆裝和時間上的浪費。調試的過程也并不是一帆風順,畢竟仿真跟實際還是有一定的區別的,做好的電路板不能正常工作的情況時常發生,失敗了,就暗自打氣,仔細檢查每一個可能出現問題的環節,再失敗再檢查。這個過程是我們意識到,絕對不容許有半點的僥幸心理,每一個電阻電容,銅線都可能是通往成功路上的攔路虎。 軟件設計軟件
53、的算法上又可分為兩個部分:舵機轉向的算法和電機PID算法。視屏采集和數據處理是所有算法的基礎,只有數據處理得好,對舵機和電機的控制才能精準。在視屏采集和對其的處理上我們采用黑線邊沿提取的方法,然后對每一行的有效點進行連線,最后用最小二乘法求出斜率,得到舵機的輸出值。這種數據處理算法在賽道難度不大時穩定性很好,但在賽道相距很近且賽道底色為深色是,有時會出現錯誤,現在我們將上述情況考慮在濾波中,使用相應的算法濾波,將這種情況完全處理掉。對電機PID算法影響較大的是測速的準確度,在使用了編碼器后,測速的準確度大大的提高了,這就提高了PID的控制精度,所以在PID的參數上還要再下苦功,盡可能的提高PID的控制穩定,做到加減速響應快,響應精準。總之,通過比賽的方式讓我們學到了許多,對于汽車的機械結構、光電傳感器、軟件設計有了深入的了解,并擁有了一整套較為完善的軟件系統;也得到了很多的實踐經驗。把我們的知識運用到現實生活中去,這才是最重要的,我們所學的知識,所得到的實戰經驗是我們一生的財富。但是由于知識有限,對于各項內容的理解還不夠,在算法上還有很大的提高空間。當然現在的設計方案還存在一些問題,我們暫時還不能夠解決,希望在比賽中可以學到更多,在以后的比賽中得以提高。最后感謝學校為我們提供這樣一個平臺,讓大家在智能車比拼中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- “資本下鄉”背景下宗族型村莊的非制度性排斥研究-基于山東Z村的實地調查
- 高濃度含錳廢水膜電解工藝研究
- 6S現場管理培訓
- 校園安全情景劇
- 顱腦護理課件
- 預防食品安全教育課件
- 預防暴雨安全知識課件
- 游戲攻略:幻世錄Ⅱ修改教程
- 幼兒園急救培訓分享會
- 項鏈說課課件中職
- W -S-T 431-2023 護理分級標準(正式版)
- JBT 7043-2006 液壓軸向柱塞泵
- 【文創產品的價格決策及成本管理的案例探析16000字(論文)】
- 易制毒化學品單位安全管理機構圖
- 陜西省幼兒教師通識性知識大賽考試題庫(含答案)
- 超級辯論賽辯論比賽流程主題課件
- 脊柱轉移性腫瘤臨床研究現狀與進展課件
- 銀行貿易融資業務介紹
- 跑步運動知識講座
- IATF16949質量體系審核檢查表2019
- 發電機應急預案處理方案
評論
0/150
提交評論