亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Unity3D的板球系統(tǒng)仿真實驗建設(shè)與教學(xué)

        2022-08-04 09:27:58郭鐵錚鄭亦峰陳國軍鄧君卓范曉陽
        實驗室研究與探索 2022年3期
        關(guān)鍵詞:板球方形控制算法

        郭鐵錚, 鄭亦峰, 陳 巍, 陳國軍, 鄧君卓, 范曉陽

        (南京工程學(xué)院 工業(yè)中心,南京 211167)

        0 引 言

        平衡板球系統(tǒng)是一個基于視覺的兩自由度非線性機電系統(tǒng),是控制原理研究的典型對象。目前不少控制理論課程已使用板球系統(tǒng)作為實驗教學(xué)平臺,對于幫助學(xué)生理解和掌握經(jīng)典控制理論、現(xiàn)代控制理論及運動控制等知識起到了重要促進(jìn)作用[1]。但當(dāng)前的實驗教學(xué)過程中存在著設(shè)備短缺、時間受限等問題,學(xué)生無法在有限的時間內(nèi)完成機電系統(tǒng)使用、控制算法設(shè)計及驗證等內(nèi)容[2],尤其是需要自主設(shè)計算法的高階部分,往往時間和實驗平臺無法同時滿足??紤]到虛擬平臺不受時間、空間的限制,具有成本低廉、反復(fù)演練等優(yōu)點,并能將算法設(shè)計等內(nèi)容前移至仿真平臺,實現(xiàn)“理論學(xué)習(xí)-仿真設(shè)計-實物驗證”的虛實結(jié)合教學(xué)方式,是解決上述問題的重要途徑。不同于Matlab等傳統(tǒng)仿真平臺[3],Unity仿真系統(tǒng)以3D虛擬交互方式可以直觀地展現(xiàn)板球系統(tǒng)的工作原理。

        本文以控制原理實驗課程為研究對象,利用Unity3D軟件建設(shè)新型板球系統(tǒng)虛擬仿真平臺,并以此為基礎(chǔ),設(shè)計虛實結(jié)合的板球系統(tǒng)實驗教學(xué)方案。通過虛擬平臺仿真和實物平臺驗證相結(jié)合的教學(xué)方法,提高實驗教學(xué)效果,改善課程教學(xué)質(zhì)量,對于培養(yǎng)學(xué)生掌握控制理論相關(guān)課程內(nèi)容具有重要促進(jìn)意義。

        1 平衡板球系統(tǒng)設(shè)計

        1.1 板球系統(tǒng)組成

        平衡板球系統(tǒng)是一個不穩(wěn)定的開環(huán)系統(tǒng),目標(biāo)是將自由滾動的球保持在特定位置或強制其沿方形板上特定的軌跡運動[4]。板球系統(tǒng)的示意圖如圖1所示,方形板由萬向節(jié)固定在設(shè)備中心,可圍繞兩個水平軸旋轉(zhuǎn)。視覺傳感器(OV攝像頭)布置在方形板上方,用于捕獲球的圖像與位置(xb,yb),并將其發(fā)送至控制器,處理后產(chǎn)生相應(yīng)的驅(qū)動信號Ux、Uy[5]。兩個步進(jìn)電動機接收到驅(qū)動信號后,傾斜方形板以實現(xiàn)球的運動控制,如圖2所示。球的運動速度由方形板的斜率和球的慣性矩決定。

        圖1 實驗臺示意圖

        圖2 視覺系統(tǒng)組成

        1.2 機械結(jié)構(gòu)設(shè)計

        為了克服步進(jìn)電動機中偶爾出現(xiàn)的失步現(xiàn)象,通過測量電動機旋轉(zhuǎn)角度,并推導(dǎo)旋轉(zhuǎn)角度與方形板旋轉(zhuǎn)角最終位置之間的幾何關(guān)系來獲取板的位置。電動機通過特殊設(shè)計的L形連桿與方形板相連,電動機旋轉(zhuǎn)角度與方形板傾斜角度的關(guān)系參見圖3所示的空間連桿機構(gòu)示意圖。L形連桿的每側(cè)都有平行四邊形連桿機構(gòu),其中L1和L2為垂直連桿機構(gòu),L3和L4為水平連桿機構(gòu)。對于微小運動來說,由于平行四邊形連桿機構(gòu)運動學(xué)約束作用[6],該機械結(jié)構(gòu)的設(shè)計可確保兩個方形板傾斜角(φx和φy)和相應(yīng)的電動機旋轉(zhuǎn)角度(θm1和θm2)相等。

        圖3 板球系統(tǒng)空間連桿機構(gòu)示意圖

        2 板球系統(tǒng)數(shù)學(xué)建模

        由于首次接觸控制原理課程的學(xué)生較難理解復(fù)雜的板球系統(tǒng)數(shù)學(xué)建模過程,對板球系統(tǒng)進(jìn)行了建模簡化,以便初學(xué)者快速掌握其原理和要領(lǐng)。

        基本假設(shè):

        (1) 球與板之間沒有打滑現(xiàn)象;

        (2) 該系統(tǒng)的自由度是有限的;

        (3) 忽略球繞其垂直軸的旋轉(zhuǎn);

        (4) 忽略球與板之間的滾動摩擦;

        (5) 假設(shè)板在其平衡范圍內(nèi)有很小的運動以確保板的傾斜角度大致等于電動機旋轉(zhuǎn)角度;

        (6) 方形板的x-z和y-z平面完全對稱[7]。

        根據(jù)以上條件可得出,在4個變量中,板和L形連桿機構(gòu)具有兩個自由度,與系統(tǒng)的輸入(θm1、θm2、φx和φy)相符。因此,存在以下兩個運動學(xué)約束方程,將電動機旋轉(zhuǎn)角度(θm1、θm2)與板傾斜角度(φx、φy)相關(guān)聯(lián)。

        (H1cosφx-H1cosθm1)2+

        (1)

        (H2sinθm2-H2sinφycosφx+V2)2+(H2cosφy-

        (2)

        從非線性方程(1)和(2)中可以看出,方形板傾斜角(φx和φy)和相應(yīng)的電動機旋轉(zhuǎn)角度(θm1和θm2)相關(guān)[8]。因此,可以將式(1)和(2)中的表達(dá)式簡化為如下的線性關(guān)系:

        φx=θm1,φy=θm2

        (3)

        球位置和方形板傾斜角度之間的關(guān)系可用歐拉-拉格朗日方程表示:

        (4)

        板球系統(tǒng)的4個變量中,2個變量描述球在板上的運動,另外2個變量描述方形板的傾斜度。坐標(biāo)xb和yb描述了球的位置,φx和φy描述了方形板的傾斜角,并表示如下:

        q1=xb,q2=yb,q3=φx,q4=φy

        球的動能Ekb可由轉(zhuǎn)動與平動兩個動能表示:

        (5)

        式中,m為球的質(zhì)量,球慣性Ib表示為

        (6)

        則方形板的動能Ekp與球位置(xb,yb)的關(guān)系表示為:

        (7)

        板球系統(tǒng)的總動能為:

        Ek=Ekb+Ekp

        (8)

        系統(tǒng)勢能由球位置和方形板傾斜角表示為:

        Ep=mg(xbsinφx+ybsinφy)

        (9)

        由此可以得到非線性微分方程,并經(jīng)過推導(dǎo)得到歐拉方程特解

        mgxbsinφx=0

        (10)

        mgybsinφy=0

        (11)

        (12)

        (13)

        式(10)和(11)描述了球在方形板上的運動,證明球在運動時的加速度取決于方形板傾斜的角度和角速度。式(12)和(13)說明了外部驅(qū)動力、球的位置和速度對方形板傾斜動力學(xué)的影響。

        式(10)和(12)中特定術(shù)語的解釋如表1所示。

        表1 特定術(shù)語解釋

        3 虛擬仿真平臺建設(shè)

        3.1 開發(fā)平臺選擇

        虛擬仿真系統(tǒng)是一種實現(xiàn)軟、硬件一體化的系統(tǒng),其中Unity3D具有功能模塊化、開發(fā)效率高、畫面質(zhì)量優(yōu)、兼容性好、交互性強等優(yōu)點[9]。本文根據(jù)實際需求,最終確定了基于Unity3D技術(shù)的虛擬仿真方案。該方案設(shè)計出的系統(tǒng)實現(xiàn)了一個高沉浸性與交互性的虛擬仿真環(huán)境,后期與硬件設(shè)備調(diào)試結(jié)合,為學(xué)生提供了一套完整的控制系統(tǒng)實驗教學(xué)體系。

        3.2 場景元素設(shè)計

        為幫助學(xué)生對平衡板球系統(tǒng)有更直觀的認(rèn)識和理解,在Unity3D中建立了板球系統(tǒng)模型,著力于詳細(xì)展現(xiàn)真實操作中的各個細(xì)節(jié),使學(xué)生在虛擬實驗過程中提高創(chuàng)新思維,為后續(xù)的實際實驗操作打下堅實基礎(chǔ)。具體建模內(nèi)容如下:

        (1) 方形板。如圖4(a)所示,方形板主體部分由渲染層(黑色表面)、物理碰撞箱(用于物理運算)和觸發(fā)器碰撞箱(用于球離開板的檢測)組成。3個部分在此處作為一個整體的板,并保持相對靜止。

        (2) 標(biāo)記點。如圖4(b)所示,標(biāo)記點由渲染層(黑底白圈)和觸發(fā)器碰撞箱(白圈區(qū)域,用于球進(jìn)出標(biāo)記點檢測)組成,在方形板區(qū)域均勻分布9個,與方形板保持相對靜止,球在接觸碰撞箱邊緣時會觸發(fā)相應(yīng)事件。

        (3) 球。如圖4(c)所示,球模型由渲染層和物理碰撞箱構(gòu)成,同時帶有剛體屬性,該屬性使得Unity物理引擎可對它施加重力,并進(jìn)行慣性運算。

        (4) 攝像機。攝像機用于設(shè)定Unity中的渲染視角。場景中存在3個攝像機,1個保持在球的正上方,1個保持在板的正上方,還有1個可根據(jù)需要使用鼠標(biāo)縮放和移動。2個跟隨相機使用平行透視(無近大遠(yuǎn)小關(guān)系),1個可移動的主攝像機使用焦點透視。

        (5) 物理模擬設(shè)定。上述模擬中,所有表面摩擦系數(shù)均設(shè)定為0,接觸面摩擦系數(shù)采用最小值,即取兩接觸面中摩擦系數(shù)較小的作為接觸區(qū)域摩擦系數(shù)。在運動中,空氣阻力不計,球質(zhì)量設(shè)定為1 g。方形板、攝像機沒有被附加剛體屬性,不計質(zhì)量,因此可以任意速度、加速度移動。

        3.3 開發(fā)思路與流程

        基于Unity3D軟件構(gòu)建板球系統(tǒng)元素的模型,在模型中添加物理碰撞箱用于設(shè)置與檢測碰撞。而后編寫腳本,通過腳本指令獲取對象之間的實時反饋。系統(tǒng)總體框架設(shè)計完成后,進(jìn)一步探索研究所需關(guān)鍵技術(shù):碰撞檢測、控制程序設(shè)計、腳本設(shè)計等。最后通過調(diào)試,并打包發(fā)布。圖5所示為系統(tǒng)開發(fā)流程。

        圖5 系統(tǒng)開發(fā)流程

        人機交互界面設(shè)計和板球系統(tǒng)仿真程序由C#編寫,控制程序通過調(diào)用軟件開發(fā)工具包(Software Development Kit,SDK)相關(guān)函數(shù)來對Unity中場景進(jìn)行控制和檢測??刂瞥绦蚩色@取球坐標(biāo)和方形板在x、y軸轉(zhuǎn)動角度,并可設(shè)定方形板轉(zhuǎn)動角度。球可觸發(fā)以下相應(yīng)事件:球靠近時接觸白圈、球完全進(jìn)入白圈、球離開時接觸白圈、球完全離開白圈、球離開板范圍等。仿真平臺相關(guān)代碼已上傳至github平臺。

        Unity場景和腳本:

        https://github.com/developer-ken/BallSim

        SDK控制程序端:

        https://github.com/developer-ken/BallSim-SDK

        仿真系統(tǒng)跨進(jìn)程通信如圖6所示,使用用戶數(shù)據(jù)包協(xié)議(User Datagram Protocol,UDP)進(jìn)行跨進(jìn)程通信[10]。在Unity中編寫的腳本監(jiān)聽一個固定的本地端口,并等待數(shù)據(jù)包傳入。SDK端嵌入在控制程序中,監(jiān)聽另一個本地端口,并發(fā)送Ping包通知Unity端已啟動,Unity端腳本收到Ping包后記錄發(fā)送者端口號用于后續(xù)通信,并開始以60 F/s,的速度將當(dāng)前球坐標(biāo)、板角度發(fā)送至SDK端。SDK端在需要時將希望設(shè)定的板角度發(fā)送給Unity端的腳本,對應(yīng)腳本通過調(diào)用Unity引擎的相關(guān)資源修改角度。

        圖6 跨進(jìn)程通信示意圖

        4 虛實結(jié)合的板球系統(tǒng)實驗教學(xué)設(shè)計

        4.1 實驗教學(xué)目標(biāo)

        結(jié)合實際教學(xué)情況,進(jìn)行虛實結(jié)合的板球系統(tǒng)實驗課程方案總體設(shè)計,并細(xì)化各部分內(nèi)容,形成一套完整的板球系統(tǒng)實驗教學(xué)體系。教學(xué)方案分為實驗準(zhǔn)備工作、虛擬仿真實驗和實物調(diào)試考核3個階段,具體內(nèi)容如圖7所示。

        圖7 板球系統(tǒng)實驗教學(xué)方案

        通過實驗課程設(shè)計,實現(xiàn)如下教學(xué)目標(biāo):① 鞏固控制系統(tǒng)理論知識;② 掌握C#語言編程方法;③ 通過運用仿真軟件掌握板球機構(gòu)控制原理與控制算法;④ 熟練OpenCV基本操作,掌握OpenCV的圖像處理方法、特征提取與描述;⑤ 在板球?qū)嵨锎罱ㄖ绣憻拰W(xué)生實操能力。

        4.2 實驗準(zhǔn)備工作

        在進(jìn)行板球系統(tǒng)實驗教學(xué)前,教師在控制原理課程中完成相關(guān)理論知識、控制算法、板球機構(gòu)及原理、仿真軟件操作流程等理論講授工作,并準(zhǔn)備方形板、小球、OV攝像頭、步進(jìn)電動機等實驗器材。其中,方形板上均勻分布9個圓形區(qū)域,從左上角起按順序編為1~9號區(qū)域[11]。

        4.3 虛擬仿真實驗

        學(xué)生下載Unity3D軟件,根據(jù)教師提供的資料包運行板球系統(tǒng)虛擬仿真平臺的程序代碼,熟悉仿真平臺的操作流程,調(diào)試并修改代碼以實現(xiàn)球位選擇、板角傾斜、球的靜止與運動等相關(guān)操作。教師根據(jù)學(xué)生的實際情況,布置板球平衡仿真實驗的基本要求與高階要求(見表2)。

        表2 仿真實驗要求

        在調(diào)試的過程中,學(xué)生可以運用相關(guān)算法(如PID算法、模糊控制等)實現(xiàn)小球的運動和穩(wěn)定控制。仿真平臺可以為學(xué)生提供球坐標(biāo)、方形板旋轉(zhuǎn)角度和x、y軸方向的誤差等信息,在學(xué)生實驗中統(tǒng)計的小球多個位置信息如表3所示。此外,學(xué)生還可以實時觀測小球的運動情況,圖8所示為仿真過程中球接觸碰撞箱觸發(fā)相應(yīng)事件時,標(biāo)記點邊緣會變?yōu)辄S色。

        表3 小球位置信息

        在仿真實驗過程中,學(xué)生還可以理解并改進(jìn)控制算法,為控制算法在實物調(diào)試中的應(yīng)用打下基礎(chǔ)。例如,加入一個新的偏差值定義public float Err_last_last,可以使球更快速穩(wěn)定地到達(dá)目標(biāo)點,效果如圖9所示。改進(jìn)后算法小球在4次振蕩后約4.3 s到達(dá)目標(biāo)點,改進(jìn)前算法小球在多次振蕩后仍處于發(fā)散狀態(tài)。

        圖8 板球系統(tǒng)仿真實驗過程

        圖9 算法改進(jìn)效果圖

        4.4 實物調(diào)試考核

        仿真實驗后,學(xué)生分組進(jìn)行實物實操考核。實物實操分為板球結(jié)構(gòu)搭建、OpenCV球識別和板球運動控制3部分,其中球位的識別與確定是實現(xiàn)板球平衡的關(guān)鍵。主要步驟為:

        (1) RGB轉(zhuǎn)灰度。多通道轉(zhuǎn)單通道,取各通道值的平均值作為該像素單通道的值[12]。

        (2) 閾值二值化?;叶葓D轉(zhuǎn)二值圖,設(shè)定合適閾值,大于閾值的記作1,否則記作0。

        (3) 邊緣查找。二值圖轉(zhuǎn)輪廓點集,獲取一個二維數(shù)組,其中第一維代表不相連的路徑,第二維代表路徑中的點[13]。

        (4) 圓形擬合。對4個角定位點進(jìn)行查找,求出形狀輪廓的非旋轉(zhuǎn)最小外切矩形,以其長寬平均值的1/2作為圓的半徑,掃描形狀輪廓上的點,判斷偏離擬合圓的程度,以此計算一個圖形是圓形的概率。該最小非旋轉(zhuǎn)外切矩形的中心即為擬合圓的圓心。

        (5) 計算。通過線性代數(shù)計算出一個正好可以同時將4個角定位點移動到4個參考位置的矩陣。

        (6) RGB圖變形。使用變形矩陣對原RGB圖進(jìn)行變形,即對圖像矩陣每個坐標(biāo)進(jìn)行處理[14]。

        (7) RGB圖二值化。對變形后的RGB圖進(jìn)行二值化[15],為RGB 3個通道各自設(shè)定范圍,在范圍內(nèi)的像素記為1,否則記為0,通過選擇合適的范圍,視野內(nèi)將只有識別目標(biāo)1個亮斑。

        (8) 小球識別。獲取畫面中亮斑的坐標(biāo),計算亮斑的可旋轉(zhuǎn)最小外切矩形,其中心坐標(biāo)記為球坐標(biāo)[16]。最終效果如圖10所示。

        (a) 小球識別與標(biāo)記效果

        小球識別步驟完成后,學(xué)生可將仿真實驗中調(diào)試的控制算法應(yīng)用于實物驗證。區(qū)別于仿真實驗,在板球控制算法實際驗證過程中,會遇到算法適應(yīng)性問題。例如,仿真實驗時板傾斜角度可在短時間內(nèi)發(fā)生較大變化,而在現(xiàn)實中步進(jìn)電動機是無法實現(xiàn)的,且板傾斜角度過大會導(dǎo)致球因慣性滾出方形板。因此,學(xué)生可以在程序中加入板傾斜角度限制代碼,防止板傾斜角度過大的現(xiàn)象發(fā)生。核心代碼如下:

        Angle=kp*Err+ki*Integral+kd*(Err-Err_last);

        If(Angle>10)

        Angle=10f;

        if(Angle<-10)

        Angle=-10f;

        Err_last=Err;

        Err_last_last=Err_last;

        5 結(jié) 語

        本文以控制理論實驗課程為研究對象,采用虛擬仿真技術(shù)與板球?qū)嶒炂脚_相結(jié)合的方法,在Unity仿真系統(tǒng)中展現(xiàn)板球系統(tǒng)的結(jié)構(gòu)、原理和操作,并進(jìn)行虛實結(jié)合的實驗建設(shè)與教學(xué)研究。學(xué)生在實驗過程中不僅能掌握平衡板球控制原理,理解書本學(xué)習(xí)的控制算法,還可以了解機器視覺等前沿技術(shù),并熟練掌握C#、python等程序語言的編寫,實現(xiàn)相關(guān)理論知識的傳遞、內(nèi)化、鞏固與拓展,從而彌補傳統(tǒng)仿真軟件與教學(xué)模式的缺陷和不足,調(diào)動學(xué)生參與課程學(xué)習(xí)的積極性和主動性,對控制原理課程建設(shè)與教學(xué)改革具有一定的促進(jìn)作用。

        猜你喜歡
        板球方形控制算法
        關(guān)于我國板球項目后備人才培養(yǎng)體系建立的初步研究
        灌籃(2022年4期)2022-06-17 08:56:38
        方形料倉堵料解決方法
        捕捉方形泡泡
        方形夾具在線切割切槽的應(yīng)用
        哈爾濱軸承(2021年4期)2021-03-08 01:00:48
        Quora:What Is the Saddest Truth about Life
        基于ARM+FPGA的模塊化同步控制算法研究
        變方形
        板球運動在普通高校的發(fā)展探究
        一種優(yōu)化的基于ARM Cortex-M3電池組均衡控制算法應(yīng)用
        一種非圓旋轉(zhuǎn)工件支撐裝置控制算法
        久久少妇呻吟视频久久久| 毛片大全真人在线| 男女野外做爰电影免费| 国产亚洲美女精品久久| 亚洲一区二区三区av无| 亚洲av中文无码乱人伦在线观看| 久久综合狠狠色综合伊人| 最新国产三级| 天堂视频一区二区免费在线观看| 两人前一后地插着她丰满| 天堂中文官网在线| 真人男女做爰无遮挡免费视频| 亚洲一区精品中文字幕| 国产日产亚洲系列首页| 国产成人精品亚洲日本在线观看| 久久久www成人免费无遮挡大片 | 亚洲国产精品久久久婷婷| 国产后入清纯学生妹| 亚洲爱婷婷色婷婷五月| 亚洲免费毛片网| 亚洲视频专区一区二区三区| 一边做一边喷17p亚洲乱妇50p| 91麻豆国产香蕉久久精品 | 国产伦奸在线播放免费| 国产爆乳无码一区二区麻豆| 亚洲色欲久久久久综合网| 国产精品久久久久免费看| 精品国产一区二区三区a| 性色欲情网站| 99久久精品免费看国产情侣| 国产av一区网址大全| 男女真人后进式猛烈视频网站| 亚洲精品国偷拍自产在线麻豆| 无码精品色午夜| 亚洲天堂av在线观看免费| 国产精品无码一区二区三区电影| 亚洲精品自产拍在线观看| av永久天堂一区二区三区蜜桃| 日本视频一区二区三区一| 国产在线一区二区三区av| 国产目拍亚洲精品一区二区|