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

        ?

        基于機(jī)器視覺(jué)的人機(jī)象棋平面控制系統(tǒng)

        2021-06-04 02:21:02朱晨曦高軍偉房國(guó)棟孔德帥
        制造業(yè)自動(dòng)化 2021年5期
        關(guān)鍵詞:機(jī)械

        朱晨曦,高軍偉,房國(guó)棟,孔德帥

        (青島大學(xué) 自動(dòng)化學(xué)院,青島 266071)

        0 引言

        作為娛樂(lè)機(jī)器人的一個(gè)分支,人機(jī)象棋正逐漸成為人們研究的熱點(diǎn)。早期,人們通過(guò)設(shè)計(jì)和制作電子棋盤傳感器的方式定位和識(shí)別人機(jī)象棋棋子,但制作電子棋盤的過(guò)程繁瑣;伴隨機(jī)器視覺(jué)的發(fā)展,圖像處理相關(guān)算法被廣泛應(yīng)用,人機(jī)象棋在視覺(jué)定位和識(shí)別方面正深入研究。

        象棋定位方面,傳統(tǒng)字符[1]的定位方法需要不斷調(diào)整每個(gè)閾值,過(guò)程繁瑣。文獻(xiàn)[2]使用依據(jù)圓檢測(cè)和棋子修正的二次定位方法,存在流程運(yùn)算時(shí)間和個(gè)別字符識(shí)別準(zhǔn)確度的問(wèn)題;象棋識(shí)別方面,關(guān)于年輪統(tǒng)計(jì)[3]的識(shí)別方法雖可避免文字任意性,但特征值與字體有關(guān),王殿君等[4]提出采用BP神經(jīng)網(wǎng)絡(luò)對(duì)棋子進(jìn)行識(shí)別,但算法過(guò)程存在局部極值和擬合現(xiàn)象,收斂速度慢,出現(xiàn)新加樣本需對(duì)整體重新訓(xùn)練。文獻(xiàn)[5]提出的使用文字連通數(shù)與孔數(shù)的方法,在非理想情況下進(jìn)行字符識(shí)別,受實(shí)際光線等因素影響較大。

        故針對(duì)以上問(wèn)題,本文以三自由度機(jī)械臂為例,以人機(jī)象棋平面博弈為任務(wù),通過(guò)剪切法和對(duì)數(shù)極坐標(biāo)&傅里葉變換的模板匹配法定位與識(shí)別棋子,后續(xù)調(diào)用博弈算法和蟻群算法,結(jié)合機(jī)械臂運(yùn)動(dòng)學(xué)的模型分析,給出了人機(jī)象棋平面博弈的實(shí)現(xiàn)方法。

        1 系統(tǒng)總體設(shè)計(jì)

        系統(tǒng)總體設(shè)計(jì)主要由棋子定位和識(shí)別、走法產(chǎn)生、路徑規(guī)劃、機(jī)械臂控制四部分組成。

        1)攝像頭捕捉棋盤圖像并傳進(jìn)計(jì)算機(jī),計(jì)算機(jī)使用象棋識(shí)別算法識(shí)別棋盤信息。

        2)結(jié)合圖像識(shí)別結(jié)果,通過(guò)調(diào)用博弈算法獲得棋局下一步走法。

        3)將走法賦給蟻群算法規(guī)劃走法間路徑并得出坐標(biāo)信息。

        4)根據(jù)坐標(biāo)信息,結(jié)合運(yùn)動(dòng)學(xué)逆解,Arduino控制機(jī)械臂實(shí)現(xiàn)棋子起落及平面移動(dòng),完成人機(jī)對(duì)弈,系統(tǒng)框圖如圖1所示。

        圖1 人機(jī)博弈系統(tǒng)框圖

        2 象棋類型定位和識(shí)別

        2.1 圖像預(yù)處理

        1)桶形畸變矯正 系統(tǒng)使用分辨率1280×1024的攝像頭捕捉圖像,因鏡頭使用凸透鏡,故需對(duì)圖像進(jìn)行桶形矯正,如圖2所示。

        圖2 桶形畸變矯正

        2)圖像區(qū)域裁剪

        對(duì)于定位問(wèn)題,由棋盤本身布局所決定,棋子僅會(huì)在90個(gè)固定交叉點(diǎn)位置起落,故攝像頭固定后,利用image viewer分別測(cè)出圖片90個(gè)交叉點(diǎn)坐標(biāo)值,再根據(jù)坐標(biāo)值依次將整張圖片裁剪成以各個(gè)交叉點(diǎn)為中心的90張小區(qū)域圖片,并對(duì)這些裁剪圖片進(jìn)行內(nèi)容識(shí)別即可。

        3)象棋有無(wú)與顏色判斷

        已知RGB顏色模型,轉(zhuǎn)換成HSV彩色空間后通過(guò)調(diào)整其分量閾值[6],可對(duì)交叉點(diǎn)區(qū)域內(nèi)的象棋有無(wú)與顏色進(jìn)行判斷。

        4)棋子提取及處理

        判斷90張小區(qū)域圖片中存在棋子后,通過(guò)中值濾波保存邊緣信息;通過(guò)灰度二值化和hough變換圓檢測(cè)法提取圖片中棋子,通過(guò)腐蝕膨脹使棋子平滑,并統(tǒng)一成50×50尺寸。如圖3所示。

        圖3 提取的棋圖

        2.2 棋子種類識(shí)別

        面對(duì)棋子在移動(dòng)時(shí)存在的旋轉(zhuǎn)變化量問(wèn)題,本系統(tǒng)使用對(duì)數(shù)極坐標(biāo)&傅里葉的模板匹配法[7]識(shí)別旋轉(zhuǎn)量棋子。將棋子圖像的旋轉(zhuǎn)變化經(jīng)對(duì)數(shù)極坐標(biāo)變換轉(zhuǎn)化為平移變化,再結(jié)合Fourier平移變換的模值不變性,實(shí)圖像的旋轉(zhuǎn)不變性。

        2.2.1 對(duì)數(shù)極坐標(biāo)變換

        在圖像處理中,對(duì)數(shù)極坐標(biāo)變換是將圖像從笛卡爾坐標(biāo)系(x,y)經(jīng)極坐標(biāo)系(ρ,θ)過(guò)渡后,轉(zhuǎn)換至對(duì)數(shù)坐標(biāo)系(u,v)[8],轉(zhuǎn)換公式為:

        式中,(xc,yc)為坐標(biāo)變換中心,k1,k2為如需放大圖像所引入的細(xì)化常量。圖4為笛卡爾-對(duì)數(shù)極坐標(biāo)對(duì)應(yīng)示意圖。

        圖4 笛卡爾-對(duì)數(shù)極坐標(biāo)對(duì)應(yīng)示意圖

        根據(jù)式(1),當(dāng)原圖像旋轉(zhuǎn)βrad時(shí),有:

        式中,v和v1表示對(duì)數(shù)極坐標(biāo)中圖像轉(zhuǎn)動(dòng)前后對(duì)應(yīng)的橫坐標(biāo)。由此可知,笛卡爾坐標(biāo)系中旋轉(zhuǎn)變化可轉(zhuǎn)化成對(duì)數(shù)極坐標(biāo)系中平移變化。圖5為棋子“車”在不同旋轉(zhuǎn)角度下的平移變化。

        圖5 圖像旋轉(zhuǎn)及對(duì)數(shù)極坐標(biāo)變換

        2.2.2 傅立葉變換

        在時(shí)域空間中,傅里葉變換的模值具有平移不變特性。在圖像處理時(shí),圖像給出的信號(hào)為二維離散型,所以采用二維離散傅里葉變換[9]。則尺寸M×N的圖像函數(shù)f(x,y)對(duì)應(yīng)二維離散傅里葉變換f(u,v)為:

        得到平移前后的模值為:

        由此模值知,其時(shí)域平移不變的特性,故圖像通過(guò)式(1)~式(5)實(shí)現(xiàn)自身旋轉(zhuǎn)不變性。

        2.3 算法檢驗(yàn)與結(jié)果

        為檢驗(yàn)算法效果,本文利用11張各類型的棋子圖片進(jìn)行測(cè)試,分別對(duì)這些圖片做出一定的角度轉(zhuǎn)動(dòng),并計(jì)算轉(zhuǎn)動(dòng)前后兩張圖像間相關(guān)系數(shù)。計(jì)算如表1所示。

        表1 棋子轉(zhuǎn)動(dòng)前后兩圖像間相關(guān)系數(shù)

        表中數(shù)據(jù)知,部分角度如90°270°時(shí)相關(guān)系數(shù)良好,部分角度如45°、135°時(shí)相關(guān)系數(shù)稍低點(diǎn),其主要是受亮度、位置等實(shí)際因素的影響。

        為建立模板庫(kù),對(duì)11種棋子類型的每種圖片(對(duì)于顏色不同但變換相同的棋子,黑車和紅車,黑炮和紅炮,黑馬和紅馬則歸為一類),每張依次選擇0°、10°、20°、30°、40°、50°、60°、70°、80°各9個(gè)不同旋轉(zhuǎn)狀態(tài)的圖片,共 99張圖片作為模板儲(chǔ)存和調(diào)用。

        綜上過(guò)程,本系統(tǒng)棋子識(shí)別流程為:

        1)建立模板庫(kù)。

        2)判斷裁剪的90張小圖片中有無(wú)棋子及顏色,再經(jīng)灰度、二值化等步驟提取棋子。

        3)將待識(shí)棋子圖像和模板庫(kù)里的圖像作對(duì)算法變換并得到相關(guān)系數(shù),最后將其匹配至模板庫(kù)中相關(guān)系數(shù)最大的一類。匹配結(jié)果如空白、黑將、黑車等分別用0、1、2等數(shù)字表示。

        4)以10×9的矩陣形式呈現(xiàn)出所識(shí)別的90張小圖片數(shù)字結(jié)果,以利于后續(xù)博弈及蟻群算法對(duì)識(shí)別結(jié)果的調(diào)用。

        5)下次識(shí)別重復(fù)步驟2)~4)。

        為測(cè)試識(shí)別方法的有效性,本文選取100張棋子位置、旋轉(zhuǎn)方向皆不同的棋盤圖像在MATLAB環(huán)境下運(yùn)用,經(jīng)檢測(cè),識(shí)別后正確率約為98%。

        每當(dāng)棋子完成移動(dòng),棋盤出現(xiàn)變化的位置,有且僅有兩處,所以不需對(duì)全部90張區(qū)域小圖片進(jìn)行重復(fù)識(shí)別,只需對(duì)位置發(fā)生變化的小圖片進(jìn)行識(shí)別。故系統(tǒng)選用差分法[10]對(duì)每張小圖片信息是否發(fā)生變化進(jìn)行判斷,之后對(duì)信息變化的小

        圖片按序識(shí)別其內(nèi)容,并以新的10×9數(shù)字矩陣顯示結(jié)果,可有效提高系統(tǒng)識(shí)別速度與可靠性,圖6為棋子識(shí)別結(jié)果。

        圖6 棋子識(shí)別結(jié)果

        3 中國(guó)象棋人機(jī)博弈算法

        博弈算法的作用是列出棋局當(dāng)前所有可能走法,并在可能走法中搜索得出最優(yōu)走法,最后用四個(gè)數(shù)字,如1234的形式(1行2列移至3行4列)將走法表示出來(lái),其共有四個(gè)核心部分。

        棋盤表示部分,通過(guò)使用[10]×[9]的二維數(shù)組方式來(lái)存取棋盤信息,在棋盤上每一個(gè)交點(diǎn)[11]都對(duì)應(yīng)數(shù)組中一個(gè)字節(jié),所呈現(xiàn)的數(shù)值則代表在此交點(diǎn)有無(wú)棋子或種類。

        走法部分列出棋局當(dāng)前所有可能走法,由估值部分對(duì)局面當(dāng)前情況進(jìn)行優(yōu)劣評(píng)估,后經(jīng)搜索部分搜索出最佳走法。搜索部分選用Alpha_Bate剪枝搜索算法,具有減少不必要節(jié)點(diǎn)搜索的優(yōu)勢(shì)。

        c++為人機(jī)博弈算法編程語(yǔ)言,Visual Studio 2017為其開(kāi)發(fā)平臺(tái),先在開(kāi)發(fā)平臺(tái)中調(diào)試好該博弈算法,然后再通過(guò)MATLAB軟件的mex功能使MATLAB能對(duì)其進(jìn)行讀取。將視覺(jué)識(shí)別所得的數(shù)字矩陣傳入象棋人機(jī)博弈算法,通過(guò)節(jié)點(diǎn)搜索,擇優(yōu)得到棋局下一步走法,之后調(diào)用蟻群算法,對(duì)棋子走法間平面移動(dòng)路徑進(jìn)行規(guī)劃。

        4 路徑規(guī)劃

        棋子存在兩種移動(dòng),一種按走法移動(dòng),另一種被吃掉后放在指定位置的移動(dòng)。蟻群算法的作用是對(duì)棋子平面移動(dòng)路徑進(jìn)行避障規(guī)劃,避免棋子在平面移動(dòng)中受其他棋子的阻礙。

        4.1 路徑產(chǎn)生

        系統(tǒng)對(duì)博弈算法當(dāng)前調(diào)用的10×9棋盤數(shù)字矩陣進(jìn)行實(shí)時(shí)擴(kuò)充并柵格化,有棋子位置置1,其余位置置0,最終得到一個(gè)20×20的01矩陣。

        在棋盤柵格中,粒子和障礙物面積應(yīng)都按照象棋半徑大小膨化,即將粒子視為一個(gè)質(zhì)點(diǎn)時(shí),粒子只能沿柵格水平或豎直方向移動(dòng),即滿足:

        式中,i為質(zhì)點(diǎn)當(dāng)前柵格,j為質(zhì)點(diǎn)下一柵格,a為柵格邊長(zhǎng),map(j)為非障礙柵格,dij為柵格i和j間距離。

        棋局柵格化后,經(jīng)蟻群算法得出的轉(zhuǎn)移概率為相鄰柵格中心節(jié)點(diǎn)間的選擇概率[12],在t時(shí)刻,螞蟻k從xi轉(zhuǎn)移至xj的概率公式如下:

        式中,α為信息素濃度相對(duì)重要程度,τij(t)為信息素濃度,β為啟發(fā)性因子相對(duì)重要程度ηij(t)為實(shí)際距離倒數(shù)。圖7為棋子被吃掉后從當(dāng)前位置移至棋局外指定位置的路徑仿真圖。

        圖7 路徑圖

        將博弈算法所得走法起止點(diǎn)換算成柵格號(hào),賦給蟻群算法后得到一條由起止柵格編號(hào)及無(wú)障礙柵格編號(hào)結(jié)合的路徑,可用一維數(shù)組表示,并保存在文本中,以備坐標(biāo)轉(zhuǎn)換。

        4.2 坐標(biāo)定位及轉(zhuǎn)換

        柵格坐標(biāo)系中坐標(biāo),并不能直接作為機(jī)械臂起落棋子的定位坐標(biāo),須將其從柵格坐標(biāo)系{B}轉(zhuǎn)換到機(jī)械臂基底坐標(biāo)系{A}下表示。

        如圖8所示,{B}為柵格坐標(biāo)系,{A}為基坐標(biāo)系。xB、yB表示棋子在柵格坐標(biāo)系OB下的位置,xA、yA表示棋子在基坐標(biāo)系OA下的位置。

        圖8 坐標(biāo)系

        棋子位置及移動(dòng)路徑皆對(duì)應(yīng)一個(gè)小柵格編號(hào),每個(gè)小柵格號(hào)都可換算成直角坐標(biāo)下小柵格中心位置[13],換算公式如下:

        式中,a為小柵格邊長(zhǎng),i為柵格編號(hào),為每行柵格個(gè)數(shù),mod()為取余,ceil()為正方向舍入,(ix,iy)為柵格中心直角坐標(biāo)。

        根據(jù)式(8)可得到棋子在柵格坐標(biāo)系中位置,但要作為機(jī)械臂末端最終用來(lái)抓取的定位坐標(biāo),還需要將其轉(zhuǎn)換至基坐標(biāo)系{A}下表示。對(duì)本系統(tǒng)三自由度機(jī)械臂而言,末端執(zhí)行器只需要描述其位置,通過(guò)式(9)進(jìn)行旋轉(zhuǎn)變換和平移變換二者的相加,可得點(diǎn)p相對(duì)于基坐標(biāo){A}的最終定位坐標(biāo)Ap。

        將蟻群算法得到的路徑柵格號(hào)代入式(8)、式(9)可得棋子在基坐標(biāo){A}下的最終定位坐標(biāo)。將其橫縱坐標(biāo)值分別放入px,py向量中,機(jī)械臂在抓取棋子時(shí),需確定棋子在三維空間下的坐標(biāo)[14],故令設(shè)一組定值向量pz,表示棋子在空間中的高度。

        5 機(jī)械臂控制

        三自由度機(jī)械臂結(jié)構(gòu),如圖9所示,腰部作水平方向旋轉(zhuǎn)運(yùn)動(dòng),大臂和小臂作垂直于基座水平旋轉(zhuǎn)平面的俯仰運(yùn)動(dòng)。小臂尾部裝配一個(gè)電磁鐵,通過(guò)控制其電磁得失來(lái)控制對(duì)棋子的取置。圖10為本系統(tǒng)實(shí)物圖。

        圖9 機(jī)械臂結(jié)構(gòu)圖

        圖10 系統(tǒng)實(shí)物圖

        要想使機(jī)械臂末端準(zhǔn)確的運(yùn)動(dòng)到棋子上方,需要控制好每個(gè)機(jī)械臂關(guān)節(jié)轉(zhuǎn)動(dòng)的角度。為此,系統(tǒng)需要通過(guò)已解算得的定位坐標(biāo)代入機(jī)械臂逆運(yùn)算,求取每個(gè)機(jī)械連桿的轉(zhuǎn)動(dòng)角度。對(duì)本系統(tǒng)的機(jī)械臂建立如圖11所示的連桿坐標(biāo)系,然后結(jié)合表2中連桿參數(shù),通過(guò)D-H法[15]建立三軸機(jī)械臂運(yùn)動(dòng)學(xué)模型。

        圖11 機(jī)械臂連桿坐標(biāo)系

        根據(jù)表2和式(10)所示的相鄰兩連桿坐標(biāo)系間變換法則求取機(jī)械臂正解,可到機(jī)械臂末端與基坐標(biāo)系{A}之間的變換矩陣,如式(11)所示。

        表2 各關(guān)節(jié)D-H參數(shù)表

        式中,nx、ny、nz,ox、oy、oz,ax、ay、az分別為機(jī)械臂末端坐標(biāo)系x、y、z軸在A坐標(biāo)系中的方向矢量,px、py、pz表示機(jī)械臂末端位置在基坐標(biāo)系中的坐標(biāo)。

        然后求取機(jī)械臂逆解,用未知的連桿逆變換同時(shí)左乘式(11)兩端,把關(guān)節(jié)變量分離[16]出來(lái),從而得到即:

        令方程兩邊元素(4)、(5)、(6)分別對(duì)應(yīng)相等得:

        此時(shí),只需要知道機(jī)械臂末端即將運(yùn)行到目標(biāo)位置的情況[17],即知道工件的定位坐標(biāo)px、py、pz,便可得到每個(gè)機(jī)械連桿的轉(zhuǎn)動(dòng)角度。

        6 系統(tǒng)測(cè)試

        本系統(tǒng)機(jī)械臂核心處理器采用Arduino控制板及Arduino IDE編程環(huán)境,機(jī)械臂為三自由度機(jī)械臂,控制機(jī)械臂運(yùn)動(dòng)的步進(jìn)電機(jī)通過(guò)A4988驅(qū)動(dòng)模塊控制,Arduino與A4988之間為脈沖寬度調(diào)制。為保證精度選用1/16步進(jìn)模式,搭配自身10:1減速比,步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一圈需32000個(gè)步進(jìn)脈沖,即每個(gè)脈沖驅(qū)動(dòng)電機(jī)轉(zhuǎn)動(dòng)0.01125°。攝像頭捕捉棋盤圖像后,經(jīng)計(jì)算機(jī)處理得到棋子及路徑坐標(biāo)值,將其代入運(yùn)動(dòng)學(xué)逆解[14]得出轉(zhuǎn)動(dòng)角度,根據(jù)公式steps=θ/0.01125得到每個(gè)機(jī)械臂轉(zhuǎn)動(dòng)步進(jìn)值,之后將步進(jìn)值經(jīng)串口通信發(fā)送給下位單片機(jī),下位單片機(jī)得到上位機(jī)的控制命令后,通過(guò)控制每個(gè)機(jī)械臂的步進(jìn)電機(jī)實(shí)現(xiàn)機(jī)械臂平面運(yùn)動(dòng)。

        最后對(duì)系統(tǒng)進(jìn)行整體測(cè)試。馬的實(shí)驗(yàn)測(cè)試數(shù)據(jù)如表3所示,圖11為對(duì)弈中馬的執(zhí)行過(guò)程。

        圖11 對(duì)弈棋子執(zhí)行過(guò)程

        表3 實(shí)驗(yàn)測(cè)試數(shù)據(jù)

        7 結(jié)語(yǔ)

        本文設(shè)計(jì)基于機(jī)器視覺(jué)的人機(jī)象棋平面控制系統(tǒng),棋子正確識(shí)別率約為98%,得出棋子當(dāng)前走法并規(guī)劃走法間路徑后,對(duì)棋子和路徑所在坐標(biāo)的定位誤差約3.5mm,方向誤差小于3°。系統(tǒng)各模塊聯(lián)機(jī)后進(jìn)行人機(jī)博弈,各模塊間穩(wěn)定配合,能對(duì)棋盤上棋子在平面移動(dòng)中實(shí)現(xiàn)良好的人機(jī)對(duì)弈,提高了棋子識(shí)別率,減小機(jī)械臂作業(yè)空間,基本達(dá)到其設(shè)計(jì)要求。

        猜你喜歡
        機(jī)械
        《機(jī)械工程師》征訂啟事
        太空里的機(jī)械臂
        機(jī)械革命Code01
        調(diào)試機(jī)械臂
        ikbc R300機(jī)械鍵盤
        對(duì)工程建設(shè)中的機(jī)械自動(dòng)化控制技術(shù)探討
        基于機(jī)械臂的傳送系統(tǒng)
        電子制作(2018年14期)2018-08-21 01:38:14
        簡(jiǎn)單機(jī)械
        土石方機(jī)械的春天已經(jīng)來(lái)了,路面機(jī)械的還會(huì)遠(yuǎn)嗎?
        機(jī)械班長(zhǎng)
        激情婷婷六月| 日产精品99久久久久久| 亚洲乱色伦图片区小说| 性一乱一搞一交一伦一性| 国产成人精品麻豆| 国产一区二三区中文字幕| 欧美最猛性xxxx| 亚洲av无码av制服另类专区| 国产亚洲一本大道中文在线| 按摩女内射少妇一二三区| 粉嫩极品国产在线观看免费一区| 久久久亚洲av成人网站| 精品无码国产污污污免费| 蜜臀av一区二区三区人妻在线| 久久亚洲春色中文字幕久久| 亚洲日韩欧美一区、二区| а中文在线天堂| 国产一级r片内射免费视频| 91色区在线免费观看国产| 日韩精品一区二区午夜成人版| 人妻丰满av∨中文久久不卡| 久久精品国产一区二区涩涩| 国内自拍速发福利免费在线观看| 成人国产精品一区二区视频| 中文字幕国产欧美| 国产精品一区又黄又粗又猛又爽| 国产亚洲精品综合一区| 国产精品无码a∨精品影院| 亚洲不卡电影| 国产亚洲中文字幕久久网| 乱中年女人伦av三区| 亚洲欧美国产日韩天堂在线视 | 国产一区二区视频在线免费观看 | 亚洲一区二区三区免费av在线| 国产成人自拍视频播放| 日韩丰满少妇无码内射| 亚洲最新版无码AV| 亚洲高清激情一区二区三区| 浪货趴办公桌~h揉秘书电影| 久久人人97超碰超国产| 国产亚洲精品成人av在线|