智能小車設(shè)計(jì)技術(shù)報(bào)告飛思卡爾杯智能車大賽_第1頁
智能小車設(shè)計(jì)技術(shù)報(bào)告飛思卡爾杯智能車大賽_第2頁
智能小車設(shè)計(jì)技術(shù)報(bào)告飛思卡爾杯智能車大賽_第3頁
智能小車設(shè)計(jì)技術(shù)報(bào)告飛思卡爾杯智能車大賽_第4頁
智能小車設(shè)計(jì)技術(shù)報(bào)告飛思卡爾杯智能車大賽_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 第四屆“飛思卡爾”杯全國大學(xué)生智能汽車競賽技術(shù)報(bào)告學(xué)校: 哈爾濱理工大學(xué)隊(duì)伍名稱: thunder參賽隊(duì)員:孫嘉瑞 黃文忠 牛淑艷帶隊(duì)教師:李雙全iii關(guān)于技術(shù)報(bào)告和研究論文使用授權(quán)的說明 本人完全了解第二屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽關(guān)保留、使用技術(shù)報(bào)告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁上收錄并公開參賽作品的設(shè)計(jì)方案、技術(shù)報(bào)告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會出版論文集中。參賽隊(duì)員簽名: 帶隊(duì)教師簽名: 日 期: 第一章 引言11.1智能汽車制作情況概述11.2文獻(xiàn)綜述11.3本文結(jié)構(gòu)1第二章智

2、能汽車系統(tǒng)整體方案設(shè)計(jì)22.1 設(shè)計(jì)要求22.2 智能汽車系統(tǒng)總體設(shè)計(jì)22.3 智能汽車機(jī)械結(jié)構(gòu)設(shè)計(jì)32.3.1 智能汽車結(jié)構(gòu)特點(diǎn)3第三章 智能汽車硬件設(shè)計(jì)53.1 轉(zhuǎn)向模塊53.2 驅(qū)動模塊53.3 測速模塊63.4 賽道圖像采集模塊73.4.1 攝像頭工作原理73.4.2 攝像頭的選擇83.4.3 lm1881視頻同步信號分離芯片93.4.4 采樣電路的設(shè)計(jì)103.4.5 攝像頭的安裝12第四章 智能汽車軟件設(shè)計(jì)134.1 智能車軟件系統(tǒng)總體流程圖134.2 賽道識別134.2.1 圖像分割144.2.2 指引線信息提取144.3 交叉線、起始線的識別154.4 賽道參數(shù)計(jì)算184.4.1

3、 賽道中心位置的計(jì)算184.4.2 偏航距離的計(jì)算194.4.3 曲率半徑的計(jì)算194.5 控制算法的實(shí)現(xiàn)20第五章 開發(fā)流程215.1 編譯環(huán)境215.2 下載調(diào)試215.2.1 無線調(diào)試模塊215.2.3 上位機(jī)調(diào)試單元23第六章 總結(jié)i參考文獻(xiàn)ii附錄iii 第一章 引言1.1 智能汽車制作情況概述智能汽車以比賽組委會提供的飛思卡爾16位微控制 mc9s12xs128b為控制器,采用cmos傳感器進(jìn)行信息采集、檢測車模的運(yùn)動位置和運(yùn)動方向。電機(jī)驅(qū)動芯片選用mc33886,同時(shí)使用mc9s12xs128b單片機(jī)的pwm模塊、運(yùn)用pid控制算法,控制舵機(jī)的轉(zhuǎn)向和電機(jī)的轉(zhuǎn)速,完成對智能汽車運(yùn)動

4、速度和運(yùn)動方向的閉環(huán)控制。系統(tǒng)還擴(kuò)展了led和鍵盤模塊作為人機(jī)操作界面,以便于智能小車的相關(guān)參數(shù)調(diào)整。 1.2 文獻(xiàn)綜述針對本次飛思卡爾智能汽車比賽,主要存在的技術(shù)問題就是如何涉及智能小車的機(jī)械結(jié)構(gòu)是小車輕便、運(yùn)動是受到的阻力小、轉(zhuǎn)彎時(shí)中心平穩(wěn)、尋線,及采取何種控制策略保證智能小車在不違背比賽規(guī)則的前提下盡可能跑得快。對于s12 芯片的寄存器設(shè)置和操作,參考了飛思卡爾的s12用戶使用手冊。由于采用cmos傳感器,為方便設(shè)計(jì)采用視頻同步信號分離芯片lm188110;對于采集到的視頻信號,劉立萍,吳立德4闡述了動態(tài)閾值與靜態(tài)閾值的優(yōu)缺點(diǎn),鑒于賽道的特點(diǎn)兼顧單片機(jī)的運(yùn)行速度及內(nèi)部資源我們采取靜態(tài)閾值

5、發(fā)對采集到的圖像進(jìn)行分割后二值化;基于應(yīng)駿,葉秀清5提出的提取算法我們采用對賽道進(jìn)行邊緣提取。邵貝貝1文中詳細(xì)介紹了如何在s12 系列單片機(jī)上進(jìn)行程序代碼編譯和codeworrioride 編譯器使用方法,對程序調(diào)試和軟件開發(fā)提供了很好的參考。1.3 本文結(jié)構(gòu)技術(shù)報(bào)告以智能汽車的設(shè)計(jì)為主線,包括小車的構(gòu)架設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì),以及控制算法研究等,分為六章。其中,第一章為引言部分,第二章主要介紹了小車的總體設(shè)計(jì)方案以及車模的相關(guān)參數(shù),第三章對小車的硬件設(shè)計(jì)進(jìn)行了詳細(xì)的介紹,其中包括機(jī)械改造,電路設(shè)計(jì)兩大部分,第四章對小車的軟件設(shè)計(jì)思想和相關(guān)算法進(jìn)行介紹,第五章詳細(xì)介紹了賽車系統(tǒng)開發(fā)的調(diào)試工具

6、、軟件和各種調(diào)試手段和方法,對小車的開發(fā)調(diào)試等進(jìn)行說明,第六章敘述了我們在設(shè)計(jì)過程中遇到的問題和解決方法。第二章 智能汽車系統(tǒng)整體方案設(shè)計(jì)2.1 設(shè)計(jì)要求 在本次的飛思卡爾第四屆智能汽車的比賽中,要求參賽隊(duì)伍設(shè)計(jì)的智能汽車具有自動循跡的功能,能夠在黑白兩色的跑道上沿黑色指引線快速穩(wěn)定的行駛。因此,能沿著黑色指引線自動行駛是前提,未取得較好的成績還得盡量提高智能小車的運(yùn)行速度。2.2 智能汽車系統(tǒng)總體設(shè)計(jì) 系統(tǒng)框圖如圖2.1所示:圖2.1 系統(tǒng)框圖 根 據(jù) 攝 像 頭 方 案 設(shè) 計(jì) , 賽 車 共 包 括 六 大 模 塊 : 控 制 處 理 芯 片mc9s12xs128,信息模塊,信息處理模塊

7、,控制決策模塊,執(zhí)行模塊。其中s12 單片機(jī)是系統(tǒng)的核心部分。它負(fù)責(zé)接收賽道圖像數(shù)據(jù)、賽車速度等反饋信息,并對這些信息進(jìn)行恰當(dāng)?shù)奶幚恚纬珊线m的控制量來對舵機(jī)與驅(qū)動電機(jī)進(jìn)行控制。各個(gè)模塊的作用如下所示:3第二章 智能汽車系統(tǒng)總體方案設(shè)計(jì) 1.信息采集模塊:在該模塊中對采集到的信息進(jìn)行處理,一次信息來判斷當(dāng)前智能小車所出賽道的變化趨勢、小車的當(dāng)前速度機(jī)轉(zhuǎn)角的信息。將處理得到的信息傳給單片機(jī)以采取相應(yīng)的控制決策。 2.信息處理模塊:信息處理模塊包括信息處理和控制模塊,其核心是mcu,mcu接收到采集來的信號,對信號進(jìn)行處理后作出判斷,并發(fā)出控制命令。 3.控制模塊:在該模塊中基于信息處理之后的數(shù)據(jù)

8、對小車采取相應(yīng)的控制側(cè)率來調(diào)節(jié)小車的運(yùn)動狀態(tài),是小車平穩(wěn)快速的行駛。4. 執(zhí)行模塊:在該模塊中包括了驅(qū)動電機(jī)和舵機(jī),當(dāng)接收到單片機(jī)的命令后便執(zhí)行相應(yīng)的操作,同時(shí)信息采集模塊又采集到電機(jī)和舵機(jī)的狀態(tài)信息,反饋給單片機(jī) 。從而整個(gè)系統(tǒng)構(gòu)能夠形成一個(gè)閉環(huán)系統(tǒng),保證了小車的平穩(wěn)運(yùn)行。5. 人機(jī)交互模塊:該模塊包含了按鍵輸入與led顯示等功能模塊,其中按鍵用于調(diào)節(jié)小車的工作模式,led顯示小車的一些當(dāng)前參數(shù),便于實(shí)時(shí)觀測小車的運(yùn)行狀態(tài)。2.3 智能汽車機(jī)械結(jié)構(gòu)設(shè)計(jì) 機(jī)械結(jié)構(gòu)在很大程度上影響著小車的速度與轉(zhuǎn)向特性,包括小車的重心,前輪傾角,差速的松緊等。我們在參考往屆賽隊(duì)的基礎(chǔ)上,通過不斷實(shí)踐將小車的機(jī)械

9、結(jié)構(gòu)調(diào)整到最佳的狀態(tài)。2.3.1 智能汽車結(jié)構(gòu)特點(diǎn)小車前輪傾角的調(diào)整:我們在調(diào)試的時(shí)候發(fā)現(xiàn),增大輪胎與地面的摩擦力可以大大減少小車在高速過彎時(shí)小車沖出賽道的幾率。鑒于此,我們調(diào)整了小車的前輪主銷傾角,使之成為“八”字形,這樣就大大的增大了小車的前輪與地面的摩擦力。舵機(jī)的改造:在初期的時(shí)候,我們將舵機(jī)平放,但是隨之而來的問題是小車轉(zhuǎn)向遲鈍,并且左右的轉(zhuǎn)向不相等。為此我們在參考往屆賽隊(duì)的基礎(chǔ)上,根據(jù)小車的實(shí)際特點(diǎn),將小車的力臂進(jìn)行了適當(dāng)?shù)募娱L,并且將舵機(jī)由平放改為了豎直放置。差速的調(diào)整:差速的松緊程度在很大程度上影響著小車的過彎與加速特性,差速太松,小車在加速時(shí)容易打滑,差速太緊,小車再過彎時(shí)較為

10、吃力。經(jīng)過反復(fù)試驗(yàn),我們將差速調(diào)整到一個(gè)比較合適的程度。11 第三章 智能汽車硬件設(shè)計(jì) 第三章 智能汽車硬件設(shè)計(jì)3.1 轉(zhuǎn)向模塊 轉(zhuǎn)向舵機(jī)我們使用的是組委會提供的舵機(jī),并加長了舵機(jī)的力臂。根據(jù)舵機(jī)驅(qū)動的原理,舵機(jī)的控制周期是20ms,,在一定范圍內(nèi),占空比決定著舵機(jī)的舵角。xs128單片機(jī)80pin共有8路可配置的pwm接口,pp0pp7其中兩個(gè)相鄰的接口可以合成一路16位的pwm。我們將pp4和pp5合成了一路16位的pwm發(fā)生器,并由pp5輸出。舵機(jī)的標(biāo)稱電壓是6v,但我們通過實(shí)驗(yàn)發(fā)現(xiàn):適當(dāng)?shù)靥岣叨鏅C(jī)的供電電壓可以明顯提高舵機(jī)的轉(zhuǎn)向速度與轉(zhuǎn)向力度。為此我們直接使用電池電壓給舵機(jī)供電。舵機(jī)的

11、電路連接圖3.1如下: 圖3.1 舵機(jī)接口電路3.2 驅(qū)動模塊 驅(qū)動芯片的選擇直接影響小車的加速效果,智能車大賽的主要標(biāo)準(zhǔn)就是速度,因此驅(qū)動芯片至關(guān)重要。在準(zhǔn)備過程中我們反復(fù)試驗(yàn)了若干的電機(jī)驅(qū)動芯片,都沒有達(dá)到滿意的效果。后來我們用mos管自己搭建了驅(qū)動電路,效果也不是太理想。我們在參考往屆賽隊(duì)的基礎(chǔ)上,采用了mc33886電機(jī)驅(qū)動芯片,但單片驅(qū)動芯片容易發(fā)熱,最后我們采用了4片33886并聯(lián)的方式驅(qū)動電機(jī)。我們用單片機(jī)的pp2和pp3分別接到驅(qū)動芯片的in1和in2來控制電機(jī)的轉(zhuǎn)向。pp0和pp1合成16位的pwm發(fā)生器并由pp1輸出控制電機(jī)的轉(zhuǎn)速。電機(jī)的連接電路如圖3.2所示:圖3.2 驅(qū)

12、動模塊電路圖3.3 測速模塊好的控速效果是建立在精確的反饋的基礎(chǔ)上的,同時(shí)也是各種速度控制算法的基礎(chǔ)。在初期的調(diào)試階段,我們用自制的光電碼盤配合光電管和比較器獲取小車的當(dāng)前速度,但我們發(fā)現(xiàn)這種方法產(chǎn)生的信號并不整齊,影響速度的采集。最后我們放棄了這種方案而改用信號比較整齊精確的光電編碼器來測速。我們采購到了增量式的分辨率為100線的光電編碼器。因?yàn)樾≤嚥⒉粰z測車的前進(jìn)方向,所以我們只用了xyz的中的一相。xs128有16位的脈沖累加器,我們將從光電編碼器輸出的信號接至pt7口,在單片機(jī)軟件設(shè)計(jì)中,每隔20ms將脈沖累加器中的值讀回并將寄存器清零。這樣就能獲取光電編碼器20ms的發(fā)出的脈沖,進(jìn)而

13、根據(jù)齒輪的比例就能計(jì)算出小車的實(shí)際速度。光電編碼器的電路如0圖3.3所示: 圖3.3 測速模塊電路圖3.4 賽道圖像采集模塊3.4.1 攝像頭工作原理攝像頭分黑白和彩色兩種,為減輕單片機(jī)的負(fù)擔(dān),同時(shí)考慮賽道的特點(diǎn):只需提取畫面的灰度信息,所以本設(shè)計(jì)中采用的是黑白攝像頭。攝像頭主要由鏡頭、圖像傳感芯片和外圍電路構(gòu)成。圖像傳感芯片是其最重要的部分,但該芯片要配以合適的外圍電路才能工作。單板通常有三個(gè)端子:電源端、地端和視頻信號端(有的還多出一個(gè)端子,那是音頻信號端)。電源接的電壓要視具體的單板而定,目前一般有兩種規(guī)格,6-9v 或9-12v。視頻信號的電壓一般位于0.5v-2v 之間。攝像頭的工作

14、原理是:按一定的分辨率,以隔行掃描的方式采集圖像上的點(diǎn),當(dāng)掃描到某點(diǎn)時(shí),就通過圖像傳感芯片將該點(diǎn)處圖像的灰度轉(zhuǎn)換成與灰度一一對應(yīng)的電壓值,然后將此電壓值通過視頻信號端輸出。攝像頭連續(xù)地掃描圖像上的一行,則輸出就是一段連續(xù)的電壓信號,該電壓信號的高低起伏反映了該行圖像的灰度變化。當(dāng)掃描完一行,視頻信號端就輸出一個(gè)低于最低視頻信號電壓的電平(如0.3v),并保持一段時(shí)間。這樣相當(dāng)于,緊接著每行圖像信號之后會有一個(gè)電壓“凹槽”,此“凹槽”叫做行同步脈沖,它是掃描換行的標(biāo)志。然后,跳過一行后(因?yàn)閿z像頭是隔行掃描的),開始掃描新的一行,如此下去,直到掃描完該場的視頻信號,接著又會出現(xiàn)一段場消隱區(qū)。該區(qū)

15、中有若干個(gè)復(fù)合消隱脈沖,其中有個(gè)遠(yuǎn)寬于(即持續(xù)時(shí)間長于)其它的消隱脈沖,稱為場同步脈沖,它是掃描換場的標(biāo)志。場同步脈沖標(biāo)志著新的一場的到來,不過,場消隱區(qū)恰好跨在上一場的結(jié)尾和下一場的開始部分,得等場消隱區(qū)過去,下一場的視頻信號才真正到來。攝像頭每秒掃描25 幅圖像,每幅又偶兩場,先奇場后偶場,故每秒掃描50 場圖像。奇場時(shí)只掃描圖像中的奇數(shù)行,偶場時(shí)則只掃描偶數(shù)行。3.4.2 攝像頭的選擇決定賽車圖像采樣模塊實(shí)際橫向分辨能力的不是攝像頭橫向的像素?cái)?shù),而是ad 采樣單行視頻信號的點(diǎn)數(shù)。一般而言,攝像頭分辨率越高,單行視頻信號持續(xù)的時(shí)間也越短,在ad轉(zhuǎn)換時(shí)間不變的情況下,ad 對單行視頻信號所能

16、采樣的點(diǎn)數(shù)也越少。例如,對于mc9s12dg128 的a/d 轉(zhuǎn)換時(shí)間在不超頻的情況下最短為7us的情況下。如果選用一個(gè)分辨率為320 線的攝像頭,則單行的視頻信號持續(xù)的時(shí)間約為20ms/320=62.5us,a/d 對單行的視頻信號所采集到的點(diǎn)數(shù)將不超過62.5/7+1=9 個(gè)。若使用分辨率為640 線的攝像頭,則單行的視頻信號所持續(xù)的時(shí)間約20ms/640=31us,a/d 對單行的視頻信號所采集到的點(diǎn)數(shù)將不超過31/7+1=5 個(gè)。由此證明了,攝像頭的分辨率越高,盡管可提高縱向分辨能力,卻會減少單片機(jī)ad 采樣單行信號的點(diǎn)數(shù),削弱了橫向分辨能力。另一方面,現(xiàn)在市場上的攝像頭通常都在300

17、 線的分辨率以上,由此推得單行視頻信號的持續(xù)時(shí)間約為20ms/300=66us 左右,ad 采樣單行視頻信號的點(diǎn)數(shù)約為66/7+1=10 個(gè)(不超頻情況下)??梢詽M足我們的智能車定位系統(tǒng),可在橫向上最多也只能有10 像素的分辨能力,這對我們的智能車定位系統(tǒng)來說是不夠的。所以,在選擇攝像頭時(shí),我們應(yīng)當(dāng)盡量選擇分辨率低的攝像頭。在本智能車定位系統(tǒng)的設(shè)計(jì)過程,我們在市場上所能找到的最低分辨率的攝像頭就是采用1/3 omnivision cmos 為傳感芯片的攝像頭,其分辨率為320線。3.4.3 lm1881視頻同步信號分離芯片 lm1881視頻同步信號分離芯片(簡稱lm1881)可從攝像頭信號中提

18、取信號的時(shí)序信息,如行同步脈沖、場同步脈沖和奇、偶場信息等,并將它們轉(zhuǎn)換成ttl 電平直接輸給單片機(jī)的i/o口作控制信號之用。lm1881的端口接線方式如3.4圖所示。 圖3.4 lm1881引腳圖其中,引腳1 為行同步信號輸出端,引腳2 為視頻信號輸入端。引腳3 為場同步信號輸出端,當(dāng)攝像頭信號的場同步脈沖到來時(shí),該端將變?yōu)榈碗娖?,一般維持230us,然后重新變回高電平。引腳7 為奇-偶場同步信號輸出端,當(dāng)攝像頭信號處于奇場時(shí),該端為高電平,當(dāng)處于偶場時(shí),為低電平。事實(shí)上,我們不僅可以用場同步信號作為換場的標(biāo)志,也可以用奇-偶場間的交替作為換場的標(biāo)志,如圖3.5所示: 第三章 智能汽車硬件設(shè)

19、計(jì) 圖3.5 lm1881信號時(shí)序圖3.4.4 采樣電路的設(shè)計(jì) 攝像頭視頻信號端接lm1881 的視頻信號輸入端,同時(shí)也接入mc9s12xs128 的一個(gè)a/d 轉(zhuǎn)換器口。lm1881 的行同步信號端(引腳1)接入mc9s12xs128 的一個(gè)帶中斷能力的i/o 口即pj7口。之所以選用帶中斷的i/o 口是因?yàn)?,行同步信號持續(xù)時(shí)間較短,為了不漏檢到行同步信號,若使用普通i/o 口,則只能使用等待查詢的方式來檢測到行同步信號,這會浪費(fèi)不少mc9s12xs128 的cpu 資源。lm1881 的奇-偶場同步信號輸出端(引腳7)接mc9s12xs128 的具有中斷能力的i/o口pj6。在此,我們選擇

20、奇-偶場同步信號來作為換場的標(biāo)志信號,而不是選用lm1881 引腳3 輸出的場同步信號。這樣做的好處是,當(dāng)攝像頭信號處于奇場或偶場時(shí),則奇-偶場信號整場都相應(yīng)地處于高電平或低電平,若有中斷信號發(fā)生,就可以知道攝像頭信號換場了。接奇-偶場同步信號時(shí),用中斷的方式來判斷換場的發(fā)生同樣是很方便的。上述攝像頭、lm1881 電路和s12 就構(gòu)成了本智能車定位系統(tǒng)的圖像采樣模塊。該圖像采樣模塊要達(dá)到的目的就是得到符合我們精度要求的圖像數(shù)據(jù),采樣電路圖如圖3.6所示:圖3.6 采樣電路圖 采樣效果如圖3.7、3.8所示:圖3.7 采集到的賽道視頻圖像 圖3.8 s彎道視頻圖像3.4.5 攝像頭的安裝 圖3

21、.9 攝像頭安裝示意圖為取得良好的視頻效果攝像頭的安裝尤為重要,安裝得低了,前瞻不夠影響尋線的有效范圍;安裝得高了,里小車遠(yuǎn)處的黑點(diǎn)個(gè)數(shù)減少數(shù)據(jù)可靠度明顯下降,同時(shí)增加單片機(jī)工作量而且賽車系統(tǒng)會因重心抬高而穩(wěn)定性變差。安裝位置合適的一個(gè)標(biāo)準(zhǔn)就是:能夠滿足前瞻的前提下盡量縮小拍攝范圍。 第四章 智能汽車軟件設(shè)計(jì) 第四章 智能汽車軟件設(shè)計(jì)4.1 智能車軟件系統(tǒng)總體流程圖 智能車系統(tǒng)軟件設(shè)計(jì)總體框架如圖4.1所示:圖4.1 智能小車軟件框架流程圖4.2 賽道識別 對于智能小車而言賽道識別是關(guān)鍵環(huán)節(jié),賽道識別的好壞直接影響小車的運(yùn)行狀態(tài),是比賽能否取得良好成績的關(guān)鍵。4.2.1 圖像分割圖像二值化主要

22、有閾值和邊界兩種方法。經(jīng)過大量測試,我們發(fā)現(xiàn)邊界方法確實(shí)有較好的抗反光能力,在光線不均勻的環(huán)境下,邊界方法的表現(xiàn)比閾值方法要好很多,在不同管線環(huán)境下,與之可能變化跟大,而邊界變化則要小很多。然而,我們發(fā)現(xiàn)邊界方法也有很多缺陷:1. 無法分辨整行全黑和整行全白的情況。2. 圖像不清楚時(shí)丟失半邊邊界的情況很多,對起跑線識別造成困難。3. 圖像一旦模糊,邊界將無法提取。邊緣檢測的主要依據(jù)是圖像的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)。但是導(dǎo)數(shù)的計(jì)算對噪聲敏感,所以在進(jìn)行邊緣檢測前需要對圖像濾波。大多數(shù)的濾波算法在濾除噪聲的同時(shí),也降低了邊緣的強(qiáng)度。此外,幾乎所有的濾波算法都避免不了卷積運(yùn)算,對于智能車系統(tǒng)來說,這種運(yùn)算

23、的計(jì)算量是mc9ss12xs128單片機(jī)系統(tǒng)所無法承受的。盡管閾值方法的管線適應(yīng)能力較弱,但比賽場地的光線不會大幅度的變化,并且閾值方法沒有上述的這些缺陷,因此,我們最終采用了閾值方法對圖像進(jìn)行二值化,閾值方法可以完全滿足要求。對于閾值分割存在全局閾值分割法、局部閾值分割法及動態(tài)閾值分割法。針對本次比賽賽道的特點(diǎn)同時(shí)考慮到單片機(jī)的片內(nèi)資源,因?yàn)橹悄苘嚨倪\(yùn)行環(huán)境是比賽賽道,背景和前景區(qū)分明顯,且背景簡約,并且比賽場地的光線的影響較小,前景于背景相對明顯。結(jié)合實(shí)際需要,我們采用全局閾值分割方法對采集到的圖像進(jìn)行處理,同時(shí)考慮到距離小車較遠(yuǎn)處的視場受到光線的影響灰度值變大,因此對于小車遠(yuǎn)處的像素點(diǎn)采

24、用當(dāng)前閾值加一作為小車遠(yuǎn)處的閾值。這樣做的好處是算法簡單程序代碼小,占用單片機(jī)資源少,處理速度快的同時(shí)圖像分割后的效果能夠滿足控制精度要求。對于分割以后的圖像進(jìn)行而至化處理,將灰度值大于閾值的點(diǎn)賦值為0即為把白點(diǎn)賦值為0,將灰度值小于閾值的點(diǎn)賦值為1即為把黑點(diǎn)賦值為1。4.2.2 指引線信息提取 對進(jìn)行二值化后的圖像提取指引線是很容易的,只要判斷該點(diǎn)的值即可判斷該點(diǎn)是白點(diǎn)還是黑點(diǎn),然而由于40*48的圖像尺寸較大,若全圖搜索效率太低,無法在20ms算法周期內(nèi)完成。因此,我們采取如下方法進(jìn)行指引線位置信息的提取:由于第零行即離小車最近的一行可靠度最高,我們一該行為基準(zhǔn)進(jìn)行跟蹤尋找指引線的邊緣信息

25、。首先用全行掃描的辦法尋找第零行的邊緣位置,判斷該位置是否有效,若無效則繼續(xù)從下一場開始重新處理;若有效則以次邊緣位置為基準(zhǔn)分別向左右擴(kuò)展兩個(gè)點(diǎn)來尋找下一行的邊緣位置,流程圖如圖4.2所示: 圖4.2 指引線信息提取流程圖4.3 交叉線、起始線的識別 賽道有一個(gè)長為 1000mm 的出發(fā)區(qū),如下圖4.3所示: 圖4.3 起始線 計(jì)時(shí)起始點(diǎn)兩邊分別有一個(gè)長度100mm 的黑色計(jì)時(shí)起始線,賽車前端通過起始線作為比賽計(jì)時(shí)開始或者結(jié)束時(shí)刻。根據(jù)起始線的特點(diǎn),可以從左至右掃描一行視頻信號的連續(xù)黑點(diǎn)段的個(gè)數(shù),當(dāng)有一行的連續(xù)黑點(diǎn)段的個(gè)數(shù)為三時(shí),則判斷為起始線。識別步驟如下:1. 首先判斷當(dāng)前場的有效行數(shù),當(dāng)

26、有效行的個(gè)數(shù)過小時(shí),全場掃描尋找起始線,當(dāng)有效行的個(gè)數(shù)大于20時(shí),利用中間一行到車模最近一行之間進(jìn)行尋找起始線。2. 利用指引線的中心位置分別向左右進(jìn)行擴(kuò)展十三個(gè)點(diǎn)來尋找連續(xù)的黑點(diǎn)段,擋在某一行找到三段連續(xù)的黑點(diǎn)段時(shí)認(rèn)為找到起始線。3. 當(dāng)?shù)匾淮握业狡鹗季€以后進(jìn)行延時(shí),延遲4秒鐘之后再進(jìn)行第二次尋找起始線,由于運(yùn)行完整個(gè)賽場肯定長于4秒鐘,4秒鐘之后再進(jìn)行第二次尋找起始線,這樣可以節(jié)省一部分時(shí)間。起始線的尋找流程圖如圖4.4所示: 圖4.4 尋找起始線流程圖 交叉線雖然也是一種特殊情況,但由于我們是通過邊緣檢測法對黑線進(jìn)行提取的,它并不會被檢測到。事實(shí)上,當(dāng)掃描到一行信號全黑時(shí),因?yàn)闄z測不到下

27、降沿,黑線位置默認(rèn)為和上一次的位置相同。4.4 賽道參數(shù)計(jì)算已經(jīng)獲得了賽道邊緣位置的信息,接下來要使用該信息來控制小車的運(yùn)動速度、轉(zhuǎn)向、舵機(jī)的轉(zhuǎn)角等參數(shù),那就需要對賽道進(jìn)行參數(shù)計(jì)算來提供控制依據(jù)。小車在運(yùn)行的過程中,路況的變化是擾動的主要來源。路況變化的越劇烈,擾動的幅值越大,對小車運(yùn)行時(shí)的超調(diào)量也越大。路況變化的劇烈,一方面由賽道本身決定,另外一方面由小車運(yùn)行的速度決定。當(dāng)小車在高速運(yùn)行的過程中進(jìn)入彎道,相對于低速的情況,道路的變化擾動更加迅速,小車偏離黑線越嚴(yán)重;同時(shí),小車的穩(wěn)定時(shí)間也越長。前者影響穩(wěn)定性,后者影響小車運(yùn)行速度。為了兼顧穩(wěn)定和快速,在小車控制的基本原則是位置控制結(jié)合速度控制

28、,盡量提高直道速度,適當(dāng)降低彎道速度,為提高車模運(yùn)行速度即穩(wěn)定性,必須計(jì)算指引線的各個(gè)參數(shù)。4.4.1 賽道中心位置的計(jì)算已經(jīng)獲得了賽道的邊緣位置,就要用詞邊緣位置對智能小車進(jìn)行控制,經(jīng)過對賽道邊緣位置的觀察發(fā)現(xiàn),賽道的邊緣會經(jīng)常出現(xiàn)毛刺,若用此數(shù)據(jù)對校車進(jìn)行控制務(wù)必會導(dǎo)致小車的運(yùn)行不平穩(wěn)、波動較大,所以不用邊緣位置信息對校車進(jìn)行控制。雖然邊緣位置有毛刺但對于賽道中心位置而言就會平滑許多,所以采用中心線位置對校車進(jìn)行控制,流程圖如圖4.5所示: 圖4.5 賽道中心坐標(biāo)的計(jì)算4.4.2 偏航距離的計(jì)算 在控制車模的運(yùn)行時(shí),一車模的兩個(gè)前輪的中心位置即視場的中間位置與指引線的中心坐標(biāo)的偏差為依據(jù)來

29、判斷車模與指引線的偏差大小來控制車模。處理步驟:1. 首先計(jì)算指引線的中心坐標(biāo)與視場的中心位置的偏差。2. 判斷此偏差是否在允許的范圍內(nèi),如果超出允許范圍則控制車模進(jìn)行偏轉(zhuǎn),否則不處理。4.4.3 曲率半徑的計(jì)算最終以10 行黑線信息作為彎、直道的判斷算法依據(jù),下面簡單介紹一下該算法。在單行黑線邊沿檢測提取算法的基礎(chǔ)上,我們可以根據(jù)10 行的數(shù)據(jù)中每行黑線位置與10 行平均位置(見公式5-1)之相對位移,然后求10 行相對位移之和(公式5-2)。最后根據(jù)該值的大小并且結(jié)合實(shí)際賽道實(shí)驗(yàn)數(shù)據(jù),來確定彎道和直道之間的閥值大小,而且,隨著彎道系數(shù)的增大,該位移之和也會相應(yīng)增大。 公式1curvatur

30、e= 公式2 根據(jù)該彎直道判斷算法,可以得到一組由直道入彎、然后出彎的curvature 參數(shù)曲線。通過實(shí)驗(yàn)方法可以得到在彎道中 curvature 數(shù)值一般都大于10,偶爾在切線位置處出現(xiàn)小于10 的情況,但是作為彎道的判斷已經(jīng)足夠了,而且隨著曲率半徑的減小 curvature 的值也會相應(yīng)的增大。因此可以根據(jù)curvature 的值來設(shè)置幾個(gè)閥值,判斷賽車前方的路況信息。若curvature 值越小,則說明前方賽道越直,則可以用前文中的速度閉環(huán)將賽車控制在一個(gè)較高的速度。反之,若curvature 值越大,則說明前方賽道彎得越陡,則應(yīng)該用速度閉環(huán)將賽車控制在較低的速度。4.5 控制算法的實(shí)

31、現(xiàn) 對于舵機(jī)的控制,我們采用了p控制算法,以小車前方某一行坐標(biāo)與中心線的偏差作為反饋,配合我們根據(jù)經(jīng)驗(yàn)得到的公式,得到舵機(jī)的轉(zhuǎn)角。 對于直流電機(jī)的控制,在前期我們采用了pid控制算法。但發(fā)現(xiàn)單純采用pid算法并不能滿足要求。在頻繁加減速的智能車控制系統(tǒng)中,單純采用pid算法會導(dǎo)致車加減速不夠迅速。經(jīng)過隊(duì)員們的一致探討與不斷實(shí)踐,我們采用了bang-bang + pid的控制算法。在目標(biāo)速度與實(shí)際速度相差較多時(shí),采用bangbang算法將速度在最短的時(shí)間內(nèi)調(diào)整到接近目標(biāo)速度的范圍。然后調(diào)用pid控制算法將速度穩(wěn)定在目標(biāo)值。試驗(yàn)證明,這種算法大大提高了智能車速度的穩(wěn)定性。v 第五章 開發(fā)流程 經(jīng)過

32、對智能小車進(jìn)行硬件、軟件設(shè)計(jì)介紹以后,接下來介紹對以上算法進(jìn)行開發(fā)和軟硬件聯(lián)調(diào)的過程。鏈條就需要一整套的軟件開發(fā)與調(diào)試工具。5.1 編譯環(huán)境軟硬件的聯(lián)調(diào)是在組委會提供的codewarrior ide下進(jìn)行的,包括原程序的編寫、編譯、鏈接,最終生成可執(zhí)行性文件。codewarrior ide能夠自動檢查代碼中的明顯錯(cuò)誤,它通過一個(gè)集成的調(diào)試和編譯器來掃描程序代碼,并顯示其中的錯(cuò)誤,然后編譯并鏈接程序以生成能夠執(zhí)行的程序。codewarrior for s12 是面向以hc1和s12為cpu的單片機(jī)嵌入式應(yīng)用開發(fā)軟件包。包括集成開發(fā)環(huán)境ide、處理器專家?guī)?、全芯片仿真、可視化參?shù)顯示工具、項(xiàng)目工程

33、管理器、c交叉編譯器、匯編器、鏈接器以及調(diào)試器。使用bdm來下載程序,把編譯好的程序下載到單片機(jī)里運(yùn)行。5.2 下載調(diào)試 調(diào)試器我們采用的是組委會提供的bdm調(diào)試器,配合codewarrior 開發(fā)環(huán)境,進(jìn)行單片機(jī)的開發(fā),調(diào)試界面如圖5.1所示:5.2.1 無線調(diào)試模塊 為了實(shí)時(shí)監(jiān)控小車的各項(xiàng)參數(shù),我們采用了基于zig-been技術(shù)的無線調(diào)試模塊,經(jīng)過適當(dāng)?shù)嘏渲茫浜蠁纹瑱C(jī)串口和我們自行開發(fā)的上位機(jī)調(diào)試軟件。不但可以實(shí)時(shí)觀察賽車的各項(xiàng)參數(shù),還可以在線修改智能車的各項(xiàng)參數(shù)。避免了頻繁下載程序的問題。我們使用的無線調(diào)試模塊如圖5.2所示:第五章 開發(fā)流程 圖5.1 下載調(diào)試界面 圖5.2無線調(diào)試模

34、塊5.2.3 上位機(jī)調(diào)試單元 為方便調(diào)試,我們用vc編寫了智能車調(diào)試軟件,調(diào)試界面如圖5.3所示: 圖5.3 上位機(jī)調(diào)試界面 第六章 總結(jié)在本次比賽中,經(jīng)過精心準(zhǔn)備,我們初步完成了智能小車的制作,包括智能小車的車模安裝、機(jī)械結(jié)構(gòu)的調(diào)整、軟硬件的設(shè)計(jì),達(dá)到了比賽的今本要求。在制作過程中的主要難點(diǎn)與解決辦法:1. 視頻信號采集和處理。由于s12 芯片處理能力的限制,所以需要選擇合適的攝像頭型號,然后根據(jù)其視頻信號的特點(diǎn)選擇1881 作為其信號分離芯片。而在軟件算法方面,則需要做到圖像信號采集和處理的同步。為此,在硬件電路的設(shè)計(jì)上,根據(jù)視頻信號特點(diǎn),采用了硬件中斷方式來完成對視頻信號的采集。最終轉(zhuǎn)化

35、成為便于處理的2 維數(shù)組。2. 彎直道路況信息判斷。為了賽車能夠以最快速度完成整個(gè)比賽,那么在不同的線路上采用不同的速度、轉(zhuǎn)向控制策略就顯得尤為重要了。因此,結(jié)合攝像頭方案的特點(diǎn),采用黑線提取算法得到的路線信息,求其平均位置,然后各點(diǎn)與平均位置的位移之和作為判斷參數(shù)。通過實(shí)驗(yàn)來決定各種彎道、直道的參數(shù)特征,然后根據(jù)參數(shù)特征來劃分賽道。從而做到彎道、直道的速度和轉(zhuǎn)向準(zhǔn)確可靠控制 但是由于時(shí)間有限,系統(tǒng)中尚存在許多問題有待改進(jìn):1. 抗干擾處理。賽車在賽道上會遇到各種情況,如交叉線、斷續(xù)線,以及還有實(shí)驗(yàn)賽道上的干擾點(diǎn),以及由環(huán)境光線不均勻造成的干擾。如何確保在任何情況下都能識別出賽道,或者判斷出賽

36、車在場上的位置,需要做進(jìn)一步的努力。2. 參數(shù)計(jì)算的準(zhǔn)確性。雖然實(shí)現(xiàn)了斜率和曲率的計(jì)算,但是其精度仍然不夠理想,特別是在能夠識別的路徑比較段的情況下,計(jì)算出的數(shù)據(jù)與實(shí)際有很大的偏差。筆者曾設(shè)想了一種基于最小二乘法捏合圓的方法,但是發(fā)現(xiàn)計(jì)算及其復(fù)雜,簡化了條件后得出的結(jié)果又不夠理想。這個(gè)方面值得繼續(xù)探索。3. 控制算法的改進(jìn)。本系統(tǒng)采用了雙閉環(huán)加前饋的控制方法,這在控制算法中是比較復(fù)雜的,實(shí)際應(yīng)用也驗(yàn)證了效果的良好,但是仍然存在不盡如人意的地方。參考文獻(xiàn)1 邵貝貝. 單片機(jī)嵌入式應(yīng)用的在線開發(fā)方法. 北京:清華大學(xué)出版社. 2004 年10 月第1 版2 freescale semiconduc

37、tor, inc. mc9s12xs256 device user guide3 黃萍莉,越軍,圖像傳感器cmos技術(shù),信息記錄材料,2005.(1)。4 劉立萍,吳立德,圖像分割中閾值選取方法比較研究,模式識別與人工智能,1997,1(3):271-2775 應(yīng)駿,葉秀清,顧偉康,一個(gè)基于知識的邊沿提取算法,中國圖象圖形報(bào),1999,4a(3):2392426 邱建,劉文權(quán),郭小勤,基于cmos圖像的模型小車系統(tǒng)轉(zhuǎn)向控制研究,深圳大學(xué),20067 王曉明. 電動機(jī)的單片機(jī)控制m北京. 北京航空航天大學(xué)出版社20028 童詩白,華成英模擬電子技術(shù)基礎(chǔ)m北京. 高等教育出版社20009 brow

38、n m a, blackwell k t, khalak h g. multi-scale edge detection and feature binding: an integrated approach. pattern recognition. 1998, 31(10), 1479-149010 national semiconductor. lm1881 video sync separator general description. april 2001附錄 #include"ad.h"/*ad模塊初始化*/void ad_init() atd0ctl0 = 0x01; atd0ctl1 = 0x00; /*8 位的分辨率 采樣前電容不充電 */ atd0ctl2 = 0x20; /*停止模式下繼續(xù)轉(zhuǎn)換,禁止外部觸發(fā),轉(zhuǎn)換結(jié)束禁止中斷,禁止比較匹配中斷*/ atd0ctl3 = 0x88; /*結(jié)果右對齊,轉(zhuǎn)換序列為1,凍結(jié)模式繼續(xù)運(yùn)行*/ atd0ctl4 = 0x00; /*第二階段4時(shí)鐘模式,atd時(shí)鐘 20m ,轉(zhuǎn)換時(shí)間0.85us*/ atd0ctl5

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論