唐山師范學院攝像頭組Django技術報告8月14_第1頁
唐山師范學院攝像頭組Django技術報告8月14_第2頁
唐山師范學院攝像頭組Django技術報告8月14_第3頁
唐山師范學院攝像頭組Django技術報告8月14_第4頁
唐山師范學院攝像頭組Django技術報告8月14_第5頁
已閱讀5頁,還剩39頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

軟件系統主要包括以下幾個部分:賽道圖像采集部分,圖像數據處理部分,舵機、電機的控制部分,顯示調試部分。整體流程圖如圖5.1所示:圖5.1整體流程圖攝像頭組的一大難點就是圖像的幾個中斷時序問題,只要控制好他們的先后順序就能把圖像采集得很好。該智能車使用的是OV7620CMOS攝像頭,它可以直接輸出行場同步信號,正常輸出圖像大小為240x640。但對于小車來說太大了,要想識別出賽道的有用信息只需要少量的像素信號就行。因此采用隔行采集和pclk分頻的方法把圖像進行縮減。圖像采集時可以采用固定隔行采集的方法,這種方法雖然可以很好的采到真實的圖像,但是到了后面的圖像處理時就沒有采用在特定行采集的方法好了。考慮到攝像頭焦距的問題我們最終采用固定行采集方法。這種固定行采集方法可以將圖像進行簡單的縱向矯正。像素信號可以采用簡單的延時方法采集,這種方法采回來的圖像質量很差。一是圖像的中心不好調整;二是很容易采到雜信號。因此,我們用軟件模擬pclk的5分頻信號,將原來的每行640個像素點減少到了128個點,再通過K60的DMA進行圖像數據的采集。這種方法雖然也不是最準確的采集方法但是比起第一種方法還是有所進步的。這樣就可以每掃描一場得到完整的簡單的賽道信息了,由于我們使用的是軟件分頻,二值化和濾波,需要對圖像處理占用一部分時間,為了避免采集與處理的沖突,所以選擇了隔場掃描,每采集一場,然后處理圖像并控制。之后再從新的一場開始采集,同時通過特定行行數組對圖像矯正,能夠保證圖像的質量和真實的賽道情況,圖5.2為攝像頭采集到的賽道信息: 直入十字 斜入十字 虛線小s 直道圖5.2賽道信息采集到的圖像信息處理成完整的圖像,就該提取賽道有用信息了。首先就是圖像的二值化,這其中的難點是閾值的選取,只有閾值取得好才能很好的準確的簡化圖像信息。這其中就有動態閾值和靜態閾值兩種軟件二值化的方法。靜態閾值方法對于環境的適應能力比較差,環境變化就有可能不能準確的二值化圖像。動態閾值方法雖然可以立刻適應新環境,但是它也有自己的弊端,最主要的是運行時間長,其次是它不一定能很好的找到一幅圖像的閾值,最明顯的地方是在虛線小S處,光線稍暗點就會把黑色虛線二值化沒了。考慮兩種方法的優缺點,最終采用靜態閾值方法。只要在比賽時的試車階段把環境的閾值調整好就可以了。得到二值化的圖像后就是中心線的提取了。如何提取中心線是圖像處理的關鍵,只有正確的提取中心線才能準確的控制小車。由于賽道兩邊的引導線是連續的,只有在十字和虛線小S處會出現短線的情況,但是這都可以通過圖像底層的黑線補出來。因此我們采用先找圖像底部引導線再通過此引導線向上逐行的尋找賽道兩邊的黑線方法來提取賽道邊線,進而提取到中心線。關于中心線提取的具體思路如下:=1\*ROMANI從圖像底層三行采用從中心依次向兩邊擴散搜索,找到黑點記錄值;=2\*ROMANII如果兩邊都找到,直接求平均值得到中心點坐標;如果只找到一邊就用圖像邊緣與這一邊確定中心值;如果兩邊都沒找到,圖像中心即中心值。記錄連續采到有效點的坐標值。如果采到有效的連續的三行黑色邊線,則采用這三個邊線的坐標來作為接下來提取黑線的引導線。否則繼續尋找,直到找到可靠的引導線。=3\*ROMANIII以上行引導線提取到的中線點坐標向兩邊尋找黑點,找到后與上行的引導線做對比,如果相差不大則說明這個點采集正確。否則放棄這個點,用上一行引導線的坐標代替它。這樣就會把十字和虛線小S的斷線給補上。=4\*ROMANIV以這種方法提取下去就能把整幅圖像的中線提取出來,考慮到急彎的時候會出現賽道長度的縮減,我們進行了賽道寬度的限制,當左右邊線的差值小于某個值時就會停止中心線的提取。這樣就會防止誤采的可能。對于斜入十字我們也做了簡單的防止串道的限制算法,就是在斜入十字時賽道的寬度會突然變寬,這是不可能的,所以當采集行比引導行的賽道寬度寬時就放棄本行數據,繼續采取上行的數據代替。這樣就不會在斜入十字是出現串道的情況。通過大量的實際實驗證明我們這種方法既簡單又可靠,在華北賽區的比賽中未出現串道的情況,圖5.3為采用這種方法提取的中心線示意圖。 直入十字 斜入十字 虛線小s 直道圖5.3賽道中心線提取示意圖PID(ProportionalIntegralDerivative)控制是最早發展起來的控制策略之一,由于其算法簡單、魯棒性和可靠性高,被廣泛應用于工業過程控制,尤其適用于可建立精確數學模型的確定性控制系統。圖5.4為模擬PID控制系統原理框圖。圖5.4PID原理框圖PID是一種線性控制器,它根據給定值rin(k)與實際輸出值yout(k)的差值e(t)構成控制方案,圖5.5為利用運放實現模擬PID的一個例子:圖5.5虛短虛斷原則關于各調節器的作用說明:?比例調節器P1、起調節作用,與輸出量和給定量的差成正比,有差就有調節作用,所以他的調節結果總是有差存在,這種調節不可消除差,所以叫這種調節為有靜差調節;2、但這種調節作用快,能很快減小誤差,是最常用的一種調節器。3、積分I調節慢,所以PI是最常用的一種搭配。?積分調節器I1、是給定量與輸出量的差對時間的積分,在電路里就是用給定量與輸出量的差給電容充電,只要時間足夠長,電容器的電壓總會到達給定量,使輸出量與給定量的差為零;2、積分調節器是一種無靜差調節器,意思是說可調節到給定值,做到精確、準確輸出;?微分控制調節器D1、,這種控制總是以輸出量與給定量的差的變化率成正比,差變化越劇烈,調節作用越大,差變化越平穩,調節作用越弱;2、這種微分調節作用,使得輸出量平穩而很少波動;3、這種微分調節作用,對輸出量的變化、波動產生強烈的阻尼、抑制的作用,就像摩擦力的作用;增量式PID的算式為:如果換成智能車里的方向控制就變為:Pwm_offset=PWMMiddle+PID_P*(error-last_error)+PID_I*(error)+PID_D*(error+pre_error-2*last_error);如果換換成智能車里的速度控制就變為:Pwmtemp+=PID_P*(error-last_error)+PID_I*(error)+PID_D*(error+pre_error-2*last_error);在圖像信息中確定中心值后,就可以得到當前中心線的朝向,舵機通過PD控制就可以得到很好的控制效果。通過合理調節P參數,就可以使小車在賽道上穩定行駛,在彎道增大P項可以使小車切內道,但是在直道上會震蕩,于是我們采用動態P來實現舵機基本轉向,直道的P系數小,彎道的系數大,然后再加入D項可以使轉彎提前,出彎時轉彎減小,調節PD系數可以將小車的行車線調整到一個較為理想的狀態。后期還結合中心值加權,對路徑做了一定的優化。舵機控制的基本公式如下:Pwm_offset=PWMMiddle+P*(error)+D*(error-last_error)其中:error是圖像與賽道偏差,last_error為上一次的偏差,那么D項對應的就是賽道變化率。對于速度控制,我們采用了增量式PID控制算法,基本思想是直道加速,彎道減速。經過反復調試,將每場圖像得到的黑線位置與速度PID參考速度值構成二次曲線關系。在實際測試中,我們發現小車直道和彎道相互過渡時加減速比較靈敏,與舵機轉向控制配合得較好。基本PID公式如下:pwmtemp+=PID_P*(error-last_error)+PID_I*(error)+PID_D*(error+pre_error-2*last_error);基本速度公式如下:Speed=Highspeed-error*error/(Highspeed-lowspeed)通過不斷實踐,發現直入彎時,需要及時減速,所以我們根據中心值偏差以及有效行,判斷基本賽道類型,不同的類型需要不同的高速和低速。結果表明這樣控制效果更好。第六章系統開發及調試工具程序及硬件的調整必定離不開調試工具的幫助,合理的使用調試工具可以提高整個智能車制作的效率和質量。再因比賽規定賽場上是不能下載程序的,所以人機交互調試界面的易用性和可靠性就決定了小車對賽場賽道和光線的適應能力。IAREmbeddedWorkbenchforARM是IARSystems公司為ARM微處理器開發的一個集成開發環境。比較其他的ARM開發環境,IAREWARM具有入門容易、使用方便和代碼緊湊等特點。相對于KeilforARM、CodeWarrior而言,IARforARM的編程界面是最簡單的,編譯效率高,在嵌入式系統的調試方面提供了可供調試的插件,方面用戶調試程序。圖6.1為IAR編程與調試界面。圖6.1IAR編程與調試界面J-LINK仿真器是SEGGER公司為支持仿真ARM內核芯片推出的JTAG仿真器,可與IAR編譯環境無縫連接,操作方便且下載速度快,是學習開發ARM最好最實用的開發工具,故使用此款仿真器開發K60,圖6.2為J-LINK外觀。圖6.2J-LINK外觀當后期調試需要小車在賽道上邊行駛邊發送賽道信息到上位機時,USB轉串口線是無法滿足要求的,經過考慮我們選擇了藍牙模塊無線串口通訊。兩塊藍牙模塊一塊當從機,一塊當主機,配合USB-TLL模塊可以方便的將接收到的數據顯示在電腦上,圖6.3為藍牙模塊和USB轉TTL模塊實物圖。圖6.3藍牙模塊及USB轉TTL模塊 我們采用全功能上位機對攝像頭采集到的圖像進行顯示與分析。該軟件可以實時顯示串口接收到的圖像,也可將二維數組轉圖像,支持圖像保存,動態設置協議頭,可以顯示圖像的行列值,灰度值,支持添加算法插件等高級功能。使后期圖像的深入分析與復雜控制算法的編寫成為可能,圖6.4為全功能上位機界面。圖6.4全功能上位機打開界面我們選用OLED顯示屏顯示參數,選用3X6X2.5MM貼片式微動按鍵調節參數。進一步縮小電路板面積,使車身整體更加精妙合理的設計成為可能。圖6.5OLED與LCD5110比較表7.1模型車的主要技術參數說明項目參數路經檢測方法攝像頭組車模長、寬、高(mm)長:300寬:220高:350電容總量1400微法傳感器種類及個數CMOS攝像頭1個,測速編碼器1個,紅外對管5個除了車模原有的驅動電機、舵機之外伺服電機個數無額外伺服電機賽道信息檢測精度1cm賽道信息檢測頻率30HZ車模總重量1Kg第八章總結我們小組成員都是非自動化專業,在小車制作過程中,對此產生了濃厚的興趣,從對智能車一無所知開始,通過查找資料補充知識,經過一系列的設計電路,組裝機械,編寫程序,分析算法,最后終于能夠讓我們的車模跑的達到了預期的要求,并積累很多寶貴的經驗。本智能車系統使用數字攝像頭,直接輸出期望的數據格式,減輕了硬件電路的負擔。適當的使用了貼片式芯片,既保證散熱又有效的縮減了電路面積。使用了32位單片機,比16位單片機執行速度快。中心線提取是根據邊線連續性的特點提取的,這樣大大提高其準確性,省去了對賽道識別的算法。由于OV7620本身場周期16.6毫秒的限制再加上我們使用的提取修正圖像數組的固有缺點。導致必需使用隔場采集,使程序運行周期延長到了30毫秒左右。相比電磁組和光電組8毫秒左右的運行周期慢很多,且程序內各函數執行循序安排不甚合理導致內耗很大,嚴重影響了車速的提升。硬件設計不甚完善導致小車有些頭重腳輕。采用的K60最小系統板體積偏大且沒有集成SD模塊,故日常調整參數時沒有使用上預期的SD卡來讀取小車運行的實際參數,智能憑借經驗來調節,大大降低了參數調整的精度和準確性,也使調車的隊員十分辛苦。使用靈敏度更高,場周期只有8毫秒的OV7725,采用硬件二值化并將電路制作在攝像頭背面。充分利用DMA采集優勢,將算法放在行中斷,達到預期的一場采集并處理使程序運行周期達到8毫秒。采用線程更高,體積更小的光電編碼器并完善硬件設計徹底解決車體頭重腳輕的問題。采用體積更小,模塊集成度更高的K60最小系統板,充分發揮32為單片機的強大功能。經過幾個月的制作和調試智能車,每個隊員都收獲很大。通過這次比賽,不僅發揮了隊員的創新合作精神,而且也學習到其他參賽隊的控制思想和優秀作品。能參加這項比賽,對于本隊每個人來說,定會成為人生當中銘記的經典,每個組員要感謝在這過程中一直鼓勵、支持、幫助我們的指導教師,感謝學校和大賽組委會為我們提供的展示平臺,感謝在這過程中所有幫助過我們的人們。[1]童詩白,華成英.模擬電子技術基礎[M].北京:高等教育出版社,2001.[2]閻石.數字電子技術基礎[M].北京:高等教育出版社,2000.[3]邵貝貝.單片機嵌入式應用的在線開發方法[M].北京.清華大學出版社.2004[4]譚浩強著.C程序設計.北京:清華大學出版社,2003.[5]邱關源.電路.高等教育出版社,1999.[6]第七屆北京科技大學CCD技術報告.[7]第七屆常熟理工學院-閃電六隊-技術報告. 第八屆全國大學生智能汽車競賽技術報告附錄voidhang(){unsignedcharj,*p;if(PORTA_ISFR&(0X00000001<<10)){PORTA_ISFR|=0X00000001<<10;m++;if(m==XZ_Hang[Line_C]){p=&Image_Data[Line_C][0];for(j=0;j<COLUMN;j=j+2,p=p+2){*p=(unsignedchar)LPLD_GPIO_Get(PTB);asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");*(p+1)=(unsignedchar)LPLD_GPIO_Get(PTB);asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");asm("nop");//asm("nop");}Line_C++;}//enable_irq(87);if(Line_C==ROW){SF=1;K=0;//DisableInterrupts;disable_irq(87);disable_irq(88);return;}}}voidchang(){if(PORTB_ISFR&0X00000001<<11){PORTB_ISFR|=0X00000001<<11;PORTA_ISFR|=0X00000001<<10;disable_irq(88);Line_C=0;//LPLD_UART_PutChar(UART1,0xff);//LPLD_UART_PutChar(UART1,0xff);enable_irq(87);K=1;}}voidPIDctr(intyushe_maichong){

溫馨提示

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

評論

0/150

提交評論