方 園 趙姝穎 聞時(shí)光 田祥章 胡 彬
(東北大學(xué)人工智能與機(jī)器人研究所,沈陽,110819)
人機(jī)博弈技術(shù)展示
——下棋機(jī)器人
方 園 趙姝穎 聞時(shí)光 田祥章 胡 彬
(東北大學(xué)人工智能與機(jī)器人研究所,沈陽,110819)
本文介紹融合了人工智能技術(shù)、人機(jī)交互技術(shù)等新技術(shù)的下棋機(jī)器人。下棋機(jī)器人系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)是對(duì)提升科技傳播吸引力方式的一種探索,增強(qiáng)了傳播過程的自主性、互動(dòng)性、趣味性。系統(tǒng)設(shè)計(jì)從硬件和軟件角度都采用模塊化方法,并針對(duì)機(jī)器人同時(shí)進(jìn)行4盤棋局對(duì)弈的多任務(wù)處理需求對(duì)機(jī)器人末端執(zhí)行機(jī)構(gòu)和棋局清盤算法進(jìn)行了獨(dú)特設(shè)計(jì),大幅度提高了系統(tǒng)運(yùn)行效率。
機(jī)器人,人工智能,下棋,人機(jī)交互,科技傳播
科技傳播是人類社會(huì)科學(xué)與技術(shù)得以產(chǎn)生和發(fā)展的基本前提,是科技和社會(huì)的“血液循環(huán)系統(tǒng)”,是人類社會(huì)進(jìn)步的階梯??萍紓鞑ナ沟没逎y懂的科學(xué)知識(shí)變成了生動(dòng)形象的科技展示,讓科學(xué)被更廣泛的大眾所熟知。因此,科技傳播事業(yè)關(guān)系到公眾科學(xué)素質(zhì)的提高,關(guān)系到科學(xué)技術(shù)的發(fā)展,也以其基礎(chǔ)性的作用直接影響到國(guó)家的經(jīng)濟(jì)增長(zhǎng)和社會(huì)的全面進(jìn)步[1]。
科技傳播的介質(zhì)種類很多,比如,通過圖書、影視資源、科普?qǐng)?bào)告或?qū)嵨镪惲械?。科普展品是近年來出現(xiàn)并越來越多地被采用的一種新型科技傳播介質(zhì),以具有互動(dòng)性的實(shí)物展品展示科學(xué)技術(shù)內(nèi)涵,通過人機(jī)互動(dòng)過程讓觀眾更容易理解傳播的科技知識(shí),感受科技的魅力。
互動(dòng)式“1V4”下棋機(jī)器人系統(tǒng)充分融合了人工智能技術(shù)、人機(jī)交互技術(shù)以及機(jī)電一體化等近年發(fā)展起來的新技術(shù),傳播過程更具有自主性、互動(dòng)性、趣味性,克服了以往單一、乏味的傳播方式,整套科普智能展品可以有效提高科技傳播中前向通道的傳播效力,具有廣闊的推廣空間。
下棋機(jī)器人系統(tǒng)通過機(jī)器人與觀眾直接對(duì)弈的方式進(jìn)行展出,一共提供4種棋局系統(tǒng),分別是中國(guó)象棋子系統(tǒng)、中國(guó)圍棋子系統(tǒng)、跳棋子系統(tǒng)和五子棋子系統(tǒng)。每個(gè)棋局系統(tǒng)在各自棋局計(jì)算機(jī)上運(yùn)行,并提供人機(jī)交互的界面供觀眾參與。
在每盤棋局對(duì)應(yīng)位置擺放有1個(gè)展臺(tái),上面擺有真實(shí)的棋盤和棋子,當(dāng)觀眾每在人機(jī)交互界面落下1棋子之后,機(jī)器人便會(huì)同樣拿起1棋子擺在相應(yīng)位置。棋局子系統(tǒng)與伺服任務(wù)服務(wù)器采用基于C/S架構(gòu)的網(wǎng)絡(luò)通信方式,由服務(wù)器連接機(jī)器人控制柜、進(jìn)而由控制柜控制機(jī)器人完成相關(guān)控制指令。
整個(gè)系統(tǒng)由4臺(tái)棋局計(jì)算機(jī)、1臺(tái)伺服任務(wù)服務(wù)器、1臺(tái)工業(yè)機(jī)器人以及相關(guān)配套設(shè)施構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
實(shí)際展示圖如圖2所示。
圖2 下棋機(jī)器人實(shí)物系統(tǒng)
系統(tǒng)啟動(dòng)時(shí),首先啟動(dòng)伺服服務(wù)器,然后為機(jī)器人設(shè)置相關(guān)伺服操作,待服務(wù)器端程序完全啟動(dòng)后,4個(gè)棋局客戶端程序再啟動(dòng),建立網(wǎng)絡(luò)連接。系統(tǒng)啟動(dòng)后,首先由伺服服務(wù)器判定網(wǎng)絡(luò)連接情況,當(dāng)網(wǎng)絡(luò)連接異常時(shí),服務(wù)器界面會(huì)通過彈出對(duì)話框的方式提示相關(guān)異常信息。當(dāng)機(jī)器人、服務(wù)器、棋局客戶端連接正常之后,服務(wù)器進(jìn)行相關(guān)棋局初始化操作,整個(gè)系統(tǒng)的初始化工作完成[2]。
游戲的啟動(dòng)是觀眾在人機(jī)交互界面點(diǎn)擊下棋開始按鈕,此時(shí),信息通過網(wǎng)絡(luò)傳輸?shù)椒?wù)器端,服務(wù)器端程序接收信息之后進(jìn)行相關(guān)處理,后轉(zhuǎn)換成下棋操作[2]。當(dāng)用戶開始下棋時(shí),棋局子系統(tǒng)通過人工博弈算法給出對(duì)應(yīng)的下棋操作。每次下棋操作完成后,棋局子系統(tǒng)都會(huì)將下棋信息發(fā)送到服務(wù)器,服務(wù)器程序?qū)ο嚓P(guān)信息進(jìn)行解析,產(chǎn)生走子的控制命令,并將控制命令傳遞給機(jī)器人完成相關(guān)走子操作。
3.1 軟件結(jié)構(gòu)
軟件系統(tǒng)作為整套系統(tǒng)的核心,承擔(dān)著多項(xiàng)具體任務(wù),其中包括針對(duì)觀眾下棋產(chǎn)生相應(yīng)對(duì)弈策略、控制機(jī)器人移動(dòng)以及服務(wù)器與客戶端之間的信息傳輸?shù)?。整個(gè)軟件系統(tǒng)可劃分為決策子系統(tǒng)、網(wǎng)絡(luò)子系統(tǒng)、控制子系統(tǒng)、交互子系統(tǒng)。軟件系統(tǒng)結(jié)構(gòu)如圖3所示。
3.1.1 決策子系統(tǒng)
決策系統(tǒng)主要包括象棋決策系統(tǒng)、五子棋決策系統(tǒng)、圍棋決策系統(tǒng)和跳棋決策系統(tǒng)。決策系統(tǒng)包括界面和搜索引擎兩個(gè)部分,界面作為人機(jī)交互部分在交互子系統(tǒng)中設(shè)計(jì),而搜索引擎則是計(jì)算機(jī)的思考和決策[3]。搜索引擎的結(jié)構(gòu)如圖4所示,正確表示當(dāng)前局面是計(jì)算機(jī)做決策的基礎(chǔ),走法生成器用來產(chǎn)生當(dāng)前局面下符合規(guī)則的所有走法,局面評(píng)估函數(shù)對(duì)一個(gè)局面做出評(píng)價(jià),搜索產(chǎn)生最優(yōu)走法則是搜索算法在局面表示、走法生成器、和局面評(píng)估函數(shù)的配合下對(duì)博弈樹展開搜索、得到最優(yōu)走法并走棋[3]。
圖3 軟件系統(tǒng)結(jié)構(gòu)圖
圖4 搜索引擎結(jié)構(gòu)圖
3.1.2 網(wǎng)絡(luò)子系統(tǒng)
網(wǎng)絡(luò)子系統(tǒng)負(fù)責(zé)客戶端和服務(wù)器之間的通信,客戶端每次將相關(guān)數(shù)據(jù)結(jié)構(gòu)填充完畢后,將信息發(fā)送給服務(wù)器;服務(wù)器接收后,對(duì)信息進(jìn)行排序、解析等相關(guān)處理,再傳遞給控制系統(tǒng)控制機(jī)器人的具體信息。
1)服務(wù)器網(wǎng)絡(luò)模塊:采用多線程模式,主線程用于信息的處理,子線程建立基于TCP協(xié)議的服務(wù)器模塊,用于監(jiān)聽各個(gè)客戶端的請(qǐng)求,當(dāng)信息到來后,發(fā)送消息通知主線程。
2)客戶端網(wǎng)絡(luò)模塊:建立與服務(wù)器端相同的數(shù)據(jù)結(jié)構(gòu),用于填充走子信息,然后將信息捆綁發(fā)送給服務(wù)器。
3)信息解析模塊:主線程建立命令解析模塊,對(duì)客戶端到來的信息進(jìn)行排序,解析出具體的棋局信息,并轉(zhuǎn)化成控制命令傳遞給控制系統(tǒng)。
3.1.3 控制子系統(tǒng)
1)機(jī)器人移動(dòng)控制模塊:針對(duì)機(jī)器人廠家提供的底層函數(shù),設(shè)計(jì)并封裝針對(duì)不同走子方式的模塊,用于控制機(jī)器人移動(dòng)。信息解析之后,通過調(diào)用相關(guān)控制模塊即可完成機(jī)器人的移動(dòng)和吸放子等功能。
2)機(jī)器人移動(dòng)保護(hù)模塊:由于工業(yè)機(jī)器人工作具有一定危險(xiǎn)性,所以每次調(diào)用控制模塊之前,先通過保護(hù)模塊判斷機(jī)器人是否在安全范圍以內(nèi),符合要求后再執(zhí)行機(jī)器人移動(dòng)控制模塊。
3.1.4 交互子系統(tǒng)
交互系統(tǒng)是提高科技傳播效力的重要手段之一。通過觸摸方式設(shè)計(jì)的人機(jī)交互界面,可以讓觀眾輕松參與到棋局對(duì)弈中來,大大提高了整個(gè)系統(tǒng)的互動(dòng)性與趣味性。
3.2 硬件結(jié)構(gòu)
下棋機(jī)器人硬件系統(tǒng)包括機(jī)器人控制系統(tǒng)、末端執(zhí)行系統(tǒng)、人機(jī)交互系統(tǒng)、展臺(tái)。結(jié)構(gòu)示意圖如圖5所示。
圖5 系統(tǒng)硬件結(jié)構(gòu)圖
3.2.1 機(jī)器人控制系統(tǒng)
機(jī)器人控制系統(tǒng)包括機(jī)器人本體、機(jī)器人控制柜、機(jī)器人變壓器和操作手柄等配套設(shè)施。機(jī)器人采用六自由度工業(yè)機(jī)器人,最大操作半徑達(dá)1370mm,最大運(yùn)行轉(zhuǎn)速在180°/s以上,最大誤差0.02 mm。機(jī)器人具有自我保護(hù)功能和安全區(qū)域設(shè)定功能,能夠滿足1個(gè)機(jī)器人同時(shí)與多人對(duì)弈的要求[4]。
機(jī)器人自帶的控制柜可用于調(diào)校、控制機(jī)器人移動(dòng)以及完成服務(wù)器和計(jì)算機(jī)的通信任務(wù),操作手柄可用于機(jī)器人發(fā)生故障時(shí)進(jìn)行手動(dòng)調(diào)整。
3.2.2 末端執(zhí)行機(jī)構(gòu)
末端執(zhí)行機(jī)構(gòu)完成拾起、放下棋子的功能。棋子的拾取方式分為抓取、氣動(dòng)和電磁吸附等方式。抓取的優(yōu)點(diǎn)在于演示效果好,使系統(tǒng)看起來更協(xié)調(diào),棋子也無需特殊制作[5],缺點(diǎn)在于結(jié)構(gòu)復(fù)雜,要求精度過高,且易損壞;氣動(dòng)方式優(yōu)點(diǎn)在于結(jié)構(gòu)相對(duì)精簡(jiǎn),對(duì)棋子無特殊要求,缺點(diǎn)在于會(huì)產(chǎn)生噪音,系統(tǒng)成本高且運(yùn)行不穩(wěn)定;電磁吸附方式優(yōu)點(diǎn)在于結(jié)構(gòu)簡(jiǎn)單,控制方便,缺點(diǎn)在于需要特制棋子,在棋子表面要嵌入鐵片,且吸附時(shí)要靠近棋子。綜合考慮以上各方案優(yōu)缺點(diǎn),本系統(tǒng)采用電磁吸附的方式作為抓子的執(zhí)行機(jī)構(gòu)末端[5]。
由于系統(tǒng)要同時(shí)進(jìn)行4盤棋的對(duì)弈,傳統(tǒng)末端執(zhí)行機(jī)構(gòu)只有1個(gè)末端執(zhí)行器,1次運(yùn)動(dòng)只能對(duì)1個(gè)棋子進(jìn)行操作,所以本系統(tǒng)對(duì)機(jī)器人的末端進(jìn)行改造,將末端執(zhí)行機(jī)構(gòu)由1個(gè)增加到8個(gè),并確保各個(gè)機(jī)構(gòu)之間獨(dú)立工作,互不干擾,并通過對(duì)初始的執(zhí)行機(jī)構(gòu)的控制間接實(shí)現(xiàn)對(duì)所有機(jī)構(gòu)的控制。
3.2.3 人機(jī)交互系統(tǒng)
主要依靠4臺(tái)計(jì)算機(jī),同時(shí)配備可以觸摸的顯示屏用于讓觀眾參與到棋局對(duì)弈中來。
3.2.4 展臺(tái)
展臺(tái)是讓觀眾參與下棋系統(tǒng)的直接載體,整個(gè)展臺(tái)設(shè)計(jì)成1個(gè)四面體的玻璃罩,罩內(nèi)擺放真實(shí)棋盤、棋子和機(jī)器人,展臺(tái)外部探出人機(jī)交互界面,用于讓觀眾參與下棋,在展臺(tái)內(nèi)部觀眾不可見的地方,擺放伺服服務(wù)器、計(jì)算機(jī)和機(jī)器人控制柜等相關(guān)設(shè)施。
系統(tǒng)所涉及到的關(guān)鍵技術(shù)包括機(jī)器人多任務(wù)協(xié)調(diào)、多關(guān)節(jié)協(xié)調(diào)控制、博弈算法、清盤算法、控制算法、人機(jī)交互、末端執(zhí)行機(jī)構(gòu)設(shè)計(jì)等,本文只針對(duì)清盤算法和末端執(zhí)行機(jī)構(gòu)設(shè)計(jì)進(jìn)行簡(jiǎn)單概述。
4.1 末端執(zhí)行機(jī)構(gòu)設(shè)計(jì)
傳統(tǒng)的下棋機(jī)器人大多只有1個(gè)末端執(zhí)行器,1次運(yùn)動(dòng)只能對(duì)1個(gè)棋子進(jìn)行操作。這樣的處理速度太慢,而且,象棋吃子的過程是:先拿掉被吃的棋子,再放上吃棋的子,而人的操作是同時(shí)進(jìn)行的,因此機(jī)器人操作相對(duì)繁瑣,顯得不自然。特別是下完一盤棋進(jìn)行清盤的操作非常耗時(shí)并且步驟繁瑣。
針對(duì)上述情況,將末端執(zhí)行機(jī)構(gòu)由1個(gè)增加到8個(gè),建立機(jī)構(gòu)立體模型,計(jì)算各個(gè)末端的相互約束,確保各個(gè)機(jī)構(gòu)之間獨(dú)立工作,互不干擾,并通過對(duì)初始的執(zhí)行機(jī)構(gòu)的控制間接實(shí)現(xiàn)對(duì)所有機(jī)構(gòu)的控制。在solidworks上做出機(jī)構(gòu)模型如圖6所示。
4.2 棋局清盤算法
在每盤棋局結(jié)束之后,機(jī)器人要按照一定算法將棋子歸位,否則棋局無法繼續(xù)進(jìn)行。同時(shí),算法設(shè)計(jì)也會(huì)在很大程度上影響清盤時(shí)間,尤其是在棋面上有大量棋子的情況下更為明顯,因此,設(shè)計(jì)算法要求在準(zhǔn)確性的基礎(chǔ)上,盡量符合快速性的要求。
五子棋與圍棋所采用的規(guī)格是一致的,初始棋局情況也完全相同,所以可以采用同一種清盤算法。跳棋和象棋要各自針對(duì)自己棋局的特殊性設(shè)計(jì)清盤算法。
雖然清盤算法有別,但整體的清盤運(yùn)行流程和核心算法是一致的。每盤棋局都是等待清盤任務(wù)到來后,掃描棋盤上每一格點(diǎn),通過與初始棋局的比較判斷如何執(zhí)行清盤動(dòng)作,多次掃描并執(zhí)行相應(yīng)清盤動(dòng)作之后,若掃描當(dāng)前棋盤狀況與初始棋盤情況完全一致時(shí),即完成清盤任務(wù)。清盤算法來自于排序算法,針對(duì)棋局的特點(diǎn)選擇合適的排序方法,再拓展到實(shí)際棋局上來。
圖6 執(zhí)行機(jī)構(gòu)模型圖
“1V4”下棋機(jī)器人系統(tǒng)目前已成為全國(guó)多個(gè)科技館的標(biāo)志性展品之一,吸引了更多的人對(duì)相關(guān)科技產(chǎn)生了強(qiáng)烈的興趣與愛好。面向未來,系統(tǒng)還可以在多方面進(jìn)行改進(jìn),比如棋局棋盤清盤算法,還可以在準(zhǔn)確的基礎(chǔ)上尋求最優(yōu)算法使清盤時(shí)間進(jìn)一步縮短;在系統(tǒng)準(zhǔn)確性方面,可以對(duì)執(zhí)行機(jī)構(gòu)進(jìn)行改進(jìn),以減小系統(tǒng)長(zhǎng)時(shí)間運(yùn)行產(chǎn)生的累積誤差;未來還可以從智能科普產(chǎn)品的多樣化、人機(jī)交互方式的自然化等角度出發(fā),對(duì)系統(tǒng)進(jìn)行改造,向觀眾傳播更多的科學(xué)技術(shù)知識(shí)。
[1] 裴奔.科技傳播系統(tǒng)的理論與實(shí)踐研究[D].天津大學(xué), 2003.
[2] 曹宇.面向互動(dòng)表演的下棋機(jī)器人系統(tǒng)的設(shè)計(jì)與開發(fā)[D].東北大學(xué), 2009.
[3] 田翠華,宋興亮,朱順痣,等.中國(guó)象棋計(jì)算機(jī)博弈算法研究[J].信息技術(shù), 2011(12):5-9.
[4] 趙風(fēng)升.下棋機(jī)器人視覺系統(tǒng)的研究與開發(fā)[D].東北大學(xué), 2008.
[5] 張喜.基于μCOS-Ⅱ和ARM微控制器的下棋機(jī)器人設(shè)計(jì)[D].上海交通大學(xué),2008.