教你如何從零做一個智能象棋機器人——基於機器視覺與dobot的象棋機器人

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》,裏面有開源代碼,當把搜索步長加到四步時,一般人已經下不過了,然後把圖像識別的輸入輸出接口接到這裏面即可。

持續更新,完善中。。。。。。
有對這個感興趣的嗎,期待大家的鼓勵,讓我繼續更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章