0.png (87.66 KB, 下載次數(shù): 60)
下載附件
2018-7-15 18:42 上傳
目錄
第一章 初識智能小車 1
11 常見的兩種類型 1
12 智能小車的基本結構 1
第二章 車體設計 3
21 小車的拆卸 3
22 舵機的安裝 3
23 車體的整體布局 4
第三章 硬件設計 5
31 電源模塊設計 5
311 智能車電源設計要點 5
312 低壓差穩(wěn)壓芯片 LM2940 簡介 5
32 單片機最小系統(tǒng)設計 6
321 單片機最小系統(tǒng)簡介 6
322 51 單片機最小系統(tǒng)設計 6
33 循跡模塊設計 9
331 紅外光電管的工作原理 9
332 檢測電路設計 10
542 光電檢測部分的發(fā)揮設計 12
34 舵機轉向模塊設計 12
341 舵機的工作原理 12
342 常見舵機簡介及使用注意事項 13
35 后輪電機驅動模塊設計 14
351 H 橋驅動電路的工作原理 14
352 常用 H 橋集成電路芯片 L298 16
36 測速模塊 17
第四章 程序設計 18
41 PWM 的相關知識 18
411 PWM 簡介以及實現(xiàn) 18
412 51 單片機產生 PWM 波 19
42 舵機的控制 21
43 后輪電機的控制 22
44 程序總體的設計 22
45 程序設計的發(fā)揮與拓展 23
第五章 測試與調試 24
51 測試與調試 24
52 智能車的測試步驟 24
第六章 車速的測量 26
61 車速測量的重要性 26
62 車速測量的幾種方式 26
621 霍爾傳感器檢測 26
622 反射式光電檢測 26
623 透射式光電檢測 26
63 車速測量的單片機實現(xiàn) 27
第七章 攝像頭的使用 28
71 攝像頭工作原理及簡介 28
72 模擬攝像頭視頻分離電路設計 29
73 攝像頭選型 30
74 攝像頭安裝 32
75 基本視頻信號采集 32
751 使用單片機內部 A/D 轉換。 34
752 使用外部 A/D 轉換器 35
753 使用模擬電路對 PAL 信號進行轉化(參考北京科技大學 CCD 一隊) 36
第八章 電磁傳感器的使用 38
81 智能汽車電磁組簡介: 38
82 20KHz 電源參考設計方案 38
821 電源技術指標要求 38
822 電源組成 39
823 功率輸出電路 40
824 恒流控制 42
825 參考設計電路 42
826 電源調試 43
827 注意事項 44
83 電磁組傳感器及模路徑檢測設計參考方案 44
831 設計原理 44
832 磁場檢測方法 45
833 電路設計 48
834 傳感器的設計與調試 52
835 檢測方案 54
84 軟件部分的簡要流程圖 56
85 結束語 57
第九章 激光傳感器的使用與設計 58
91 激光傳感器的工作原理和驅動 58
92 激光傳感器的選用與注意事項 58
93 激光管的布局和安裝 58
第十章 算法設計 60
101 攝像頭組處理算法 60
1011 黑線提取算法 60
102 車體控制算法 62
1021 PID 算法 62
1022 預判算法 63
0.png (228.19 KB, 下載次數(shù): 67)
下載附件
2018-7-15 18:44 上傳
0.png (435.16 KB, 下載次數(shù): 83)
下載附件
2018-7-15 18:44 上傳
10.1 攝像頭組處理算法
10.1.1 黑線提取算法
目標指引線(即賽道上的黑線)的寬度相對整個賽道較窄,因此只要提取目標指引線的某些特 征點,就能放映出指引線的形狀。我們可以對采集到的視頻數(shù)據(jù)中每列黑線的中間點或邊緣點作為 該列的特征點。在下面的黑線提取算法中,二值化算法才采用的是中間點作為特征點,直接邊緣檢 測法和跟蹤邊緣檢測法采用的是邊緣點作為特征點。
10.1.1.1 二值化算法
算法的思路是:設定一個閾值 value,對于視頻信號矩陣中每一行,從左至右比較各像素和閾值 的大小。若像素值大于等于閾值,則判定該像素對應的是白色賽道;反之,則判定對應的是目標指 引線。記下第一次和最后一次出現(xiàn)像素小于閾值是的像素點的列號,算出兩者的平均值,以此作為 該行上目標指引線的位置。
二值化算法流程圖如圖 10.1 所示。
0.png (64.91 KB, 下載次數(shù): 59)
下載附件
2018-7-15 18:46 上傳
該算法的思路簡單,具體實現(xiàn)時還可以一旦檢測到左邊緣后就退出該行掃描,這樣上面的流程 圖將變的更簡潔。但是這種提取算法穩(wěn)定性較差,當拍攝圖像中只有目標指引線一條黑線時,還能 準確提取出目標指引線,但當光強有大幅度的變化,或者圖像中出現(xiàn)其他黑色圖像的干擾時,該算法提取的位置就有可能與目標指引線的實際位置偏離較大。
實際使用時需要將該算法加以改進,以增強其穩(wěn)定性。比如可以使用該算法找出每行中出現(xiàn)的 黑塊數(shù)量,然后再對提取出的黑塊使用合適的濾波算法,這樣做可以提高該算法的穩(wěn)定性。
10.1.1.2 直接邊緣檢測算法 算法的思路是:設定一個閾值,對于視頻信號矩陣中每一行,從左至右求出相鄰兩像素的差值
(左減右)。若差值大于閾值,則判定下一個的像素對應的是目標指引線的左邊緣,以此像素點作為 該列的特征點,記錄下此像素點的列號,作為該行上目標指引線的位置。當然,可能出現(xiàn)差值始終 小于閾值的情況,此時一種方法是令該行上目標指引線位置為 0,通過進一步濾波或擬合來修正; 另一種方法是讓該行上目標指引線位置和通過上一場視頻數(shù)據(jù)求得的位置一樣。 直接邊緣檢測算法流程圖如圖 9.2 所示。
0.png (56.27 KB, 下載次數(shù): 54)
下載附件
2018-7-15 18:46 上傳
該算法較二值化方法而言,抗環(huán)境光強變化干擾的能力更強,同時還能削弱或消除垂直交叉黑 色指引線的干擾。因為該算法在視頻信號矩陣中是由左至右來尋找目標指引線的左邊緣的,所以當 黑色圖像出現(xiàn)在目標指引線左方時,該算法無法排除干擾,而當其出現(xiàn)在右方時,則可以排除干擾。 實際使用時可以對該算法稍加改進,當一行處理完為找到黑線邊緣時,再通過對左邊緣值與一 固定閾值(類似二值化算法中的閾值)比較,確定其時候是黑線邊緣。為增強穩(wěn)定性可以利用相鄰行黑線邊緣值相近的特點進行合理的濾波。
10.1.1.3 跟蹤邊緣檢測算法
這種算法跟 9.1.1.2 小節(jié)介紹的直接邊緣檢測算法一樣,也是尋找出目標指引線的左邊緣,仍 然用左邊緣的位置代表目標指引線的位置。但跟蹤邊緣檢測從視頻信號矩陣每行中尋找左邊緣的方 法與上一小節(jié)介紹的不同。因為目標指引線是連續(xù)曲線,所以相鄰兩行的左邊緣點比較靠近。跟蹤 邊緣檢測正是利用了這一特性,對直接邊緣檢測進行了簡化。其思路是:若已尋找到某行的左邊緣,
則下一次就在上一個左邊緣附近進行搜尋。這種方法的特點是始終跟蹤每行左邊緣的附近,去尋找 下一列的左邊緣,所以稱為“跟蹤”邊緣檢測算法。 該算法在首行邊緣檢測正確的前提下,該算法具有較強的抗干擾性,能更有效地消除垂直交叉黑色 指引線的干擾,以及指引線外黑色圖像的影響,始終跟蹤目標指引線。另外,較之前兩種算法,跟蹤邊緣檢測算法的時間復雜度更低,因此效率更高。但值得注意的是第一行的左邊緣位置對整個目
標指引線的搜尋影響很大,一旦它的位置和實際導引線偏差較大,就會產生一連串的錯誤,這是不 可容忍的。
實際使用時,在對第一行黑線邊緣的提前尤為重要,可結合上幅圖像中的黑線邊緣值對當前第 一行的黑線邊緣進行濾波處理。
10.1.1.4 中值濾波和曲線擬合 雖然采用了邊緣檢測的方法進行黑線提取,但由于賽道縫隙或其他黑色像點的干擾,仍會使得
某些行的黑線位置發(fā)生跳變。為了解決這一問題,增加算法的穩(wěn)定性,可以采用中值濾波和曲線擬 合的方法對前面獲取的黑線位置進行處理。
中值濾波的思想是:對于某行的黑線位置,如果它的位置正好在前后兩行的中間,則保留原有 位置;否則,以這三行中黑線位置居中的代替該行黑線位置。如圖 5.11 所示,利用中值濾波消除 單個的毛刺,但對連續(xù)兩個以上的毛刺不能濾除。 曲線擬合的思路是:判斷每行黑線位置與整幅圖像黑線平均位置的偏差,如果偏差大于某個數(shù)值, 就將該點標記為無效點,此處的黑線位置用前后最近兩個有效點的黑線位置的算術平均替代。
10.1.1.5 小結 本節(jié)中介紹的四種算法,各有其優(yōu)缺點。在使用時不要拘泥于某一種算法,結合硬件資源合理
利用各種算法的優(yōu)點,取長補短。可以達到意想不到的效果。上述算法中有一個量比較重要,就是 閾值。閾值的選取直接關系到目標線提取的正確性,攝像頭拍攝到圖像近端和遠端是有差異的,往 往一個閾值很難適應整幅圖像。所以可以采用動態(tài)閾值的方法來改善目標線的提取算法的穩(wěn)定性和 適應性。
10.2 車體控制算法
車體控制算法是整個系統(tǒng)的核心,直接影響到小車在賽場上的表現(xiàn)。根據(jù)比賽經(jīng)驗,一般到后 期基本上都是調試這部分的內容。目前常用的的控制算法主要有:PID 算法、預判算法、模糊控制 算法和賽道記憶算法。個人認為不應將賽道記憶作為一種算法提出來實現(xiàn),因為個人感覺有作弊的 嫌疑,其實這個算法往往也不好用,特別是賽道比較大時。結合攝像頭的特點下面主要介紹 PID 算 法和預判算法。
10.2.1 PID 算法
PID 控制是工程實際中應用最為廣泛的調節(jié)器控制規(guī)律。問世至今 70 年多年來,它以其結構簡 單、穩(wěn)定性好、工作可靠、調整方便而成為工業(yè)控制的主要技術之一。
單位反饋的 PID 控制原理框圖如圖 10.3 所示。
0.png (60.45 KB, 下載次數(shù): 54)
下載附件
2018-7-15 18:47 上傳
獲得了新的輸出信號 Y。這個新的輸出信號被再次送到感應器以發(fā)現(xiàn)新的誤差信號,這個過程就這
樣周而復始地進行。運用 PID 控制的關鍵是調整三個比例系數(shù),即參數(shù)整定。PID 控制器參數(shù)整定 的方法很多,概括起來有兩大類:一是理論計算整定法。它主要是依據(jù)系統(tǒng)的數(shù)學模型,經(jīng)過理論 計算確定控制器參數(shù)。二是工程整定方法,它主要依賴工程經(jīng)驗,直接在控制系統(tǒng)的試驗中進行, 且方法簡單、易于掌握,在工程實際中被廣泛采用。
一般來說,增大比例系數(shù)能夠減小上升時間,并減小穩(wěn)態(tài)誤差,但不能消除。增大積分系數(shù)能夠 消除穩(wěn)態(tài)誤差,但會使瞬時響應變差。增大微分系數(shù)能夠增強系統(tǒng)的穩(wěn)定特性,減小超調,并且改 善瞬時響應。以上簡要介紹了 PID 算法的原理和特性,實際過程中,由于傳感器是按一定間隔周期 獲取位置信息的,因此必須將連續(xù) PID 控制離散化,這樣得到的就是數(shù)字 PID 算法。
在實際編程實現(xiàn)時主要需要保存上一幅圖像黑線特征值。這里簡單以一段程序來表示在實際編 程時如何實現(xiàn) PID 算法。
P_error = CurrentMidPlace – ImageMidLine;//靜態(tài)誤差量
D_error = CurrentMidPlace - PreMidPlace;//微分量
I_error += P_error;//積分量
PID = Kp*P_error + Ki*I_error + Kd*D_error;
其中 CurrentMidPlace、PreMidPlace 是當前圖像和上一幅圖像選取的參考行的黑線特征值, ImageMidLine 為固定的參考值(根據(jù)實際算法需要可以動態(tài)修改)。Kp、Ki、Kd 是比例參數(shù),需 要根據(jù)實際情況調試得出。這里的控制對象主要是舵機,電機也可以用類似的算法處理。
實際經(jīng)驗:當積分系數(shù)為 0,微分系數(shù)相對比例系數(shù)較小時,小車性能較好。同時發(fā)現(xiàn),小車 在直道上時比例系數(shù)應適當小些,這樣不會產生“蛇形”現(xiàn)象;彎道上比例系數(shù)應適當大些,這樣 能避免小車在高速入彎后沖出賽道。為了最大程度上發(fā)揮攝像頭的大前瞻的優(yōu)點,可以用預判算法
(也叫賽道識別算法)來對前方的賽道進行預判,根據(jù)賽道的類型來確定 P、I、D 的參數(shù) Kp、Ki、
Kd 的值,并可以達到合理優(yōu)化車速的目的。
10.2.2 預判算法
賽道預判能力是可以說是攝像頭所特有的功能,對于整個車子的行走路線有很大的影響。所以 賽道預判也是圖像處理的一個重要的部分。賽道預判是在前面黑線提取的基礎上來做的。賽道預判 算法每一個組都可能不一樣,沒有一個經(jīng)典的典范,所以在這里我只能就自己所了解得幾種算法來 談一談。我歸納總結一下可以為:拐點算法和斜率算法兩種算法。 拐點算法的思想:對提取的黑線特征點逐個掃描(也可間隔掃描,視情況而定),記錄下路徑中拐 點的個數(shù)以及各拐點對應的行號。然后再根據(jù)得到的拐點數(shù)和拐點與拐點之間的偏差值可以判斷出 賽道的基本類型。若拐點為零,則可以判為直道或直道入彎,然后再對截取一段計算出路徑的偏差 值,通過將偏差值與設定的閾值相比較來確定是直道還是直道入彎道。 這種算法在賽道類型的判斷上準確性比較高,處理復雜度適中,可以考慮使用。
斜率算法的思想:從提取的黑線路徑中選取特定的三行(視情況而定)的黑線特征值,最好選 取的行與實際間隔距離相等。計算出相鄰的黑線特征值的偏差,這里的偏差就是賽道的斜率,根據(jù) 斜率的值可以判斷出賽道的基本特征。
這種算法在賽道類型的判斷上準確性一般,處理復雜度低。
完整的pdf格式文檔51黑下載地址(共68頁):
智能小車設計指導_第二版_預覽版.pdf
(4.13 MB, 下載次數(shù): 26)
2018-7-15 11:18 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|