攝像頭組東南大學(xué)seu3技術(shù)報(bào)告飛思卡爾大學(xué)計(jì)劃第七屆智能車比賽華東賽區(qū)_第1頁(yè)
攝像頭組東南大學(xué)seu3技術(shù)報(bào)告飛思卡爾大學(xué)計(jì)劃第七屆智能車比賽華東賽區(qū)_第2頁(yè)
攝像頭組東南大學(xué)seu3技術(shù)報(bào)告飛思卡爾大學(xué)計(jì)劃第七屆智能車比賽華東賽區(qū)_第3頁(yè)
攝像頭組東南大學(xué)seu3技術(shù)報(bào)告飛思卡爾大學(xué)計(jì)劃第七屆智能車比賽華東賽區(qū)_第4頁(yè)
攝像頭組東南大學(xué)seu3技術(shù)報(bào)告飛思卡爾大學(xué)計(jì)劃第七屆智能車比賽華東賽區(qū)_第5頁(yè)
已閱讀5頁(yè),還剩80頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第七屆“飛思 ”杯全國(guó)大學(xué)生智能汽車競(jìng)賽技 術(shù) 報(bào) 告學(xué)校:東南大學(xué)隊(duì)伍名稱:SEU3參賽隊(duì)員:趙行晟 帶隊(duì) : 關(guān)于技術(shù)報(bào)告和研究 使用 的說(shuō)明:本人完全了解第七屆“飛思 ”杯全國(guó)大學(xué)生智能汽車競(jìng)賽關(guān)保留、使用技術(shù)報(bào)告和研究 的規(guī)定,即:參賽 著作權(quán)歸參賽者本人,比賽組委會(huì)和飛思 半導(dǎo)體公司可以在相關(guān)主頁(yè)上收錄并公開參賽 的設(shè)計(jì)方案、技術(shù)報(bào)告以及參賽模型車的 、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會(huì) 集中。參賽隊(duì)員簽名:趙行晟帶隊(duì)教師簽名:日期: 2012.8.13 2東南大學(xué) SEU3目錄目錄第一章 引言21.1 智能車競(jìng)賽概況21.2 智能車研究?jī)?nèi)容21.3 SEU3 整體設(shè)計(jì)思路21.

2、4 SEU3 技術(shù)概括2第二章 機(jī)械設(shè)計(jì)52.1 車模機(jī)械分析52.1.1. 底盤結(jié)構(gòu)差速器52.1.2. 外傾角62.1.3. 車身結(jié)構(gòu)輪距72.2 機(jī)械調(diào)整前后輪定位72.3 機(jī)械調(diào)整舵機(jī)安裝72.4 攝像頭安裝7第三章 硬件電路設(shè)計(jì)83.1 單片機(jī)系統(tǒng)板83.2 電源供電83.2 電機(jī)驅(qū)動(dòng)電路93.3 舵機(jī)供電10第四章設(shè)計(jì)114.1 邊線 .114.1.1. 單行圖像 .114.1.2 整幅圖像 .114.1.3 邊線提取134.1.4 引導(dǎo)線提取144.1.5 起跑線識(shí)別154.1.6 坡道識(shí)別164.2 最小二乘法164.3 賽道類型識(shí)別16. I .東南大學(xué) SEU34.3.1

3、直道174.3.2 直道入彎174.3.3 小 S 彎184.3.4 C 彎194.3.5 普通彎194.3.6 十字彎204.3.7 無(wú)引導(dǎo)線的彎204.4 . 204.4.1 舵機(jī) . 204.4.2 電機(jī) . 21第五章 開發(fā)及調(diào)試工具225.1 開發(fā)平臺(tái)225.2 SD 卡調(diào)試平臺(tái)245.3 藍(lán)牙無(wú)線調(diào)試平臺(tái)25. II .東南大學(xué) SEU3摘要:,本文以第七屆全國(guó)大學(xué)生智能車競(jìng)賽為背景,使用 scale 半導(dǎo)體公司生產(chǎn)的 16 位單片機(jī) MC9S12XS128 和攝像頭 OV7620 的配合實(shí)現(xiàn)道路識(shí)別。數(shù)字?jǐn)z像頭數(shù)據(jù)由 MCU 進(jìn)行 ,并且經(jīng)過處理和計(jì)算得到道路 ,并且根據(jù)當(dāng)前賽道

4、類型和車模所處的位置以及速度計(jì)算出 車模以最快最優(yōu)的路徑進(jìn)行行駛。本文設(shè)計(jì)的智能車系統(tǒng)是由軟硬件和機(jī)械結(jié)構(gòu)組成的整體,其硬件主要 電源模塊、電機(jī)驅(qū)動(dòng),速度測(cè)量、SD 卡調(diào)試、單片機(jī)模塊等。: scaleMCU 攝像頭 機(jī)械 最優(yōu)路徑. III .東南大學(xué) SEU3第一章 引言第一章引言1.1 智能車競(jìng)賽概況“飛思 杯”全國(guó)大學(xué)生智能汽車競(jìng)賽是教育部高等學(xué)校自動(dòng)化專業(yè)教學(xué)指導(dǎo)委員會(huì)主辦,以“立足培養(yǎng)、重在參與、鼓勵(lì)探索、追求卓越”為指導(dǎo)思想的多學(xué)科專業(yè)交叉的創(chuàng)意性科技競(jìng)賽。該競(jìng)賽是面向全國(guó)大學(xué)生的探索性工程實(shí)踐活動(dòng),涵蓋 、模式識(shí)別、傳感技術(shù)、 、電氣、計(jì)算機(jī)、機(jī)械等多個(gè)學(xué)科知識(shí),旨在促進(jìn)高等學(xué)

5、校素質(zhì)教育, 培養(yǎng)大學(xué)生的綜合知識(shí)運(yùn)用能力、基本工程實(shí)踐能力和創(chuàng)新意識(shí),激發(fā)大學(xué)生從事科學(xué)研究與探索的 和潛能,倡導(dǎo)理論 實(shí)際、求真務(wù)實(shí)的學(xué)風(fēng)和團(tuán)隊(duì)協(xié)作的人文精神。大賽至今已舉辦四屆,已吸引全國(guó) 26 個(gè)省( )、直轄市的二百余所高校廣泛參與。我校作為一所以理工科見長(zhǎng)的綜合性大學(xué),從首屆比賽開始便參與其中,至今已舉辦四屆校內(nèi)選拔賽,共有千余學(xué)生參與其中,從中選拔出的優(yōu)秀隊(duì)伍代表學(xué)校參加更高級(jí)別的比賽。1.2 智能車研究?jī)?nèi)容攝像頭組智能車主要包含圖像 處理,道路識(shí)別以及基于二維圖像的車體三個(gè)領(lǐng)域的內(nèi)容。其中,圖像 處理主要 片外 電路設(shè)計(jì)及單片機(jī) 時(shí)序的控制,道路識(shí)別主要是擬合算法及優(yōu)化,而 包

6、含電機(jī)驅(qū)動(dòng)電路及速度和方向的調(diào)節(jié)算法。1.3 SEU3 整體設(shè)計(jì)思路對(duì)于攝像頭組,本屆比賽相比以往有 2 點(diǎn)顯著的變化,一是賽道變?yōu)?45 厘米,二是黑線變?yōu)樵谫惖纼蛇?。吸取各賽區(qū)優(yōu)秀隊(duì)伍的經(jīng)驗(yàn),我們更改了舵機(jī)的安裝方式,將車模底盤進(jìn)行加固,電路布局緊湊,前瞻距離超過 1.3 米,算法采用了最小二乘擬合。1.4 SEU3 技術(shù)概括機(jī)械方面,參照后輪主動(dòng)懸掛的原理,將車模的后輪與車身固定,實(shí)現(xiàn)轉(zhuǎn)彎時(shí)候的“被動(dòng)懸掛”,幫助過完。攝像頭置于車身靠前部分,并采用碳素桿固定,其高度為 350mm,前方可見視野范圍是 100mm1500mm。下圖為車模的整體外形圖:. 4 .圖 1.1 SEU3 外觀硬件

7、電路方面,由于采用攝像頭前置安裝,前部分空余的空間較少,在考慮到要盡量減少車體重量和降低整車重心的情況下,本文給車量身設(shè)計(jì)了一款比較小巧的電路板,如圖 1.2 所示。SEU3 采用數(shù)字?jǐn)z像頭 ov7620,因數(shù)字?jǐn)z像頭使用方便,減少了器件,從而減輕了車的重量。并且數(shù)字?jǐn)z像頭的動(dòng)態(tài)性能較好,對(duì)于黑色敏感度較高,對(duì)于賽道提取有很大幫助。SEU3 還加入了 SD 卡模塊,藍(lán)牙無(wú)線模塊,行駛過程中的重要數(shù)據(jù),利用 SD 卡進(jìn)行算法離線調(diào)試,無(wú)線模塊進(jìn)行在線參數(shù)調(diào)試,相 用BDM 進(jìn)行在線調(diào)試,工作效率顯著提高。圖 1.2 PCB 電路板方面,SEU3 使用開窗邊沿檢測(cè)和閾值檢測(cè)相結(jié)合的提取中點(diǎn) ,利用

8、最小二乘法對(duì)中點(diǎn)進(jìn)行分段線性擬合,系統(tǒng)運(yùn)行流程圖如圖 1.3。圖 1.3 SEU3 算法流程圖東南大學(xué) SEU3第二章 機(jī)械設(shè)計(jì)第二章 機(jī)械設(shè)計(jì)2.1 車模機(jī)械分析2.1.1. 底盤結(jié)構(gòu)差速器差速器位置應(yīng)該處于傳動(dòng)軸與左右半軸的交匯點(diǎn),從變速箱輸出的動(dòng)力在這里被分配到左右兩個(gè)半軸。汽車在直線行駛時(shí)左右兩個(gè)驅(qū)動(dòng)輪的轉(zhuǎn)速是相同的,但在轉(zhuǎn)彎過時(shí)兩邊車輪行駛的距離不是等長(zhǎng)的,因此車輪的轉(zhuǎn)速肯定也會(huì)不同。差速器的作用就在于 左右兩邊的驅(qū)動(dòng)輪以不同的轉(zhuǎn)速運(yùn)行。圖 2.1 車輛直線行駛差速器狀態(tài)直線行駛時(shí)的特點(diǎn)是左右兩邊驅(qū)動(dòng)輪的阻力大致相同。從發(fā)動(dòng)機(jī)輸出的動(dòng)力首先傳遞到差速器殼體上使差速器殼體開始轉(zhuǎn)動(dòng)。接下

9、來(lái)要把動(dòng)力從殼體傳遞到左右半軸上,我們可以理解為兩邊的半軸齒輪互相在“較勁”,由于兩邊車輪阻力相同,因此二者誰(shuí)也掰不過對(duì)方,因此差速器殼體內(nèi)的行星齒輪跟著殼體公轉(zhuǎn)同時(shí) 產(chǎn)生自轉(zhuǎn),兩個(gè)行星齒輪咬合著兩個(gè)半軸齒輪以相同的速度轉(zhuǎn)動(dòng),這樣汽車就可以直線行駛了!圖 2.1 一側(cè)車輪遇到阻力. 7 .假設(shè)車輛現(xiàn)在向左轉(zhuǎn),左側(cè)驅(qū)動(dòng)輪行駛的距離短,相對(duì)來(lái)說(shuō)會(huì)產(chǎn)生更大的阻力。差速器殼體通過齒輪和輸出軸相連,在傳動(dòng)軸轉(zhuǎn)速不變情況下差速器殼體的轉(zhuǎn)速也不變,因此左側(cè)半軸齒輪會(huì)比差速器殼體轉(zhuǎn)得慢,這就相當(dāng)于行星齒輪帶動(dòng)左側(cè)半軸會(huì)更費(fèi)力,這時(shí)行星齒輪就會(huì)產(chǎn)生自傳,把 的扭矩傳遞到右側(cè)半軸齒輪上,由于行星齒輪的公轉(zhuǎn)外加自身

10、的自傳,導(dǎo)致右側(cè)半軸齒輪會(huì)在差速器殼體轉(zhuǎn)速的基礎(chǔ)上增速,這樣以來(lái)右車輪就比左車輪轉(zhuǎn)得快,從而使車輛實(shí)現(xiàn)順滑的轉(zhuǎn)彎。2.1.2. 外傾角從車頭望向車輪,車輪與鉛垂線的夾角稱為外傾角, 若輪胎上端向外傾斜即左右輪呈"/" 形, 稱為正外傾角, 傾斜為負(fù)外傾角?;旧希忭暯堑脑O(shè)定有較佳的靈活度,而負(fù)外頃角具較 的直進(jìn)性。圖 2.3 外傾角2.1.3. 車身結(jié)構(gòu)輪距輪距是車輪在車輛支承平面( 就是地面)上留下的軌跡的中心線之間的距離。如果車軸的兩端是雙車輪時(shí),輪距是雙車輪兩個(gè)中心平面之間的距離。汽車的輪距有前輪距和后輪距之分,前輪距是前面兩個(gè)輪中心平面之間的距離,后輪距是后面兩

11、個(gè)輪中心平面之間的距離,兩者可以相同,也可以有所差別。來(lái)說(shuō),輪距越寬,駕駛舒適性越高 此外,輪距還對(duì)汽車的總寬、總重、橫向性和安全性有影響。2.2 機(jī)械調(diào)整前后輪定位A 車是后輪驅(qū)動(dòng),前輪是轉(zhuǎn)向輪。由于 A 車本身較輕,在轉(zhuǎn)彎處,因?yàn)殡x心力,會(huì)使得車的重心向外傾斜,當(dāng)摩擦力不足時(shí)候,會(huì)使得車整體滑出賽道。而調(diào)整外傾角可有調(diào)整車模的過彎特性。外傾角越負(fù),過彎越足,但是車模會(huì)出現(xiàn)過彎前輪上下抖動(dòng)現(xiàn)象,影響過彎速度。外傾角越正,過彎越不足,但是過彎會(huì)比較平穩(wěn)。綜合考慮過彎特性以及 性,調(diào)整前輪外傾角為負(fù) 5°左右。因?yàn)?A 車底盤較低,從而在上坡時(shí),后輪底盤會(huì)擦碰到賽道,影響車模正常行駛。

12、所以本文里,將后輪的車輪降低,提高了后部底盤高度。2.3 機(jī)械調(diào)整舵機(jī)安裝A 車原來(lái)的舵機(jī)為橫向安裝,并且兩個(gè)是不等長(zhǎng)的,為了使左右轉(zhuǎn)對(duì)稱,本文將舵機(jī)豎直安裝于車頭部分,并且使用兩個(gè)等長(zhǎng)的 ,從而保證左右轉(zhuǎn)充分對(duì)稱。由于受舵機(jī)本身性能的影響,傳動(dòng) 需要盡可能的短,太長(zhǎng)會(huì)使得力量不足。2.4 攝像頭安裝攝像頭的安裝主要是根據(jù) 所需來(lái)進(jìn)行,為保證遠(yuǎn)處 到的點(diǎn)畸變盡可能的小, 本文里攝像頭架得比較高,為了使整車重心盡可能小的受攝像頭影響,采用質(zhì)量較輕的碳纖維棒作為支撐材料。具體安裝 :東南大學(xué) SEU3第三章 硬件電路設(shè)計(jì)第三章 硬件電路設(shè)計(jì)3.1 單片機(jī)系統(tǒng)板系統(tǒng)主 為飛思 16 位單片機(jī)MC9S

13、12XS1283.2 電源供電電源供電采用兩塊 2940,為了保證性,單片機(jī)供電單獨(dú)用一塊 2940,其他器件供電單獨(dú)采用一塊 2940。. 10 .3.2 電機(jī)驅(qū)動(dòng)電路電機(jī)驅(qū)動(dòng) 本文選擇BTS797,并搭建的H 橋電路驅(qū)動(dòng)電機(jī)。3.3 舵機(jī)供電為了增加舵機(jī)的響應(yīng)速度,本文直接用電池給舵機(jī)供電。東南大學(xué) SEU3第四章設(shè)計(jì)第四章 設(shè)計(jì)4.1 邊線 4.1.1. 單行圖像 為了能 的點(diǎn),我們利用配置鎖相環(huán)寄存器將 XS128 的總線頻率提高到80MHz,使用 I/O 操作不斷 PORTB 口狀態(tài),利用 IDE 顯示每 18 個(gè) CPU 周期即 0.225us 可以一個(gè)點(diǎn),一個(gè)行周期(64us)大

14、約可以 230 個(gè)有效點(diǎn)。4.1.2 整幅圖像 圖4.1 賽道圖像攝像頭分為奇偶場(chǎng),我們采取的是一場(chǎng) 圖像,一場(chǎng)處理 。因?yàn)?空間有限, 我們 30 行,140 列。圖 4.1 為使用 SD 卡保存的賽道圖像,可以看出鏡頭梯形畸變,即近大遠(yuǎn)小,這對(duì)邊線的定位不利,因此有必要對(duì)這種畸變進(jìn)行處理。我們采用相對(duì)簡(jiǎn)單的 ,統(tǒng)計(jì)出直道上左右線的畸變規(guī)律。利用 SD 卡足夠多的圖像樣本(實(shí)際樣本數(shù)為 50),之后由上位機(jī)程序?qū)Σ傻綀D像中的左右線變化進(jìn)行計(jì)數(shù)并取平均值。. 14 .統(tǒng)計(jì)結(jié)果如下:表 4.1 攝像頭位置0 行1 行2 行3 行4 行5 行6 行7 行8 行9 行5655555553504946

15、444210 行11 行12 行13 行14 行15 行16 行17 行18 行19 行40383634320 行21 行22 行23 行24 行25 行26 行27 行28 行29 行21201817表 4.2 攝像頭位置0 行1 行2 行3 行4 行5 行6 行7 行8 行9 行5555545452504846444110 行11 行12 行13 行14 行15 行16 行17 行18 行19 行3937353431292726242220 行21 行22 行23 行24 行25 行26 行27 行28 行29 行21201894.1.3 邊線提取圖4.2 一行灰度值變化邊線提取采用窗口搜

16、索算法,該 經(jīng)測(cè)試可以有效對(duì)抗 反光,其實(shí)現(xiàn) 如下: 在賽道中間設(shè)置一個(gè)窗口,向兩邊推進(jìn)。檢測(cè)窗口內(nèi)是否有黑白或白黑跳變,如果有,則認(rèn)為找到了邊線并 。因?yàn)橘惖纼?nèi)全部是白色,所以灰度值只會(huì)有小范圍的波動(dòng)。而在賽道邊緣出現(xiàn)了黑線, 灰度值一定會(huì)有一個(gè)較大的跳變,如圖 4.2。這樣只要閾值合適,即使有一定的反光,還是可以檢測(cè)到跳變。而且從賽道中間往兩邊檢測(cè),可以避免誤識(shí)別其它賽道和賽道外的反光,提高了抗干擾能力。這種 比較 的是,確保準(zhǔn)確的從賽道中開始檢測(cè)。我們采取的是根據(jù)上一場(chǎng)的賽道來(lái)推測(cè)。我們提取的邊線如下圖 4.3,三角形就是我們每行找到的邊線點(diǎn):4.1.4 引導(dǎo)線提取圖4.3 邊線提取我們

17、的引導(dǎo)線是根據(jù)找到的邊線來(lái)計(jì)算得出的:1) 如果兩條線都找到了,用 位置加上右線位置再除以 2,即是引導(dǎo)線如圖 4.4。2) 如果只找到了 ,則用 減去表 1,得到引導(dǎo)線如圖 4.5。3) 如果只找到了右線,則用右線加上表 2,得到引導(dǎo)線。圖 4.4 兩邊線提取引導(dǎo)線東南大學(xué) SEU3第四章 設(shè)計(jì)圖 4.5 左邊線提取引導(dǎo)線4.1.5 起跑線識(shí)別比賽規(guī)則中規(guī)定車模必須在跑完一圈之后,停在起始線后的三米區(qū)內(nèi),否則將罰時(shí) 1秒,標(biāo)準(zhǔn)起跑線如圖 4.6 所示。圖 4.6 起跑線根據(jù)起跑線的特點(diǎn):在賽道內(nèi)部,兩個(gè)橫向?qū)挾冗h(yuǎn)遠(yuǎn)大于邊線寬度的黑線。我們采取策略:起跑四秒后開始在 5-10 行里檢測(cè)起跑線即

18、終點(diǎn)線。有 5 個(gè)以上跳變, 且 或右線內(nèi)側(cè),有一個(gè)寬度較大的黑線,則認(rèn)為已經(jīng)到了終點(diǎn)線,停車。. 15 .東南大學(xué) SEU3第四章設(shè)計(jì)4.1.6 坡道識(shí)別坡道識(shí)別可以直接利用邊線寬度的變化來(lái) ,當(dāng)遠(yuǎn)處邊線寬度大于正常直道寬度, 判定為坡道,限定合適速度使得車輛在坡上 發(fā)生飛躍的情況,同時(shí)也防止下坡過快而來(lái)不及轉(zhuǎn)彎,圖 4.7 為坡道圖像. 21 .4.2 最小二乘法圖 4.7 坡道最小二乘法是用來(lái)擬合直線最常用的 ,在 了 30 行有效點(diǎn)后,我們采用這種方法對(duì)賽道進(jìn)行擬合。對(duì)于最小乘法的 很多書上都有,這里就不對(duì)其原理進(jìn)行 ,只是對(duì)我們?nèi)绾螒?yīng)用加以 :具體來(lái)說(shuō),選擇與行平行方向作為 Y 軸,

19、垂直方向作為 X 軸, 對(duì) 到的有效點(diǎn)進(jìn)行擬合,分別得到整體斜率、整體截距、近處斜率、遠(yuǎn)處斜率、近處截距等數(shù)據(jù),并在擬合過程中注意排除無(wú)效點(diǎn)和跳躍太大點(diǎn)(可能的噪點(diǎn))。得到這些數(shù)據(jù)后,再進(jìn)行 的賽道類型 以及 。4.3 賽道類型識(shí)別由于賽道類型變化多端,我們利用最小二乘法計(jì)算出來(lái)的各種斜率和截距, 出 7種不同的賽道類型,然后分別進(jìn)行舵機(jī)和電機(jī)的給定賦值,以及舵機(jī)的 PD 參數(shù)賦值。4.3.1 直道如圖 4.4 所示,為賽道類型 0,表示直道,此時(shí)速度最快,舵機(jī)轉(zhuǎn)彎角度很小。條件為:當(dāng) 到的邊點(diǎn)數(shù)很多,斜率很小,方差也很小,并且整體截距在某一范圍內(nèi)。如果遠(yuǎn)處邊線變寬,則能 出為上坡,如果此時(shí)速

20、度太快,則減一下速。直道最快速度有上限,防止速度太快,入彎時(shí)不能立即減下來(lái)。圖 直道入彎如圖 4.2 所示,為賽道類型 2,表示直道入彎,此時(shí)舵機(jī)轉(zhuǎn)彎角度也很小,且要?jiǎng)x車,直道速度降到某一設(shè)定值為止。 條件為:到的中點(diǎn)數(shù)很多,在前幾場(chǎng)圖像中出來(lái)的直道次數(shù)很多,且本場(chǎng)圖像近處,遠(yuǎn)處為彎道。圖 小 S 彎如圖 4.8 所示,為賽道類型 3,表示小 S,此時(shí)舵機(jī)轉(zhuǎn)彎角度很小,基本不轉(zhuǎn), 速度和直道一樣。 條件為: 到的點(diǎn)數(shù)很多,總斜率偏小,方差不是太大, 而且邊線有 S 形。圖 C 彎如圖 4.9 所示,為賽道類型 8,表示遠(yuǎn)處與近處呈相反方向轉(zhuǎn)的

21、彎。舵機(jī)轉(zhuǎn)彎角度根據(jù)遠(yuǎn)斷點(diǎn)斜率大小不同而定,速度較小。 條件為:斜率很大,且兩段的斜率和截距的絕對(duì)值都較大。圖 普通彎如圖 4.10 所示,為賽道類型 11,表示到中點(diǎn)數(shù)較多時(shí),其它所有情況的彎。此時(shí)需要根據(jù) 到的中點(diǎn)和斜率的大小來(lái)得出舵機(jī)轉(zhuǎn)彎角度,速度低于直道大于大彎。 條件:斜率 大。圖 十字彎如圖4.11所示,為賽道類型5,表示賽道被分為前后兩段,且中間是空白。此時(shí)舵機(jī)轉(zhuǎn)角應(yīng)根據(jù)正確方向打角。速度低于知道大于彎道。條件:有幾行基本全白的行或者左右線出現(xiàn)了 的折角。圖 無(wú)引導(dǎo)線的彎為賽道類型6,表示 到的點(diǎn)數(shù)特別少,此時(shí)舵機(jī)轉(zhuǎn)彎角度

22、保持上一場(chǎng)的值不變。速度很低。我們的每一個(gè)彎,都會(huì)分為左轉(zhuǎn)或右轉(zhuǎn)。用來(lái)給不同的參數(shù),克服左右不對(duì)稱。 舵機(jī) 我們采取引導(dǎo)線偏差和斜率結(jié)合的 ,采用位置式的PD 算法。具體公式為:steer_out=steer_center+SteerE0+SteerKd*(SteerE0-SteerE1)-DeE0-Deviation_D*(D eE0-DeE1);(公式1)各 參數(shù)在各個(gè)賽道類型里面給出。在此算法中,給定值為 0,steer_out 初始值為 steer_center,賽道類型中計(jì)算出的舵機(jī)給定值即為此處的引導(dǎo)線誤差 SteerE0,斜率誤差 DeE0,且為了防止誤差變化過大

23、,導(dǎo)致下一次時(shí)遲遲不能將值拉回到所需要的大小,我們對(duì)誤差進(jìn)行了限幅,為保護(hù)舵機(jī),對(duì)最終的舵機(jī)輸出值也進(jìn)行了限幅。4.4.2 電機(jī) 由于速度變化并沒有舵機(jī)輸出變化頻繁,且為了使速度能夠 地達(dá)到給定值, 我們采用了增量式的 PID 算法。具體公式為:motor_out+=Mi*MotorE0+Mp*(MotorE0-MotorE1)+Md*(MotorE0-2*MotorE1+Motor E2);(公式 2)此處我們同樣對(duì)誤差和最終輸出給電機(jī)的值進(jìn)行了限幅。為了防止檢測(cè)到的速度突變導(dǎo)致的震蕩,我們對(duì)誤差進(jìn)行了不同的處理,當(dāng)有突變時(shí),當(dāng)場(chǎng)誤差為給定值減去上一場(chǎng)所測(cè)得的值,否則為給定值減去本場(chǎng)所測(cè)得的

24、值。電機(jī)響應(yīng)曲線如圖4.12 所示。東南大學(xué) SEU3第五章 開發(fā)及調(diào)試工具第五章 開發(fā)及調(diào)試工具5.1 開發(fā)平臺(tái)我們使用 scale CodeWarrior 5.0 for HCS12(X)系列開發(fā)工具作為我們車上程序的開發(fā)工具,其主界面如圖 5.1。圖 5.1CodeWarrior 主界面該版本 CodeWarrior 開發(fā)工具 HCS12(X)系列單片機(jī),包含 XS128 內(nèi)所有寄存器的定義,可以在編程的時(shí)候利用“Alt+.”一組快捷鍵進(jìn)行自動(dòng)提示,如圖 5.2。. 25 .圖 5.2 自動(dòng)提示功能CodeWarrior 內(nèi)部還包含一個(gè)全片模擬器,可以方便地在 PC 機(jī)上進(jìn)行,仿真過程中

25、看到響應(yīng)指令或者函數(shù)的運(yùn)行時(shí)間,幫助我們 好單片機(jī)運(yùn)行的時(shí)序, 利用 功能,我們了解了 80MHz 總線頻率下, 1 個(gè)點(diǎn)需要 18 個(gè)時(shí)鐘周期等數(shù)據(jù),圖 5.3 展示了這能。圖 5.3Full Chip Simulation 功能5.2 SD 卡調(diào)試平臺(tái)對(duì)于我校來(lái)說(shuō),SD 卡的調(diào)試平臺(tái)是首次使用,我們感覺十分必要而且十分有用。相比于無(wú)線調(diào)試系統(tǒng),SD 卡調(diào)試平臺(tái)更加適合攝像頭組使用,因?yàn)閳D像數(shù)據(jù)如果用無(wú)線傳輸?shù)脑挄r(shí)間太長(zhǎng),加上相關(guān)的確認(rèn)機(jī)制,無(wú)法在一個(gè)場(chǎng)周期內(nèi)完成上一場(chǎng)圖像的發(fā)送,而使用高速 SD 卡(如 SanDisk Ultra II 1G),單片機(jī) SPI 總線可以工作在 20MHz

26、的速率上,此時(shí)一次寫卡(5120 字節(jié),10 塊)只需要 7-8ms,遠(yuǎn)小于場(chǎng)間隔 20ms。由于單片機(jī)內(nèi)部RAM 有限,我們采到的 40 行數(shù)據(jù)無(wú)法全部 5120 字節(jié)大小的緩沖區(qū)中,我們選擇了圖像 只保留奇數(shù)行的 ,這樣一共需要 4600 字節(jié)圖像數(shù)據(jù), 剩下的 400 字節(jié)全部中點(diǎn) 及車輛運(yùn)行狀況和擬合數(shù)據(jù)等,圖 5.4 為 編寫的上位機(jī)界面。圖5.4該平臺(tái)可以顯示每一場(chǎng)圖像 對(duì)應(yīng)的中點(diǎn) 、速度轉(zhuǎn)向 及擬合數(shù)據(jù),還可對(duì)整體的速度、轉(zhuǎn)向調(diào)節(jié)效果進(jìn)行分析。配合 的上位機(jī)平臺(tái),我們還使用 VS2010 編寫了的原始數(shù)據(jù)解釋程序,可以更 的提取原始數(shù)據(jù),幫助我們完成分析時(shí)序 ,算法 等 不能完成

27、的一些功能。5.3 藍(lán)牙無(wú)線調(diào)試平臺(tái)為了能夠在線的調(diào)試參數(shù),我們使用了藍(lán)牙模塊來(lái)無(wú)線在線修改參數(shù)。這樣可以避免每次修改參數(shù)都需要重新 程序的麻煩。而且在線調(diào)試PID 效果會(huì)更加明顯有效。除了可以發(fā)給單片機(jī)修改參數(shù)外,還可以從單片機(jī)發(fā)回四個(gè)數(shù)據(jù)用曲線表示。上位機(jī)是用 VB 編寫,上位機(jī)界面如圖 5.5。東南大學(xué) SEU3第六章 總結(jié)與展望第六章 總結(jié)與展望我們的隊(duì)伍從去年開始就與智能車結(jié)緣,參加了第五屆東南大學(xué)智能車競(jìng)賽,并通過校隊(duì)的選拔,代表學(xué)校參加第七屆全國(guó)大學(xué)生智能車競(jìng)賽華東賽區(qū)的比賽,獲得了攝像頭組第五名的成績(jī),順利的進(jìn)入到了全國(guó)賽的比賽中。在華東賽以及全國(guó)賽的備戰(zhàn)過程中, 我們?cè)?SD

28、 卡的調(diào)試平臺(tái)的使用方面積累了不少經(jīng)驗(yàn),通過 SD 卡平臺(tái)的使用,我們加快了對(duì)算法的驗(yàn)證與改進(jìn)速度,這極大地提高了我們的工作效率。我們還開發(fā)出了無(wú)線上位機(jī)平臺(tái),實(shí)現(xiàn)了實(shí)時(shí)修改參數(shù)了功能,避免了頻繁 程序帶了的麻煩,節(jié)約了時(shí)間,提高了進(jìn)度,對(duì)車模機(jī)械結(jié)構(gòu)的改造,由于經(jīng)驗(yàn)的缺乏,我們只能在摸索中前進(jìn),在車模經(jīng)歷了多次由 到不 再到 的過程之后,在經(jīng)歷了多次無(wú)可奈何之后,在經(jīng)歷了多次嘗試與失敗后,最終車模處于一個(gè)很 狀態(tài),這也使得我們能最大限度的發(fā)掘算法的潛力。提升車模的速度。調(diào)試平臺(tái)的建立與不斷完善,標(biāo)志著我們的智能車研究進(jìn)入了一個(gè)全新的環(huán)節(jié),用好調(diào)試工具不僅可以發(fā)現(xiàn)程序運(yùn)行中的問題和算法的錯(cuò)誤,

29、更可以在不改變硬件的情況下, 使車模的速度趨于最優(yōu),真正實(shí)現(xiàn)閉環(huán)調(diào)試。在下一屆校隊(duì)備戰(zhàn)智能車的時(shí)候,他們可以在進(jìn)一步改良上位機(jī)的同時(shí),進(jìn)一步的優(yōu)化車模的路徑,改良車模的機(jī)械結(jié)構(gòu),做好速度, 才能更好地發(fā)揮車模的潛力,提升車模的速度。智能車比賽已經(jīng)經(jīng)歷六屆比賽,幾乎每一年 的變化。明年或許車模會(huì)變,或許賽道會(huì)變,但是智能車團(tuán)隊(duì) 變,智能車人追求卓越的信念 改變,老隊(duì)員與新隊(duì)員的傳承 改變,不同學(xué)校之間的技術(shù)交流更加便利,愿每一個(gè)智能車團(tuán)隊(duì)在新的一年中都能取得更新的成果,愿智能汽車有朝一日走入人們的生活,為人類的生活增添新的色彩。. 26 .東南大學(xué) SEU3參考文獻(xiàn)參考文獻(xiàn)1 .自動(dòng) 原理M.

30、:科學(xué) .20062 等.學(xué)做智能車: “飛思 ”杯M. : 航空航天大學(xué) .2007:3 等.HCS12 微器原理及應(yīng)用M.航空航天大學(xué).20074 琨.先進(jìn) PIDM. : 工業(yè) .2004.5GUI 設(shè)計(jì)學(xué)習(xí)手記M.:航空航天大學(xué).2009. 27 .6 .汽車構(gòu)造與原理M. :機(jī)械工業(yè).2010:7 偉.Protel電路設(shè)計(jì)技法范例M.20058 等. 及在 類課程中的應(yīng)用M. : 工業(yè) .20099 華文、 .基于 CCD 攝像頭黑線提取算法J.世界,2009,16(1)10 .數(shù)據(jù)結(jié)構(gòu)與算法分析C+描述M. :人民郵電 .200711 .計(jì)算機(jī) 技術(shù)M.南京:東南大學(xué) .2003東

31、南大學(xué) SEU3致謝致謝在競(jìng)賽的準(zhǔn)備期間,我們遇到了不少。從電路的設(shè)計(jì)到機(jī)械結(jié)構(gòu)的調(diào)整,再到 SD卡調(diào)試平臺(tái)的建立,離不開學(xué)校教務(wù)處和智能車團(tuán)隊(duì)給予我們的支持和幫助。首先,要感謝教務(wù)處方以及指導(dǎo)教師談 、孫 的關(guān)心,沒有她們的 協(xié)調(diào), 缺乏訓(xùn)練場(chǎng)地和器材。其次,要感謝上屆校隊(duì)的學(xué)長(zhǎng)的悉心指導(dǎo),沒有他們的努力,我們的調(diào)試平臺(tái)將進(jìn)展緩慢,缺少他們的支持,我們難以超越 。最后,要感謝校隊(duì)的所有成員,沒有大家共同的努力,就不可能按時(shí)更換賽道,也不可能有競(jìng)爭(zhēng)的環(huán)境讓每個(gè)隊(duì)伍不斷前進(jìn). 28 .東南大學(xué) SEU3源代碼源代碼#include <hidef.h>/* common defines

32、 and macros */ #include <MC9S12XS128.h>/* derivative information */ #include <math.h>#include "FAT16.h" #include "PllInit.h" #include "arithmetic.h" #include "Init.h" #include "SCI.h"#pragma LINK_INFO DERIVATIVE "mc9s12xs128"#de

33、fine BUFFERSIZE5120#define row_num30#define col_num140#define steer_center3000#define car_center70#define steer_left2650#define steer_right3350#define motor_left0#define motor_right2000#define whiteRoad150/路況 Cur_street #define STRIGHT0#define SMALL_TURN1#define C_TURN2#define SMOOTH_S3#defi VERE_S4

34、#define CROSSROAD_LEFT5#define LOSE_LINE6#define OTHERSTREET 7#define C_TURN_LEFT8#define C_TURN_RIGHT 9. 81 .#define CROSSROAD_RIGHT10#define SMALL_TURN_LEFT11#define SMALL_TURN_RIGHT12#define CROSSROAD13/CCD_state#define GETVSYNC0#define GETHREF1#define WAITVSYNC2#define WAITHREF3/Line_State#defin

35、e ONRIGHT 0#define ONLEFT1#define NORMAL2/車內(nèi)部狀態(tài) Car_state #define STOP0#define START1#define INIT2#define LOST3#define P_WIDTH8#define BW_DELTA30#define LINE_EDGE2/-4-152->3#define EndLine_Length10#pragma DATA_SEG DEFAULTunsigned charS12BUFFERBUFFERSIZE; unsigned char* IMAGE_P;unsigned int*CURSPE

36、ED_P;tunsigned char * Car_Center;/2.26int* Center_P;/int* centerfixed_P; unsigned char* Streetstate_P; unsigned char* Carstate_P; unsigned char* CCDstate_P;unsigned int*VsyncNum_P; int *near_piancha_P;int *mid_piancha_P; int *far_piancha_P; int *allpiancha_P; float *steer_nearp_P; float *steer_midp_

37、P; float *steer_farp_P; float *steerKD_P; int *e_steer_P;unsigned char *C_Start_P;/2.27 unsigned char *C_End_P; unsigned char *Dot_P; unsigned char *Dot_P;float *L_a0_P; float *L_a1_P; float *L_s1_P; float *L_s2_P; float *R_a0_P; float *R_a1_P; float *R_s1_P; float *R_s2_P; float *C_a0_P; float *C_a

38、1_P;unsigned char *L_Count_P; unsigned char *R_Count_P;unsigned char *L_Start_P; unsigned char *R_Start_P; unsigned char *L_End_P; unsigned char *R_End_P; unsigned char *L_Count_P; unsigned char *R_Count_P;unsigned int*streetcount_P;float * L_a0_front_P,*L_a1_front_P,*L_s1_front_P,*L_s2_front_P; flo

39、at * R_a0_front_P,*R_a1_front_P,*R_s1_front_P,*R_s2_front_P; float * L_a0_back_P,*L_a1_back_P,*L_s1_back_P,*L_s2_back_P; float * R_a0_back_P,*R_a1_back_P,*R_s1_back_P,*R_s2_back_P; unsigned charSD y=0;unsigned charSDError=0;unsigned char FILENAME="SMARTCARDAT" unsigned char Car_state;unsig

40、ned char Cur_street; unsigned char Far_street; unsigned char Last_street; unsigned char CCD_state; unsigned int Cur_Speed; unsigned char Line_State;/數(shù)碼管/unsigned char LedCode=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; unsigned char LedData=0,0,0,0;unsigned char LedNum=0;unsigned char VSync;

41、unsigned char *image; int image_v_num=0;int v_counter=0;/unsigned int c=0;/unsigned int All_VSync;/unsigned char C_Start,C_End; unsigned char L_Start,L_End; unsigned char R_Start,R_End; unsigned char L_Count; unsigned char R_Count;/*4.16*unsigned char L_Count_; unsigned char R_Count_;/int center_lin

42、erow_num;int centerrow_num;/ int centerfixedrow_num;unsigned char Lxrow_num; unsigned char Rxrow_num; unsigned char UnLxrow_num; unsigned char UnRxrow_num;unsigned char Lxlastrow_num; unsigned char Rxlastrow_num; float Lk,Rk;float Ck;/center 斜率float Cnk;/centerfixed 遠(yuǎn)處斜率float Cfk;/centerfixed 近處斜率in

43、t LRightEdge,LLeftEdge; int LRightEdge1,LLeftEdge1; int LRightEdge2,LLeftEdge2; int LRightEdge3,LLeftEdge3; unsigned char stopLx,stopRx;unsigned char FindStartingLine;/舵機(jī) / float steer_p_mid=5;float steer_p_far=3;float SteerKd=2; int near_piancha; int mid_piancha; int far_piancha; int allpiancha;int

44、 SteerE0=0; int SteerE1=0; int SteerE2=0; int e_steer;unsigned char maxindex,minindex; unsigned char dot ;unsigned char dot_; int Count_Num=0; unsigned int time=0;/速度 / unsigned char FullDuty;unsigned int AIMSPEED=20; unsigned int LASTAIMSPEED=20; unsigned char STEERdeviation=50;int motor_out=0;int

45、MotorE2,MotorE1,MotorE0; int Mi,Md,Mp;unsigned char init_rti_ok=0;unsigned char is_motor;/ float Motor_a,Cur_MotorUd,Last_MotorUd;/ int U1_0,U1_1,E_0,E_1,U_0,U_1,R_0;float Fek0,Fek1,A,B;unsigned int streetcount;/直線擬合/ float L_a0,L_a1;float R_a0,R_a1; float L_s1,L_s2; float R_s1,R_s2; float C_a1,C_a0

46、; float C_s1,C_s2;float L_a0_front,L_a1_front,L_s1_front,L_s2_front; float R_a0_front,R_a1_front,R_s1_front,R_s2_front; float L_a0_back,L_a1_back,L_s1_back,L_s2_back; float R_a0_back,R_a1_back,R_s1_back,R_s2_back; unsigned char firstdot,seconddot;unsigned char C_TURN_RIGHT_D; unsigned char C_TURN_LE

47、FT_D; unsigned char CROSSROAD_RIGHT_D; unsigned char CROSSROAD_LEFT_D; unsigned char DEFAULT_D;unsigned char SLOW_SPEED; unsigned char LOSE_LINE_SPEED; unsigned char STRIGHT_SPEED; unsigned char C_TURN_SPEED; unsigned char S_SPEED;unsigned char DEAFUALT_SPEED;const int selectRow=30,37,44,51,58,65,72

48、,79,86,93,100,106,112,118,124,130,135,140,145,150,154,158,162,166,170,174,178,181,184,187,;unsigned char offset = /每一行的 lp1,lp2 掃描偏移量40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,10,;const char DistanceR =/黑線距離中心的距離61,60,58,56,54,52,51,48,46,44,42,40,38,36,35

49、,32,31,29,27,25,24,22,21,20,17,16,14,13,11,10,;const char DistanceL =61,60,58,56,54,52,51,48,46,44,42,40,38,36,35,32,31,29,27,25,24,22,21,20,17,16,14,13,11,10,;#pragma CODE_SEG DEFAULTvoid Initial_SDCard()/初始化,PE6 燈亮unsigned char temp; unsigned char retry; temp=1;retry=0;while(temp=1 && retr

50、y<10)temp=SD_File_init(FILENAME); retry+;SD y=(temp=0)?1:0;/ SD y=1;void delay10us(int num)unsigned char i; int temp;for(i=0;i<num;i+)temp=0; while(temp<665)temp+;void init (void)int i; initPLL80M(); init ();PJ_init(); ATD0_init(); initGPIO();InitPACNT();/脈沖計(jì)數(shù)初始化InitECT0();/TCNT 初始化InitSCI(0);/初始化 SD 卡的區(qū)域/ IMAGE_P=S12BUFFER+2;/2image=IMAGE_P; S12BUFFER0=row_num; S12BUFFER1=col_num;CURSPEED_P=(unsigned int*)(S12BUFFER);/4500 AIMSPEED_P=CURSPEED_P+1;/4502uint 16bitsCURMOTOR_P

溫馨提示

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

評(píng)論

0/150

提交評(píng)論