csdn具有開源精神的人很多,正是因爲你們無私的奉獻精神,激勵着我也打算做個開源項目,這是我的第一個開源項目,要認真寫。
不多說,先上圖片
整體效果圖
再上視頻
視頻地址:智能象棋機器人:https://www.bilibili.com/video/av24602515
構成
物品 | 價格 | 備註 |
---|---|---|
一臺筆記本 | 。。。 | 用於圖像識別與博弈算法,以及上位機界面 |
一個dobot機械臂 | 1600 | 用於完成棋子抓取,步進電機是減速步進電機,速度減慢了,但是扭矩增大了 |
三臺步進電機驅動器 | 50*3 | 用於驅動機械臂的步進電機 |
stm32f103單片機 | 70 | 用於控制機械臂與電磁鐵 |
一個電磁鐵 | 10 | 用於吸取與放下棋子 |
usb攝像頭 | 200 | 用於識別棋子的種類與位置 |
一副象棋 | 30 | 改裝了,上面貼了鐵質硬幣,硬幣上粘了紙 |
限位開關 | 10*3 | 用於機械臂回原點 |
說明:整個系統花費最高的應該就是這個機械臂,不過想要做機器人,機械部分是最花錢,但是這款機械臂是我目前找到的能實現的最高性價比的了,雖然圖紙是有的,但是想要自己加工一套,那顯然是更不經濟了。曾經想過用scara機械臂來實現的,那款機械臂控制十分簡單,但是造價太高,最便宜的也要5000,曾經在某科技競賽上,也看過一款機械臂,那款機械臂是由大扭矩舵機組成的,不光扭矩大,精度也高,速度也很快,但是行程太短,下下五子棋可以,但是象棋就不行了,最要命的是它一個舵機就要8000元,而且整個軟件控制系統都是完善的,不用你自己去實現,那就失去了控制機械臂的樂趣。還是要感謝發明出這款機械臂的團隊。這款機械臂的設計圖紙我這裏也是有的,通過看圖紙,你可以將大學機械原理,機械設計用到的東西,實踐一遍,也是十分有意思。
軟件設計
整個系統的軟件系統由三部分構成分別是機械臂控制、圖像識別、博弈算法
機械臂控制
由stm32f103控制步進電機來進行運動,首先對機械臂進行分析,然後編程
圖像識別
主要是棋盤交叉點的識別、移動棋子的前後位置、象棋的識別
交叉點識別比較簡單
棋子前後移動的位置將兩幅圖相減就行
象棋識別是用svm+lbp進行識別,象棋上面漢字識別的難點就是漢字不是正立的,是各種方向的,而lbp特徵具有旋轉不變性,因此可以用來識別象棋。
博弈算法
這個主要是參考一本書叫《xxx》,裏面有開源代碼,當把搜索步長加到四步時,一般人已經下不過了,然後把圖像識別的輸入輸出接口接到這裏面即可。
持續更新,完善中。。。。。。
有對這個感興趣的嗎,期待大家的鼓勵,讓我繼續更新。