曹崢
摘 要:設計開發(fā)了一種能夠與人進行五子棋實時對弈的機器人系統(tǒng),利用攝像頭識別棋盤信息,由策略系統(tǒng)做出落子決策,再通過機械臂執(zhí)行動作,完成人機對弈的整個過程。詳細介紹了系統(tǒng)各功能模塊的軟硬件設計、實現和調試。實驗證明,對弈機器人以較低的成本實現了沉浸式的人機交互體驗,對計算機控制裝置、人工智能、軟件技術等課程的實驗教學起到了促進作用。
關鍵詞:對弈機器人;五子棋;圖像識別;PLC;實驗教學
中圖分類號:TP242.6 文獻標識碼:A
Abstract:This paper designed and developed a robot system can real-time game Gobang with people.The chess robot identifies chessboard information with the camera,then make up the decision with the strategy system,and then execute action through the mechanical arm.This paper introduced the software and hardware design,implementation and debugging of each function module of the system.It has been testified that the robot achieved human-computer interaction at low cost,and played a promoting role in the experimental teaching of computer control device,artificial intelligence,software technology curriculum.
Keywords:chess robot;Gobang;image recognition;PLC;experiment teaching
1 引言(Introduction)
“人工智能之父”圖靈在1950年曾說:“下棋是很抽象的活動,是機器可以和人競爭的純智能領域之一[1]?!彪S著1997年“深藍”戰(zhàn)勝人類國際象棋冠軍卡斯帕羅夫,人機對弈成為一種人工智能的代表應用形式,被普通民眾所熟知。
隨著計算機軟件技術的普及,人機對弈類型的應用軟件層出不窮[2-4],豐富了人們的休閑娛樂生活。隨著機器人技術的快速發(fā)展,娛樂機器人成為機器人領域中一支極具前景的新生力量[5],新的技術也對人機對弈平臺在人機交互方式[6]和真實用戶體驗方面提出了新的需求。國內的人機對弈系統(tǒng)一般針對中國象棋或五子棋[3-7],其中五子棋尤其具有現代休閑“短、平、快”的特征[2]。本文設計制作了一個實時交互的五子棋人機對弈系統(tǒng),旨在提供一個具有真實用戶體驗,服務于相關課程實驗教學的人機對弈實驗平臺。
2 系統(tǒng)總體設計(System design)
五子棋人機對弈系統(tǒng)主要包括視覺系統(tǒng)、策略系統(tǒng)和機械臂系統(tǒng)三大功能模塊,系統(tǒng)總體結構如圖1所示。視覺系統(tǒng)對棋盤進行圖像采集,通過特定的圖像識別算法對雙方棋子進行識別和定位,得到當前的棋盤布局。策略系統(tǒng)對當前棋盤布局進行分析,調用智能對弈算法計算出最優(yōu)落子位置坐標,并換算成為執(zhí)行器的動作量,通過串行數據線發(fā)送至機械臂系統(tǒng),由其完成取子、移動、落子等運動控制。從而在真實的棋盤上實現人機對弈。策略系統(tǒng)提供可視化的人機界面,能將視覺系統(tǒng)得到的棋盤布局圖形化顯示,實現對弈過程中界面與棋盤信息的同步。此外,用戶亦可通過人機界面與策略系統(tǒng)進行純軟件的虛擬對弈,增強了趣味性,豐富了實驗內容。
3 視覺系統(tǒng)(Vision system)
視覺子系統(tǒng)是機器人的眼睛,由攝像頭與圖像處理算法組成,系統(tǒng)結構如圖2所示。攝像頭采集棋盤圖像,通過USB傳至裝有圖像處理程序的計算機,再經過色塊分割、識別和定位得到雙方棋子的布局情況,上傳至策略系統(tǒng)。攝像頭型號為PHILIPS SPC900NC,USB接口,最高幀速率為90幅/s,安裝于棋盤正上方。圖像處理算法通過C++語言實現,開發(fā)平臺為Visio Studio 2010,程序流程如圖3所示。
圖像識別[8,9]的步驟為:色塊分割、棋子識別、棋子定位。首先根據顏色特征來區(qū)分雙方棋子。將攝像頭獲取圖像轉換為YUV顏色空間信息,分別定義雙方棋子顏色的閾值范圍,即可將圖像分成不同顏色的色塊。綜合考慮圖像噪聲等因素的影響,根據色塊面積、形狀等特征嚴格地判斷是否為待識別目標。為了輔助定位,在棋盤的四個角上用不同于棋子的顏色作為標記,因此實際的目標識別還包括對四角標志點的識別。識別出標志點后,根據棋子和標志點的圖像坐標的關系,即可獲得具體的位置信息,識別效果如圖4所示。
4 策略系統(tǒng)(Strategy system)
策略系統(tǒng)是機器人的大腦,系統(tǒng)結構如圖5所示。它接收來自視覺系統(tǒng)的棋盤位置信息,判斷當前的勝負關系,計算出下一步落子點坐標,再經過機械臂控制執(zhí)行換算得到輸出動作量,通過串行口發(fā)送至機械臂系統(tǒng)。策略系統(tǒng)通過計算機軟件編程實現,包括智能決策算法與人機界面兩部分。智能決策算法采用C++語言開發(fā),界面采用C#語言開發(fā),開發(fā)平臺為Visio Studio 2010。
4.1 智能決策算法
智能決策算法主要包括最優(yōu)落子點的計算,勝負判定和控制執(zhí)行換算三部分,程序流程如圖6所示。計算最優(yōu)落子點采用最直接也是最有效的遍歷搜索法。預設棋盤布局為10格×10格,計算可得雙方均分別有192種取勝的狀態(tài)。首先對取勝緩沖標識區(qū)以及雙方的搜索空間分別進行初始化;隨著雙方對弈的深入,棋子的增長與局勢的變化,系統(tǒng)通過判斷對方所有符合條件的取勝狀態(tài)及其威脅性,按照一定的加分規(guī)則來更新搜索空間的評價值,以數值最大的點為下一步的最佳落子點,如此往復循環(huán)。對于結果的判斷比較簡單,取勝的條件為五子連線;平局的條件為棋子布滿棋盤。endprint
在真實對弈的過程中,機器人的落子行為通過機械臂系統(tǒng)來執(zhí)行,機械臂控制執(zhí)行換算實現最優(yōu)落子點坐標與機械臂動作量之間的數值轉換。根據機械手爪的位置與目標落子點的坐標,規(guī)劃出最優(yōu)的移動路徑;再結合機械臂各個自由度上的機械參數,計算得到各執(zhí)行電機的輸出動作量。
4.2 人機界面
人機界面是棋盤之外的輔助人機交互接口,具有參數設置、信息可視化和軟件模擬的功能。人機界面如圖7所示,設計有黑、白方的選擇按鈕,啟動、停止、重啟比賽按鈕,串口參數設置以及計時器等功能模塊;與實際對弈競賽一樣,人/機雙方在落子之后還需點擊相應的“落子確認”按鈕。由于系統(tǒng)具有真實和虛擬兩種人機對弈模式,在真實對弈過程中,界面能實時顯示當前的棋盤布局;在虛擬對弈過程中,用戶直接通過界面與智能對弈算法進行較量。
5 機械臂系統(tǒng)(The mechanical arm system)
機械臂系統(tǒng)是機器人的手臂,系統(tǒng)結構如圖8所示,它通過RS-232接收來自策略系統(tǒng)的電機輸出動作量,經可編程控制器(PLC)轉換為相應的脈沖信號,由開關量輸出(DO)端口傳送至驅動器,控制電機和電磁閥帶動轉盤、絲桿及汽缸動作。結合開關量輸入(DI)端口接收到的位置傳感器反饋信號,完成在立體空間中抓取、移動和放置棋子的動作。
機械臂系統(tǒng)選用亞龍公司YL-SJ-Z型工業(yè)機械臂實訓臺,由全金屬架構搭建而成(長×寬×高:1200mm×780mm×840mm)。通過垂直、水平和底盤旋轉三個自由度的活動環(huán)節(jié),實現機械手爪在一定三維空間區(qū)域內活動定位,即使用了坐標式架構。底盤旋轉通過直流減速電機與光電碼盤配合實現精確定位;垂直與水平移動分別由兩個步進電機帶滾珠動絲桿旋進,行程終點裝有限位開關,保證電機安全運行;機械手爪采用高精度氣動式手爪,配備電磁位置開關及兩位三通電磁閥,實現快速準確的抓取和放開動作。
實訓臺的主控制器為歐姆龍CP1H-XA40DT-D型PLC,CP1H-XA40DT-D是一款緊湊型一體化高性能PLC,具有24路DI和16路DO,直流24V供電,能通過USB與RS-232/485等多種方式與計算機通訊。PLC程序采用梯形圖編程語言編寫,開發(fā)軟件為CX-programmer7.0。程序流程如圖9所示,可分為抓取棋子,接收串口數據,產生并發(fā)送控制信號,移動至落子位置,放置棋子,返回起點幾個步驟。
6 結論(Conclusion)
將各功能模塊聯機調試,挑選學生志愿者與機器人進行對弈測試,實驗結果表明,真實對弈與虛擬對弈都較好地實現了預期目標,尤其是真實對弈模式在一定區(qū)域內很好地實現了棋子的識別,機械手取子、移動、落子等動作,給用戶沉浸式的操作體驗。實際測試效果如圖10所示。系統(tǒng)各功能模塊都具有通用的軟硬件接口,供學生探索研究和繼續(xù)開發(fā),已經應用于計算機控制裝置、人工智能、軟件技術等課程的實驗教學,收到良好的效果。
對弈機器人利用硬件設備將人機交互實物化,更加符合傳統(tǒng)對弈的形式,在教學研究、科技展示、家庭娛樂等方面具有相當的應用價值。通用的硬件配置,個性化的軟件設計,既降低了開發(fā)成本,也使系統(tǒng)具有較強的可移植性。
參考文獻(References)
[1] 魏寧.人機對弈體現了機器具有智能嗎[J].中國信息技術教育,2008(10): 33-34.
[2] 吳四光.人機對弈的設計及實現[J].電子測試,2013(9):35-36.
[3] 張佳佳.五子棋對戰(zhàn)平臺的設計與實現[J].電腦知識與技術,2012,22(8):5409-5411.
[4] 周瑋,等.一個智能算法對弈平臺的研制[J].實驗室研究與探索,2005(24):331-333.
[5] 徐麗麗,等.基于Mega128的象棋機器人對弈系統(tǒng)的研究[J].傳感器世界,2013(12):31-34.
[6] 黃立波,等.實時環(huán)境下的對弈機器人控制系統(tǒng)設計與分析[J].機械,2004,31(6):50-52.
[7] 黃雙,等.智能型實物棋盤人機對弈象棋機器人的制作[J].大學物理實驗,2014,27(1):42-46.
[8] 任俠,廖建平.基于敏感圖像識別預防水利災害關鍵技術研究[J].軟件工程師,2013(6):38-42.
[9] 張旭,等.基于圖像識別的停車場智能管理系統(tǒng)的設計與實現[J].軟件工程師,2013(8):25-26.
作者簡介:
曹 崢(1985-),男,在職研究生,助理工程師.研究領域:控制理論,過程控制工程.endprint