程瀟雅 李 祿 李 萱 白雪雪 王指南
(西安科技大學(xué)自動(dòng)化 陜西西安 710600)
1.系統(tǒng)框圖
圖1-1 系統(tǒng)框圖
基于Kmeans算法的自動(dòng)打靶系統(tǒng)主要由攝像頭OV7725、STM32F407ZGT6、舵機(jī)、激光筆構(gòu)成。該系統(tǒng)建立直角坐標(biāo)系,舵機(jī)分為X軸和Y軸方向。攝像頭和激光筆安裝在舵機(jī)上,兩者同軸,皆隨舵機(jī)的轉(zhuǎn)動(dòng)而轉(zhuǎn)動(dòng)。采用激光筆紅點(diǎn)坐標(biāo)固定、靶面坐標(biāo)活動(dòng)的方式,經(jīng)攝像頭圖像采集、控制器數(shù)據(jù)處理后,得到目標(biāo)和靶面的坐標(biāo)差,從而控制激光筆打向目標(biāo)中心點(diǎn)。[1]
采用180度旋轉(zhuǎn)舵機(jī)控制導(dǎo)軌的轉(zhuǎn)動(dòng)。舵機(jī)為隨動(dòng)系統(tǒng),轉(zhuǎn)動(dòng)時(shí)可以外接較大的負(fù)載,輸出扭矩大,而且抗抖動(dòng)性很好。180度旋轉(zhuǎn)舵機(jī)內(nèi)置驅(qū)動(dòng)電路,用單片機(jī)輸出的信號(hào)可以直接驅(qū)動(dòng),接線方便,可以用PWM波占空比直接控制舵機(jī)旋轉(zhuǎn)角度,達(dá)到打靶角度控制目的。[2]
采用Kmeans聚類算法,理解容易,數(shù)據(jù)處理簡單。去噪效果好,可有效剔除離散式坐標(biāo),只取有效聚集坐標(biāo)。處理大數(shù)據(jù)集時(shí),可保證較好的伸縮性和高效性。
1.打靶控制系統(tǒng)分析
自動(dòng)打靶系統(tǒng)是一個(gè)多變量、非線性控制的控制系統(tǒng)。在顏色識(shí)別中,攝像頭噪聲會(huì)導(dǎo)致顏色誤判,普通加權(quán)平均得到的坐標(biāo)受噪聲影響和實(shí)際坐標(biāo)誤差較大,去噪成為顏色識(shí)別關(guān)鍵點(diǎn)之一。攝像頭將像素點(diǎn)RGB值傳遞給控制器轉(zhuǎn)化為HSL格式后,采用Kmeans聚類算法,可消除噪聲或離散點(diǎn)的干擾,篩選并聚集靶子坐標(biāo),精確地確定靶子的中心坐標(biāo)。具體算法步驟如下:
(1)隨機(jī)選取訓(xùn)練數(shù)據(jù)中的K個(gè)中心點(diǎn)。
(2)當(dāng)k值選定后,隨機(jī)計(jì)算n次,取得到最小函數(shù)值的k作為最終聚類結(jié)果,避免隨機(jī)引起的局部最優(yōu)解。
(3)繪制出k--顏色坐標(biāo)閃點(diǎn)圖,看到有明顯拐點(diǎn)(如下)的地方,設(shè)為k值,可以結(jié)合輪廓系數(shù)。
(4)重復(fù)2-3,直到這k個(gè)中線點(diǎn)不再變化(收斂了),或執(zhí)行了足夠多的迭代。由此得到靶子中心的坐標(biāo)。
而對(duì)于打靶控制系統(tǒng)來講,由于距離較遠(yuǎn),每一微小角度的改變,都會(huì)引起坐標(biāo)位置較大的改變,且呈非線性改變。所以在控制器設(shè)計(jì)中,引入PID反饋控制,使得控制能更加精確。
系統(tǒng)采用C語言編程實(shí)現(xiàn)各項(xiàng)功能。C語言本身帶有各種庫函數(shù),運(yùn)算能力較強(qiáng),本系統(tǒng)的軟件中算數(shù)運(yùn)算比較多,利用C語言編程可以體現(xiàn)出一定優(yōu)勢(shì)。程序是在Window10環(huán)境下采用Keil uVision5軟件編寫的,可實(shí)現(xiàn)對(duì)激光筆的精確控制,對(duì)傳感器輸入信號(hào)的處理等功能。
自動(dòng)打靶控制系統(tǒng)首先對(duì)靶面顏色識(shí)別,然后根據(jù)坐標(biāo)反饋信息,運(yùn)用PID算法得到PWM值(脈沖寬度調(diào)制),然后輸出PWM波驅(qū)動(dòng)舵機(jī)按照要求轉(zhuǎn)動(dòng)。
程序設(shè)計(jì)的思路是通過攝像頭組件對(duì)靶子坐標(biāo)進(jìn)行實(shí)時(shí)采集,把采集的兩種信息作為控制輸入,使用PID控制算法對(duì)各個(gè)控制參數(shù)進(jìn)行優(yōu)化處理,然后把以優(yōu)化的參數(shù)(PWM值)作為電機(jī)的控制輸入,使得激光筆實(shí)現(xiàn)自動(dòng)打靶功能。[3]
(1)硬件測(cè)試:分別對(duì)每個(gè)模塊做相應(yīng)的測(cè)試。
(2)軟件仿真測(cè)試:使用Keil MDK軟件進(jìn)行仿真。
(3)硬件軟件聯(lián)調(diào):對(duì)打靶控制系統(tǒng)的測(cè)試是在一個(gè)符合要求的環(huán)境中測(cè)試的,逐步按要求進(jìn)行測(cè)試。
在室溫條件下,測(cè)試所用儀器如下:
數(shù)字萬用表(MPD-3303);直流電源(UT39A);秒表;尺子。
在確定測(cè)試方案之后和測(cè)試儀器之后,得到了測(cè)試結(jié)果。系統(tǒng)分別按順序打向紅、綠、藍(lán)三個(gè)顏色的靶子,并對(duì)測(cè)試結(jié)果進(jìn)行數(shù)據(jù)分析:具體結(jié)果由一下分析所示:
表5-1
測(cè)試結(jié)果表明,基于Kmeans算法的自動(dòng)打靶系統(tǒng)準(zhǔn)確率高,去噪聲效果好、反應(yīng)速度快,能有效進(jìn)行顏色識(shí)別和顏色數(shù)據(jù)處理篩選,運(yùn)行性能穩(wěn)定。