前言:想要寫出一篇引人入勝的文章?我們特意為您整理了嵌入式攝像頭OpenMV板球系統(tǒng)設計范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:以OpenMV圖像處理技術(shù)為基礎(chǔ),借助MicroPython語言使其相應IO口輸出PWM,完成了基于串級PID的板球控制系統(tǒng)設計.系統(tǒng)實現(xiàn)了對小球的精確定點和圓周運動控制.測試結(jié)果表明:OpenMV可實時采集小球在平板上的位置并獲取對應的二維坐標;小球能夠按照指定路徑運動,系統(tǒng)抗干擾能力強,反應迅速.
關(guān)鍵詞:板球控制系統(tǒng);OpenMV;圖像處理;串級PID
0引言
板球控制系統(tǒng)是一個多變量、強耦合的非線性控制系統(tǒng).與其他經(jīng)典控制系統(tǒng)相類似,其實驗模型通常用于驗證各種控制算法的優(yōu)劣,其中包括智能控制算法、現(xiàn)代控制算法等.已有的板球控制系統(tǒng)因使用多個控制器而導致系統(tǒng)硬件搭建比較困難,且大部分是基于觸摸反饋機制的系統(tǒng),通過觸摸屏的壓力變化反饋小球的位置信息.其控制方式大多為單環(huán)PID控制,難以精確實現(xiàn)對小球的位置控制,誤差較大,且系統(tǒng)抗干擾能力弱,執(zhí)行器響應較慢.為了解決上述問題,本文設計的板球控制系統(tǒng)硬件部分采用將核心處理器和傳感器合并為一體的OpenMV,不僅簡化了機械結(jié)構(gòu),同時避免了硬件搭建冗雜的缺陷.在軟件控制算法部分采用x軸-y軸并級的串級PID算法[1],平板在OpenMV攝像頭中可視為二維坐標系.通過設置速度環(huán)為內(nèi)環(huán),位置環(huán)為外環(huán),實現(xiàn)了對小球精確的位置控制,同時使該算法的系統(tǒng)抗干擾能力得到了增強,執(zhí)行器的響應速度也得到了優(yōu)化.
1系統(tǒng)總體設計
openmv作為板球控制系統(tǒng)的傳感器和控制器,以STM32H743CPU為核心,集成的OV7725攝像頭芯片作為該系統(tǒng)的圖像處理模塊.另外,MG996R舵機作為執(zhí)行器,7.2V鎳-鉻電池作為執(zhí)行器的總電源,XL4016DC-DC模塊作為舵機的穩(wěn)壓模塊,為舵機提供恒定電壓.首先,利用OpenMV中的傳感器模塊引入攝像頭的感光元件并對相關(guān)參數(shù)進行初始化;接著通過圖像二值化算法確定小球在OpenMV攝像頭中的二維坐標[2],計算出小球當前位置的偏差與當前小球的速度;然后對此偏差利用串級PID控制算法在OpenMV中進行處理,最終計算得到舵機轉(zhuǎn)動的角度并控制板球的平衡.小球的位置信息可發(fā)送至上位機中進行實時監(jiān)測.圖1為系統(tǒng)設計框圖.
2系統(tǒng)硬件設計
板球控制系統(tǒng)的硬件部分由OpenMV、模擬舵機、穩(wěn)壓模塊等構(gòu)成.本設計使用的OpenMV共有14個定時器,包含2個通用定時器,采用3個I/O引腳用于舵機控制.同時具有全速USB(12Mbs)接口,連接電腦上的集成開發(fā)環(huán)境OpenMVIDE可實時采集OpenMV攝像頭捕捉到的圖像,方便程序運行時監(jiān)控小球的運動情況.圖2為板球控制系統(tǒng)實物圖.綜合本系統(tǒng)的實際需求以及硬件搭建的簡潔性,采用7.2V鎳-鉻電池作為系統(tǒng)的總電源.電池容量為2000mAh,通過XL4016DC-DC模塊將電池電壓轉(zhuǎn)為兩路6V輸出,分別為2個舵機供電.
2.1OpenMV攝像頭
OpenMV攝像頭是一種小型、低功耗、多應用的微控制器板,使用MicroPython語言進行編程.其配備的OV7725圖像傳感器能夠以高幀率拍攝8位灰度圖像或16位RGB圖像,方便在工程應用中使用機器視覺實現(xiàn)相關(guān)圖像的應用算法.
2.2舵機執(zhí)行器
舵機屬于伺服電機,帶有反饋環(huán)節(jié),可根據(jù)其屬性對伺服電機進行精確的位置控制或者輸出較高的扭矩.本設計采用的MG996R舵機在6V供電下具有11kg/cm的扭矩和0.15sec/60°的控制精度,適用于對控制精度要求較高的板球控制系統(tǒng).舵機硬件連接共有3根線,分別為VCC、GND和PWM信號線.控制舵機通過接收周期為20ms的PWM信號決定其輸出角度.輸入信號的脈沖寬度與舵機旋轉(zhuǎn)角度呈線性關(guān)系.表1為舵機輸出角度的對應關(guān)系表.
3系統(tǒng)軟件設計
板球控制系統(tǒng)的軟件算法設計主要由小球識別、串級PID構(gòu)成.系統(tǒng)上電后,首先通過按鍵進行模式選擇定點或圓周運動;隨后通過OpenMV機器視覺庫對圖像進行預處理,確定小球在圖像中的x軸與y軸坐標,并與設定點坐標值做差處理,得到小球的位置偏差;再利用幀差分法求出小球速度;最后通過串級PID算法求出平板需轉(zhuǎn)動的角度并向舵機發(fā)送PWM信號,從而維持板球平衡.圖3為系統(tǒng)總控制流程圖.
3.1圖像處理
為了提高機器視覺相關(guān)算法的開發(fā)效率,OpenMV提供了基于圖像處理的MicroPython語言編程接口,內(nèi)置的圖像二值化算法取決于灰度閾值的設置范圍.根據(jù)像素是否在閾值列表內(nèi),將圖像中的所有像素點設置為黑色或白色,圖4為OpenMVIDE閾值調(diào)試界面圖.系統(tǒng)運行時,首先對視覺庫的sensor模塊進行攝像頭初始化,將其像素模式設置為灰度模式;再利用OpenMVIDE中的閾值編輯器為小球選擇最佳的灰度跟蹤閾值,通過二值化函數(shù)image.binary()對圖像進行二值化處理[3],即可識別出小球;最后通過逐行掃描白色的像素點算法確定小球的中心位置坐標.圖5為OpenMV二值化圖像處理流程圖.
3.2串級PID
為了解決傳統(tǒng)單環(huán)PID控制響應速度慢、抗干擾能力弱等問題,對于精度較高要求的本系統(tǒng)采用串級PID控制[4].利用平板在OpenMV攝像頭中呈二維坐標系x軸和y軸,由于運動的獨立性原理,忽略掉球板之間的摩擦力,可將小球的運動分解為相互垂直的兩個方向.因為本設計選取的平板為正方形,兩舵機執(zhí)行器轉(zhuǎn)動角度應設置相同.PID的一般控制規(guī)律為1dedd(1)式中:err(t)是設定值和實際值的偏差,Kp是比例系數(shù),TI是積分時間常數(shù),TD是微分時間常數(shù).由于本設計對實時性要求較高,故設計以下離散化PID控制系統(tǒng):假設采樣間隔為T,系統(tǒng)輸入量為input(t),輸出量為output(t),則在第K時刻的偏差為(2)則離散化PID控制規(guī)律為由式(3)可得,系統(tǒng)的輸出與最近的兩次偏差有關(guān),此PID控制為位置離散化PID,則速度環(huán)為位置環(huán)與相鄰時間的比值.式中:V為小球的實際速度,err(k-1)為小球上一次誤差,err(k)為本次誤差,為攝像頭兩次檢測小球的時間差.為實現(xiàn)對小球的串級PID控制,首先需要理清系統(tǒng)的輸入輸出以及系統(tǒng)的相關(guān)特征.本次設計的板球控制系統(tǒng),首先是通過OpenMV機器視覺模塊獲取小球的位置坐標以及幀差分算法計算的小球速度.兩者作為串級PID的相關(guān)輸入或輸出,可得到平板應轉(zhuǎn)動的角度.在控制算法中,采用x軸-y軸并級的串級PID算法[5].圖6為控制算法的結(jié)構(gòu)框圖.設置小球的速度環(huán)為內(nèi)環(huán),位置環(huán)為外環(huán),內(nèi)環(huán)將外環(huán)求得的小球期望速度與OpenMV幀差分算法得到的小球速度做差后作為內(nèi)環(huán)的輸入,通過PD控制器獲得舵機轉(zhuǎn)動的角度作為系統(tǒng)最終的輸出.內(nèi)環(huán)控制的主要作用是限制小球速度,故運用PD控制.外環(huán)將輸入的期望坐標與OpenMV圖像處理得到的小球坐標做差后作為系統(tǒng)輸入,通過PID控制器得到小球的期望速度并參與系統(tǒng)的內(nèi)環(huán)輸入.外環(huán)控制的主要作用是提高小球位置控制的精度,故運用PID控制.
3.3定點及圓周運動
小球的定點控制目標,是將其快速、精確地穩(wěn)定在目標點.通過OpenMV攝像頭檢測小球的當前位置與設定位置的偏差以及小球的運動速度,使用串級PID控制算法,通過調(diào)整合適的PID參數(shù),輸出平板x軸和y軸傾斜角度所需的控制量,通過執(zhí)行器舵機可實現(xiàn)小球最終穩(wěn)定在目標點區(qū)域.對于小球圓周運動控制算法的實現(xiàn),可參考圓的參數(shù)方程:(4)式中:,表示圓心坐標;r表示圓的半徑;θ為2π的歸一化值.設置圓心坐標和小球運動半徑,利用OpenMV內(nèi)置的定時器,每秒θ值加一,通過調(diào)整內(nèi)外環(huán)控制器合適的參數(shù)(內(nèi)環(huán):Kp=0.1,Kd=0.02;外環(huán):Kp=0.28,Ki=0.04,Kd=0.14),即可保證小球在平板上做圓周運動.
4測試結(jié)果分析
通過對內(nèi)外環(huán)PID相關(guān)參數(shù)的不斷校正,最終板球控制系統(tǒng)可以在定點模式和圓周運動模式之間任意切換.經(jīng)測試,在小球定點控制模式下,小球與最終目標位置的精度偏差最大不超過1cm,穩(wěn)定時間不超過6s.在圓周運動模式中,小球能按照設定圓的參數(shù)完成繞行任務,小球繞行的圓半徑與實際設定的圓半徑偏差不超過1.5cm.經(jīng)過對小球環(huán)繞的多次測試,得出小球繞行一圈的平均時間約為15s.圖7為小球圓周運動效果圖.
5結(jié)語
本設計采用OpenMV作為傳感器和控制器,利用圖像處理和串級PID控制算法完成了對板球控制系統(tǒng)的設計.圖像部分運用對像素的二值化處理可消除外部干擾因素的影響.軟件控制算法使用串級PID相比于單環(huán)PID控制更精確,能夠克服對象非線性特性的影響,通過內(nèi)外兩環(huán)并聯(lián)調(diào)節(jié)增強系統(tǒng)的穩(wěn)定性和抗干擾能力.
作者:何俊杰 尹煒 胡柏 姚安權(quán) 陳林 李鑫 單位:常熟理工學院電氣與自動化工程學院