基于機器視覺的循跡小車設計_第1頁
基于機器視覺的循跡小車設計_第2頁
基于機器視覺的循跡小車設計_第3頁
基于機器視覺的循跡小車設計_第4頁
基于機器視覺的循跡小車設計_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

)其中各變量的含義如下:-采樣序號,=0,1,2,3……;-第次采樣時刻的計算機輸出值;-第次采樣時刻輸入的偏差值;-第次采樣時刻輸入的偏差值;-積分系數(shù);-微分系數(shù)。由于公式2給出了全部控制量的大小,因此被稱為全量式或位置式PID控制算法。需要注意的是位置式PID只需要計算第次和次的誤差即可,并且控制器會對偏差進行累加,也就是控制器的每次輸出都和過去的狀態(tài)有關[5]。3.3.3參數(shù)整定對于位置式PID控制算法中的參數(shù)整定有一套經(jīng)驗:先比例后微分最后積分,其原因是對于位置式PID控制中的比例項,其往往代表系統(tǒng)的響應的力度,此參數(shù)要優(yōu)先調(diào)整,使系統(tǒng)能有力、快速的響應。而對于微分項而言其最大的作用類似于“多退少補”,對系統(tǒng)響應的前期,其輸出將協(xié)助系統(tǒng)回到設定狀態(tài),當系統(tǒng)出現(xiàn)過度響應時會抑制系統(tǒng)輸出,因此當系統(tǒng)出現(xiàn)輕微超調(diào)時就可引入微分項Kd消除超調(diào)。最后是積分項,由于其積分誤差的作用,在賦值的時要注意其大小,原因是對于系統(tǒng)響應無力或過度,其誤差積分十分迅速因此需要進行適當?shù)南薹?。調(diào)試過程中過高的會導致超調(diào),系統(tǒng)會出現(xiàn)低頻震蕩,導致當前值在設定值附近低頻率的大幅波動致使系統(tǒng)無法穩(wěn)定。過高的會導致系統(tǒng)欠調(diào)和響應不夠迅速,嚴重者系統(tǒng)將出現(xiàn)高頻震蕩,當前值將在設定值附近高頻率的小幅波動,對系統(tǒng)各執(zhí)行部件造成不良影響,因此再調(diào)試過程中要格外注意。3.3.4串級PID在作品上的應用在實際應用中的閉環(huán)控制往往不止一個,協(xié)調(diào)多個閉環(huán)需要考慮使用并級PID還是串級PID,本作品小車本身存在一個速度閉環(huán)與角速度(自旋角速度)閉環(huán),以此舉例:并級PID指的是把兩個閉環(huán)的PID輸出相加減作為最終輸出的占空比使能電機,此方式雖然簡單但有明顯缺陷:對于角速度閉環(huán)而言其唯一目的就是控制小車的自身角速度,而速度環(huán)同理,二者均為通過控制占空比進行控制,導致兩個閉環(huán)存在互相干擾。對于并級PID而言,其流程框圖如圖3-6所示:圖3-6并級PID流程圖PID串級控制是一種常用的控制策略,用于提高系統(tǒng)的穩(wěn)定性和響應速度。它基于PID控制器,引入內(nèi)環(huán)與外環(huán)的概念,用于處理控制系統(tǒng)中多級聯(lián)接的情況。其中一個PID控制器控制主要過程變量,而其他PID控制器控制輔助過程變量,以實現(xiàn)更精確的控制[6]。對于串級PID,需要劃分其控制的邏輯順序,也就是內(nèi)環(huán)與外環(huán)。使用速度閉環(huán)(周期5ms)作為內(nèi)環(huán)控制,將角速度閉環(huán)(周期10ms)作為外環(huán)控制,同時將角速度閉環(huán)的輸出值進行量級縮放,使其與速度閉環(huán)中的設定速度同一個量級。運行過程中從始至終只有速度閉環(huán)可以控制電機的轉(zhuǎn)速,而角速度閉環(huán)通過改變速度閉環(huán)中的設定速度去“控制”速度閉環(huán),從而避免了二者的互耦,效果相對于并級PID提升十分明顯,缺點是參數(shù)整定難度略大,其流程框圖如圖3-7所示:圖3-7串級PID流程圖 原理分析完成后接下來就是代碼實現(xiàn)了,圖3-8與圖3-9為對應代碼片段。圖3-8位置式PID代碼實現(xiàn)圖3-9速度閉環(huán)代碼片段3.3姿態(tài)解算由于小車其在地平面上行駛,因此只需解算偏航角即可。姿態(tài)傳感器中陀螺儀具有良好的高頻特性,但使用陀螺儀獲取的姿態(tài)角其誤差會隨時間增長,原因是陀螺儀在靜置狀態(tài)仍有微小的讀數(shù),通過采集靜置狀態(tài)下一定次數(shù)的讀數(shù)取平均值就可得到零漂的粗略估計[7],代碼片段如圖3-8所示。圖3-9零漂采集代碼片段加速度計具有良好的低頻特性不會隨著時間漂移,但是載體劇烈運動時噪聲難以消除。于是可以通過融合陀螺儀、加速度計的數(shù)據(jù),揚長避短得到高頻、低頻特性都很好的數(shù)據(jù)。本作品在調(diào)試過程中主要使用Mahony互補濾波算法計算四元數(shù)再計算出三個姿態(tài)角,如圖3-10解算姿態(tài)角代碼片段所示。圖3-10解算姿態(tài)角代碼片段

4視覺算法邏輯4.1拍攝前的相機參數(shù)設置參考OV5640數(shù)據(jù)手冊了解到其配置寄存器地址極多,設置較為復雜,且并無直接輸出灰度圖像的方法。部分無關緊要的寄存器配置如增益,白平衡,色彩矩陣等等參考野火STM32H750開源資料中的配置。需要提及的是,OV5640有好幾個窗口概念,官方手冊中的說明如圖4-1所示。圖4-1OV5640中的窗口概念查閱資料得知這幾種窗口的含義:(1)物理像素窗口(Physicalpixelsize):為2624*1954(包含黑電平矯正線和空像素,有效分辨率為2592*1944)。(2)ISP(imagesensorprocessor)輸入窗口:需要進行處理的像素窗口。(3)預縮放窗口(pre-scalingsize):ISP窗口的基礎上,調(diào)整用于縮放輸出的窗口。(4)輸出窗口(afterscaling):根據(jù)預縮放窗口和要輸出的分辨率,進行縮放,得到最終的圖像。再根據(jù)手冊對設置輸出圖像尺寸與格式的關鍵寄存器配置如下參數(shù):{0x4300,0x10}(0x4300為formatcontrolregisters格式控制寄存器,此處輸出格式設置為YUV422,實際上只是Y8輸出,就能輸出灰度圖像了)。{0X501F,0x00}(0X501F是ISPformatcontrolregistersISP格式控制寄存器,此處配置為ISPYUV422)。{0x380c,0x07}(HTS,也就是實際輸出的水平總尺寸,這里的配置會嚴重影響最終幀率,且水平總尺寸大小不能大于ISP窗口的大小,經(jīng)過反復調(diào)試選定為0x07較為合適)。{0x380e,0x03}(VTS,也就是實際輸出的垂直總尺寸,同樣會影響圖像幀率,這里配置為0x03)。4.2圖像的預處理 由于OV5640采集一幀圖像并通過SCCB傳輸,單片機需要定義一段地址空間用于存儲圖像數(shù)據(jù),且存儲的方式為行連續(xù)型(圖像數(shù)據(jù)按行順序進行存儲)。為了方便后續(xù)的圖像處理,這里將圖像數(shù)據(jù)從原始地址區(qū)域轉(zhuǎn)移到IMG圖像數(shù)組內(nèi),將圖像的左上角定義為圖像原點(0,0),圖像右下角定義為圖像的終點。使用此種方法定義的圖像更為方便,訪問圖像數(shù)據(jù)只需遍歷IMG數(shù)組即可,使用起來邏輯性更加通順。4.2.1圖像二值化 由于采集的原始圖像為Y8也就是灰度圖像,所有像素的值均在0-255之間,想要做到鎖定待抓取物體則需要先進行二值化,再進行物體的鎖定。常見的閾值算法有大津法(最大類間方差法OTSU)、全局閾值法、Maxentropy法等等。以下是調(diào)試過程中對幾種常用算法的總結(jié)和缺點解析: 大津法的目標是將一幅圖像分成兩個類(前景和背景),使得類間方差最大。在圖像分割中,類間方差是一個很重要的度量,它表示了不同類別之間的差異性。大津法的核心思想是通過嘗試所有可能的閾值來最大化類間方差,從而找到最佳的分割閾值[8]。大津法對每張待處理的圖片單獨計算一個二值化閾值,這種方法較好的解決了白天和晚上光照強度不同而導致閾值變化的問題。但仍然有不足之處,如下圖4-2所示,對于光照不均勻的區(qū)域效果較差。圖4-2大津法效果展示 而全局或局部閾值法均無法穩(wěn)定、有效的應對強光環(huán)境和光照不均環(huán)境,尤其是對于地面有光源反光的情況,通過多次調(diào)試攝像頭總結(jié)經(jīng)驗與查閱資料,最終結(jié)合大津法與局部平局閾值法,各取50%的權(quán)重融合作為全局的閾值,再通過手動添加經(jīng)驗性修正值(一般在10-20)便完成了閾值的處理。最終的效果便是保留巡線軌跡的基本特征同時適當濾除反光,對于光強不同的區(qū)域處理也尚能接受,最終效果如圖4-3所示。此外此算法的缺點也很明顯,對于部分灰度差距很小的區(qū)域,會出現(xiàn)白色噪點(可通過調(diào)整經(jīng)驗性修正值消除)。圖4-3優(yōu)化后效果4.2.2圖像的逆透視變換(射影變換)對于二維圖像而言,若拍攝角度并非特殊角(如90°垂直拍攝),則獲取的圖像需要經(jīng)過逆透視變換,如此才能獲取目標物品相對于機械臂的物理距離和角度。逆透視變換又稱射影變換,透視變換主要用于將一個平面從視角A變換的視角B。即從平面在視角A的圖片中,生成一張“假”的圖片,這張“假”圖片中的平面正好和視角B下的圖片相同。這里提到了“一個平面”,這意味著不在同一個平面上的點是不滿足這個變換的,由于巡線軌跡與目標物品均在地平面上,滿足同一平面的要求所以可以進行逆透視變換。通過使用透視變換,我們可以將相機斜向下得到的圖像(圖4-4)變換成近似的俯視圖如圖4-5所示。4-4正常視角下的圖像4-5透視后的圖像有了透視矩陣此后每拍攝一幅圖片就可進行透視變換得到俯視視角的圖片,而計算透視矩陣分為兩個情況,其一是在單片機上計算(只需一次),其二是使用電腦計算并將結(jié)果提前存在單片機內(nèi)部。本作品使用上位機四點法計算透視矩陣,在單片機內(nèi)定義矩陣供后續(xù)使用。4.3軌跡提取與待夾取物品的判斷4.3.1巡線軌跡的提取由于循跡所用的膠帶較為簡單。此處使用邊緣檢測-Sobel算子便可獲得較好的效果。Sobel邊緣檢測是一種常用的圖像處理算法,用于檢測圖像中的邊緣。該算法基于離散的差分運算,可以有效地識別圖像中灰度變化劇烈的位置,從而找到圖像的邊緣,其通常用于檢測圖像中的水平和垂直邊緣,它分別使用兩個3x3的卷積核(即Sobel水平核和Sobel垂直核)來計算圖像的水平和垂直梯度[9]。 將其原理掌握之后用C語言代碼實現(xiàn),其最終效果如圖4-6所示。圖4-6sobel檢測循跡軌道邊界獲得軌道的邊界后通過遍歷圖像的所有行像素加上條件判斷,便可確定軌道的左邊線和右邊線。對于某一行的左邊界和右邊界,將其橫坐標相加后取平均得到這一行軌道的中點,將此方法推廣到所有行便得到了圖像中軌道的真正軌跡,也是小車需要進行循跡的軌跡。4.3.2識別待夾取物品連通域算法是圖像處理中常用的一種方法,用于識別和標記圖像中具有相同特征或?qū)傩缘倪B通區(qū)域。連通域是指圖像中具有相同性質(zhì)且相鄰的像素構(gòu)成的區(qū)域,這些像素在空間上是連續(xù)的。常見的連通域算法包括基于掃描線的算法、基于區(qū)域增長的算法和基于連通性的算法,本作品使用的是基于四領域的連通域算法[10]。由于待夾取物品為深色,底板為淺色,所以識別待夾取物品采用色塊識別。其思路如為二值化圖像結(jié)合四領域進行two-pass算法。以下是四領域查找連通域色塊的實現(xiàn)思路:第一次從上到小從左到右掃描圖像,將每個白色像素打上獨特標簽label值,第二次從上到小從左到右掃描圖像,所有連通起來的白色像素均被標記為同一個色塊,每個白色像素原本獨特的標簽值均被“同化”為一個色塊標簽值,不連通色塊的label值是不同的,由此每一個獨立、不與其他色塊連通的色塊均被打上標簽。通過索引label值去給每個色塊做統(tǒng)計信息,比如統(tǒng)計每個色塊的像素個數(shù),最大長,最大寬等等,然后就可以通過統(tǒng)計信息去篩選合適的、符合條件的色塊,也就是待夾取物品的色塊了。

5總結(jié) 在完成本作品的過程中,深入學習了STM32H750的基礎知識,掌握HAL庫的使用與熟悉開發(fā)過程,學習到有關單片機的更多知識如定時器不同通道輸出PWM波形經(jīng)由驅(qū)動板驅(qū)動有刷電機、使用定時器中斷生成低頻率的方形脈沖用于控制舵機角度來進行抓取動作,還掌握了PID控制算法的參數(shù)整定流程與基礎框架的編寫,完成兩個閉環(huán)的控制取得較為理想的控制效果。學習到許多圖像處理算法如sobel邊緣檢測、OTSU最大類間方差算法,在此基礎上又掌握了四領域two-pass算法并成功鎖定目標色塊。硬件方面掌握了AltiumDesigner、立創(chuàng)EDA的用法,熟練掌握非高頻雙層PCB板的繪制尤其是電源模塊布局與鋪銅管理,最終焊接完成經(jīng)由調(diào)試后投入使用。還掌握了SolidWorks3D建模與AUTOCAD繪制平面尺寸圖紙,整個作品完成的過程讓我收獲頗豐、難以言明。 遺憾的是筆者能力有限,完成作品時間也比較倉促,許多想法未付諸行動,很多地方也值得繼續(xù)努力研究與完善。

參考文獻[1]王殿衛(wèi),郭津津,李維驍.基于麥克納姆輪的AGV定位及糾偏技術(shù)的研究[J].天津理工大學學報,2020,36(4):6.[2]LiY,DaiS,ZhengY,etal.ModelingandKinematicsSimulationofaMecanumWheelPlatforminRecurDyn[J].JournalofRobotics,2018,(2018-1-28),2018,2018:1-7.[3]LiS,ZhangJ,ZhaoK,etal.Trajectorytrackingcontrolforfour-mecanum-wheelmobilevehicle:Avariablegainactivedisturbancerejectioncontrolapproach[J].InternationalJournalofRobustandNonlinearControl,2021.[4]劉康,程尹力.PID電機控制系統(tǒng)設計[J].電子世界,2021(20):158-159.[5]束紅林.基于單片機PID算法的直流電機速度控制方法[J].電氣傳動自動化,2023,45(3):5-7,20.[6]程家駒,孔凡斌,王穎熙,等.基于串級PID控制的三輪電磁循跡小車[J].電子產(chǎn)品世界,2023,30(11):52-54.[7]黃坡,馬艷,楊萬扣.基于Mahony濾波器和PID控制器的四旋翼飛行器姿態(tài)控制[J].電腦知識與技術(shù),2014(7):1611-1617.[8]李了了

溫馨提示

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

評論

0/150

提交評論