毛麗民,盧振利,2,劉叔軍,彭偉偉,李 亮
(1.常熟理工學院,常熟 215500;2.阿威羅大學,阿威羅 3810-193)
五子棋對弈機器人移動平臺的研究
毛麗民1,盧振利1,2,劉叔軍1,彭偉偉1,李 亮1
(1.常熟理工學院,常熟 215500;2.阿威羅大學,阿威羅 3810-193)
以五子棋對弈機器人作為研究對象,提出了一種具有真實對弈環境的五子棋機器人的移動平臺。該移動平臺執行機構以STM32為核心,控制三維的移動,并配合電磁鐵完成自主取棋、移動、下棋等動作,同時五子棋機器人具備界面顯示、語音識別與提示、指示燈和蜂鳴器等豐富的人機交互功能,充分展示了設計的人性化。經過測試,所設計的三維移動平臺能快速、精準的實現定位,同時系統之間分工明確,相互配合,為五子棋的對弈,提供了很好的實現平臺。
五子棋;機器人;移動平臺
本文將傳統五子棋游戲與現代機器人技術相結合,研制一種具有人機對弈功能的五子棋機器人。該機器人的研制,不僅可以解決孤單老年的娛樂問題,還可以吸引青少年群體對機器人技術的關注,從而激發他們對機器人技術的興趣[1]。
目前國內外對于五子棋對弈機器人的研究很少,很大原因在于五子棋對弈機器人涉及知識多,算法復雜[2],制作難度大,很多研究人員都著力于研究基于計算機或手機的博弈軟件,然而這些軟件并不具備對弈的真實環境,長時間對著計算機、手機會讓人產生視覺疲勞,甚至產生厭倦感[3]。
近年一些企業也陸續推出一些五子棋人機對弈機器人,但基本是基于工業機械臂設計,其成本高、體積大[4]。在上海舉辦的2014CIROS中國國際機器人展中,新時達公司研制的“五子棋機器”成為全場最受歡迎的機器人,受到了廣大觀眾的歡迎[5]。

圖1 2014CIROS上五子棋機器人
2.1 五子棋的棋盤
本文采用自制的五子棋棋盤,棋盤由橫縱各15條等距離、垂直交叉的平行線構成,共225個交叉點,作為對弈的落子點[6]。棋盤的底色選用黃色,格線為黑色,整個棋盤為標準的正方形,兩個交叉點的距離略大于棋子的直徑。
盤上的縱線從右到左用英文大寫字母A~O順序標記,橫線從上到下用阿拉伯數字1~15順序標記,如圖2所示。由于每條縱線都對應著一個英文大寫字母,每條橫線也都對應著一個阿拉伯數字,本論文對棋盤上的每一個交叉點用英文大寫字母和阿拉伯數字的組合來表示,英文字母在前,阿拉伯數字在后。如正中間的天元星為“H8”,不可寫為“8H”。

圖2 棋盤示意圖
2.2 機械結構的設計
五子棋對弈機器人機械機構主要是三維移動平臺構成。圖3為三維框架結構的俯視圖,圖4為三維框架結構的側視圖。

圖3 三維框架俯視圖

圖4 三維框架側視圖
底板為50cm×70cm的矩形,底板的4個角分別用1.5cm厚的木質支架墊高,支架上安裝4個軸承,軸承用來固定Y軸方向的兩條平行的圓柱形縱向導軌,導軌上分別有滑塊,兩個滑塊上安有X軸方向的橫向導軌,橫向導軌的兩端分別連在縱向導軌外側的兩個同步帶上,每個同步帶分別通過兩個同步帶輪一端固定在支架上,另一端連接直流減速電機,當兩側的滑塊在直流減速電機的同步帶動下可以使搭載其上的橫向導軌在Y軸方向運動。橫向導軌上有一個滑塊,滑塊上安裝有步進伸縮電機,滑塊同樣可以在直流減速電機、同步帶和同步帶輪的帶動下使步進伸縮電機在X軸方向自由運動;步進伸縮電機上安裝有末端執行器,步進伸縮電機在驅動電路的控制下可以使末端執行器在Z軸方向上運動。
在棋盤靠機器人的一側,有棋子存放區域,以便機器人取子、下棋。在玩家一側有一按鈕,當玩家下棋后,通過按下按鈕表示結束。棋盤的正上方一米左右有一個USB攝像頭,攝像頭固定在專門的攝像頭支架上,通過對攝像頭支架的調節,可以改變攝像頭的高度和角度等位置坐標。攝像頭支架則通過支架座來固定。
直流電機裝有編碼器,通過X軸和Y軸方向上編碼器的位置反饋,末端執行器在XY平面范圍內精確移動。Z軸方向上的步進伸縮電機可以帶動末端執行器在Z軸方向運動,原始狀態下末端執行器在Z軸運動上限位置,取子時,先運動到靠近棋子上方,取子結束后再回到上限位置,防止移動的過程中末端執行器上的棋子與棋盤上其他棋子發生碰撞。
3.1 五子棋對弈機器人控制方案設計
五子棋對弈機器人體系結構如圖5所示。本文主要涉及五子棋移動平臺的控制,完成取子、移動、落子等動作,主要分為兩部分:一是完成取子、落子的末端執行器;二是搭載末端執行器,實現快速、精確定位的移動平臺。

圖5 五子棋對弈機器人的體系結構
五子棋對弈機器人控制結構,如圖6所示。本系統控制器采用STM32單片機,主要完成人機交互以及控制執行機構,控制三維平臺的移動方向和運行速度,準確實現移動平臺的定位,電磁鐵完成取棋子和放棋子的動作,通過語音實現人機對話,OLED實時顯示機器人參數,配合LED燈與蜂鳴器等完成提示功能,每下完一步棋,通過藍牙將各種參數與當前狀態將反饋給上位機。

圖6 五子棋對弈機器人控制結構
3.2 末端執行器的設計
末端執行器主要由電磁鐵及其控制電路組成,通過電磁鐵實現吸子和放子的動作。電磁鐵采用12V供電,控制電路使用5V供電。控制電路如圖7所示,當控制器給其高電平時,LED燈點亮,繼電器線圈得電,其動觸點和常開觸點吸合,電磁鐵得電。當控制器給其低電平時,LED燈熄滅,繼電器線圈失電,其動觸點和常閉觸點吸合,電磁鐵失電。

圖7 電磁鐵控制電路
本文棋子選用鐵質材料制作,大小如一角硬幣,重量適中,并選用直流吸盤式微型電磁鐵ELE-P30/22-10,額定電壓12V,采用高純度電工純鐵表面鍍鎳,斷電后無剩磁,吸力10kg。
3.3 電機驅動電路的設計
本文中使用直流減速電機作為三維框架平臺的動力裝置。在三維框架的X軸方向上使用一個直流減速電機,Y軸方向上使用兩個直流減速電機,分別帶動相應的同步帶工作,在Z軸方向上使用步進伸縮電機帶動末端執行器工作。
3.3.1 直流減速電機驅動電路的設計
在直流減速電機驅動電路中使用2片IR2104半橋驅動芯片組成一路全橋電路。全橋電路和邏輯電路相結合,能很好的控制直流電機的運行,驅動電路如圖8所示。

圖8 直流減速電機驅動電路
圖7中IN1與IN2為2個方向信號控制端,VB1與VB2為2個PWM信號控制端,分別接入IR2104芯片的輸入端。IR2104芯片的低位和高位為一對互補信號,避免同側的2個MOSFET同時導通的情況,保證電路的穩定運行。通過調節方向信號和PWM信號來控制電機的運行狀態。
3.3.2 步進伸縮電機驅動電路的設計
本文的伸縮電機為二相四線步進電機,驅動電路如圖9所示。L298芯片內部包含2個H橋的雙全橋式驅動器,可接收標準TTL邏輯電平信號。
圖9中8個二極管的作用:當L298內部的晶體管由導通變為截止時,電機上的電流會突變,使L298芯片擊穿。而接入二極管會給電機線圈提供續流通路,續流將倒灌回電源上。此時電源電壓反向加在電機上,迫使電流按一定的變化率減小,直至為零。

圖9 步進伸縮電機驅動電路
3.4 增量式編碼器電路設計
增量式編碼器電路由光電對管、電阻、施密特觸發反相器和碼盤組成。當電機尾部的碼盤通過光電傳感器,有遮擋的時候輸出高電平,無遮擋的時候輸出低電平。周期性輸出的高低電平經過施密特觸發反相器整形變為計數脈沖,再由微控制器采集,計算出電機的位移。編碼器電路如圖10所示。

圖10 編碼器電路
3.4 人機交互電路的設計
人機交互電路包括LED燈、蜂鳴器提示電路、語音接口電路和OLED顯示屏接口電路,如圖11所示。語音模塊連接微控制器的串口,OLED顯示屏連接微控制器的PE2~PE5接口。LED燈電路提示采用微控制器IO的低電平點亮,分別為紅燈和綠燈,當機器人下時紅燈亮,玩家下棋時綠燈亮。

(a)LED提示電路(b)蜂鳴器提示電路

(c)語音模塊接口電路(d)OLED顯示屏接口
圖11 人機交互電路
4.1 上位機界面
本文上位機采用LabVIEW軟件實現,軟件提供了各種控件,設計界面美觀且實用,上位機界面如圖12所示。

圖12 上位機界面截圖
4.2 電機控制的程序設計
本文五子棋對弈機器人使用3個直流減速電機,每一個直流減速電機需使用一路PWM信號控制。本文使用微控制器的定時器1輸出4路PWM調速信號,為減小直流減速電機的噪音,PWM波的頻率設置為10kHz。如圖13所示為PWM初始化流程圖。

圖13 PWM初始化流程圖
4.3 增量式編碼器的程序設計
本文使用12線的增量式編碼器構成電機的反饋電路,實現移動過程中的定位。該編碼器本身分辨率為1/12,將編碼器碼盤安裝在直流減速電機的尾部,直流減速電機的減速比為64:1,編碼器分辨率提高到1/768,滿足五子棋機器人的精度要求。
編碼器輸出的數字脈沖,經過控制器的計數器計數,再通過編碼器的分辨率和同步帶輪的直徑(D)計算出實際位移距離(L)。計算公式如下:

(1)
控制器使用外部時鐘源模式2計脈沖數,計數器在外部觸發ETR的每個上升沿計數。計數器使用外部觸發濾波,對ETRP信號的采樣頻率fSAMPLING=fDTS/32,濾波器帶寬N=8。外部時鐘模式2的控制時序如下。

圖14 外部時鐘模式2的時序圖
4.4 無線通訊的程序設計
上位機采用串行異步通信方式與控制器通訊,通過藍牙實現無線連接。本文采用數據包傳輸方式,發送方以5Hz的頻率循環發送數據包,直至收到應答信號為止,接收方接收數據,進行校驗,校驗成功后發送應答信號給發送方。發送和接收的流程如圖15所示。

圖15 數據通訊流程圖
4.4.1 數據包定義
數據包格式:

字頭參數1參數2參數3校驗和0XFF0XFEParameter1Parameter2Parameter3CheckSum
1) 字頭:連續發送2個字節 0XFF0XFE,表示數據包達到。
2) 參數:
(1)控制器作為發送方:

參數1下棋的先后順序,機器人先為1,玩家先為2,默認為0參數2機器人的下棋狀態,機器人完成下棋為1,默認為0參數3玩家的下棋狀態,玩家完成下棋為1,默認為0
(2)上位機作為發送方:

參數1機器人下子的X坐標,默認為0參數2機器人下子的Y坐標,默認為0參數3勝負判斷,機器人勝為1,玩家勝為2,和局為3,默認為0
3) 校驗和:校驗和的計算方式如下:
CheckSum=~(Parameter1+ Parameter2+Parameter3)
若括號內的計算值超過255,則取最低字節后取反?!啊北硎救》础?/p>
4.4.2 LabVIEW串口程序的實現
LabVIEW軟件通過VISA函數實現串口通訊,程序中需要對VISA進行初始化設置,主要是對串口和緩沖區的配置。配置程序如圖16所示。
數據的讀取與寫入則使用VISA讀取和寫入函數,由于發送和接收的是字符串,則發送時需要將字節數組轉換成字符串,接收時將字符串轉換成字節數組。如圖17所示。

圖16 VISA初始化配置圖

圖17 VISA讀取與寫入函數
4.3 棋子移動路線規劃
本論文中每個棋格都為正方形,其邊長為x,原點位置離第一個棋子存放位置1個x的距離,棋盤與棋子存放區域相距3個x的距離[8]。在對弈的過程中,機器人會記錄已下的棋子數和剩余的棋子數,并在上位機上和OLED屏上顯示。
如圖18所示,假設機器人要將(F,-4)坐標上的第6顆棋子下在坐標為(J,4 )的位置上時(下子位置在放子位置的左邊),則機器人從原點位置開始,沿路徑a1向X正方向移動5x的距離到棋子存放區域的(F,-4)坐標處取第6顆棋子,Y方向不移動,然后沿路徑b1向X正方向移動4x的距離,Y正方向移動9x的距離到(J,4)坐標處完成下子動作后,再沿路徑c1向X負方向移動9x的距離,Y負方向移動9x的距離回到原點位置。

圖18 棋子移動路徑圖
假設機器人要將(H,-2)坐標上的第37顆棋子下在坐標為(E,5)的位置上時(下子位置在放子位置的右邊),則機器人從原點位置開始,沿路徑a2向X正方向移動7x的距離,Y正方向移動2x的距離到棋子存放區域的(H,-2)坐標處取第37顆棋子,然后沿路徑b2向X負方向移動3x的距離,Y正方向移動8x的距離到(E,5)坐標處完成下子動作后,再沿路徑c2向X負方向移動4x的距離,Y負方向移動10x的距離回到原點位置。
5.1 五子棋對弈機器人實物
本論文的整體實物、棋盤如圖19所示。

圖19 實物圖
5.2 OLED屏及LED燈顯示測試
OLED屏主要顯示機器人下棋的坐標、步數以及當前下棋的狀態信息。機器人下子時紅色LED燈亮,表明玩家處于等待狀態;玩家下子時,綠色LED燈亮,表明玩家處于下子狀態。測試結果與預設結果一致,測試如圖20所示。

圖20 OLED屏及LED燈顯示測試圖
5.3 末端執行器調試
末端執行器由電磁鐵和步進伸縮電機組成,通過驅動電路調節步進伸縮電機的行程,取子時,電磁鐵表面足夠的接近棋子;落子時,電磁鐵及棋子足夠的靠近棋盤表面。取子如圖21所示,落子如圖22所示。

圖21 末端執行器取子

圖22 末端執行器落子
5.4 三維框架平臺水平移動測試
首先,在左右兩側安裝限位開關,每當Y軸方向電機歸位時觸碰限位開關,計數器清零。然后調試兩側電機驅動的PWM占空比使兩側電機速度相近,減小誤差,三維框架結構在水平方向移動測試結果,其折線統計如圖23和圖24所示。由測試結果可知,在15個格點以內,該機器人X軸方向最大誤差為4 mm,Y軸方向最大誤差為5 mm,Y軸左右誤差最大為1 mm米,移動精度滿足設計要求。

圖23 X軸方向移動精度測試折線圖

圖24 Y軸方向移動精度測試折線圖
5.5 人機對弈調試
機器人選取白色棋子,玩家選取黑色棋子,由于下棋步數較多,只選取了完整棋局的一部分作演示。經過若干步后結果如圖25所示,圖25(a)是玩家下子,后由機器人下子,圖25(b)等待機器人下棋,圖25(c)機器人到取棋區域取子,圖25(d)機器人取棋后移動,圖25(e)機器人到達落棋點,完成下棋,圖25(f)機器人下棋完成后,返回起始點,等待下一步棋。

(a)(b)

(c)(d)

(e)(f)
圖25 人機對弈
本文三維框架結構可以實現X,Y和Z方向的運動,并且通過三個方向的組合可以在一定三維空間里運動到任意位置,與機械臂相比較,具有成本低,體積小,控制簡單等優點。
本文研究的五子棋對弈的移動平臺,不僅能實現快速、精確的移動定位,而且具備良好的人機交互功能,實現人機雙向交互,不僅提高了用戶體驗,還增強了游戲的娛樂效果。
[1] 譚民,王碩.機器人技術研究進展[J].自動化學報,2013,39(7):963-972.
[2] 方菲,李龍澍.五子棋博弈平臺的設計與應用[J].電腦知識與科技(軟件設計開發),2014,10(10):2292-2296.
[3] 曹崢.應用于實驗教學的五子棋人機對弈系統[J].軟件工程師,2014,17(8):3-6.
[4] 魏寧.人機對弈體現了機器具有智能嗎[J].中國信息技術教育,2008(10):33-34.
[5] 方園,趙姝穎,聞時光,等.人機博弈技術展示-下棋機器人[J].機器人技術與應用,2014(2):39-42.
[6] 朱全民,陳松喬.五子棋算法的研究與思考[J].計算技術與自動化,2006(2):75-78.
[7] 張志偉,孔凡讓.對弈機器人的視覺圖像處理和識別[J].中國科技大學計算機應用與軟件,2008,25(2):215-217.
[8] 張小川,候鑫磊,涂飛.博弈機器人的行為規劃[J].重慶理工大學學報(自然科學版),2014,28(4):99-103.
TheResearchofMobilePlatformforGobangChessRobot
MAO Li-min1, LU Zhen-li1,2, LIU Shu-Jun1,PENG Wei-wei1,LI Liang1
(1.ChangshuInstituteofTechnology,Changshu215500,China;2.IEETA,UniversityofAveiro,Aveiro3810-193,Portugal)
Amobileplatformwitharealchessbackgammonrobotenvironmentispresented.ThemobileplatformactuatorwithSTM32asthecore,whichcontrolthemovementofthethree-dimensional,andwiththecompletionoftheelectromagnettotaketheinitiativetoplaychess,mobile,chessandsoon.Themobileplatformwasprovidedwiththeinterfacedisplay,speechrecognitionandprompt,indicatinglampandthebuzzer,andotherrichhuman-computerinteractionfunctionofGobangrobot,fullydemonstratthedesignofhumannature.Aftertesting,thedesignofthree-dimensionalmobileplatformcanfast,accuratepositioning,atthesametime,thesystemofacleardivisionoflaboramong,cooperatewitheachother,providesagoodplatformforGobangchess.
gobang;robotmobile;platform
王凱(1992-),男,碩士研究生,研究方向為電機設計及優化。
2015-11-19
蘇州市科技計劃項目(SYG201504);常熟理工學院校內科研團隊項目(KY3010551)
TM33;TP
A
1004-7018(2017)01-0009-06