文/周欣欣 燕澤昊 王廣發
機器人技術是備受當今世界關注的前沿課題。近年來,機器人技術取得了巨大發展,已經對許多國家的國民經濟和人民生活產生了重大影響。很多青少年都有做事精神不集中的問題,而老年人也有記憶力衰退,老年癡呆等問題。而下棋不僅可以提高他們的專注力,在觀察對手狀態的時候,也能提高記憶力、創造力和邏輯思維能力。因此,本文設計了一個關于井字棋的基于圖像識別的智能對弈機器人。
本系統的工作流程為:通過攝像頭拍攝整個棋盤,在樹莓派上使用OpenCV視覺庫對圖像進行處理,識別棋盤中的幾何圖形,運行博弈算法,解算AI落子位置。通過串口將指令發送給單片機MK60,實現主機與單片機MK60的通信。單片機通過PWM波控制機械臂,用電磁鐵吸取棋子放到指定位置。智能對弈機器人系統結構和整體裝置見圖1和圖2。
硬件部分主要由單片機核心電路、舵機驅動電路、電磁鐵驅動電路、電源管理電路組成。
單片機電源管理電路由電源芯片LM2940-5.0和TPS7333級聯組成。LM2940-5.0是輸出電壓固定的低壓差三端穩壓器,內含多種保護電路。TPS7333集成的精密電源電壓監控器可對穩壓器的輸出電壓進行監控,輸出電流最大為500mA。單片機通過周期為 20ms 的 PWM 波驅動舵機轉動指定角度。由于舵機的供電電壓變化范圍為 4~6.7V,為了使得舵機穩定工作,且電源電壓得以統一,共使用兩個LM2576構造5V 穩壓電源給四個舵機供電。LM2576具有完善的保護電路,最大輸出電流為3A。系統采用繼電器控制電磁鐵的開關,實現了對棋子的吸放。為防止電磁鐵的電壓反沖造成單片機的損壞,使用了一塊光耦隔離芯片連接單片機與電磁鐵。
2.2.1 圖像采集
樹莓派通過usb免驅動攝像頭采集圖像,搭配Ubuntu操作系統及OpenCV視覺庫對圖像進行處理。OpenCV作為一個開源的計算機視覺開發包,有 400 多個免費的圖像處理函數,覆蓋了機器視覺的大多應用領域。
2.2.2 圖像識別
我們運用機器學習KNN算法解決方框和棋子外形的識別問題。識別策略為先識別棋盤各個方框,然后再識別所在方框內的棋子的幾何圖案,由此得出棋盤布局。該方法在定類決策上只依據最鄰近的一個或者幾個樣本的類別來決定待分樣本所屬的類別。通過歐氏距離計算對象間距離來作為各個對象之間的非相似性指標,避免了對象之間的匹配問題。在具體實現上,我們從采集的多個經過預處理的的二值圖像,剪裁成20*20的圖片,每個圖案的樣本數量為100~200張不等。
2.2.3 博弈處理
進行圖像識別后,讀出對手棋子位置,并采用博弈樹極大極小值Alpha-Beta剪枝搜索算法計算落子位置。Alpha-Beta剪枝算法是基于極大極小搜索算法的。極大極小搜索策略是考慮雙方對弈若干步之后,從可能的步中選一步相對好的走法來走,在有限的搜索范圍內進行求解,可以理解為規定一個有限的搜索深度。
機械臂主要由舵機、支架、碳纖桿、電磁鐵組成。先將兩個高壓數字舵機CLS6036HV搭建為一個云臺,利用碳纖桿連接數字舵機S-D5,考慮到機械臂的長度和重量,末端使用小型模擬SG90舵機連接電磁鐵。本平臺通過同時控制不同的舵機從而操控機械臂實現物體的搬運。
隨著人類生活水平的提高,各種類型的機器人需求隨之出現,目前幾乎已經滲透到生活的各個方面。本文針對使用在陪護娛樂方面的機器人進行了研究和系統開發,設計了一個能與孩子或老人對弈,具有陪護、啟發智商、防止老年癡呆等多種功能的基于OpenCV圖像識別的智能對弈機器人。本文設計的智能對弈機器人能夠完成自主運行,達到實際控制要求。本方案在圖像信息的處理、機械臂結構和游戲的多樣性有改進和提升的空間,適用與老人與兒童,具有一定的社會經濟效益。

圖1:系統整體結構

圖2:系統整體裝置