案例:用機(jī)器人手臂mybot 280玩井字游戲
掃描二維碼
隨時(shí)隨地手機(jī)看文章
本案例設(shè)計(jì)了一個(gè)將計(jì)算機(jī)視覺(jué)與機(jī)器人控制相結(jié)合,與機(jī)械臂玩井字游戲的項(xiàng)目。
該項(xiàng)目由Karteek Menda創(chuàng)建,他在Github、YouTube和Medium上開(kāi)源并發(fā)布了相關(guān)內(nèi)容。
井字游戲是一種經(jīng)典的雙人游戲,玩家輪流在3×3網(wǎng)格上做標(biāo)記。在水平、垂直或?qū)蔷€(xiàn)上成功放置3個(gè)標(biāo)記的玩家獲勝。
在這個(gè)項(xiàng)目中,我們將構(gòu)建一個(gè)簡(jiǎn)單的人機(jī)對(duì)抗機(jī)器人系統(tǒng)。
myCobot 280 Pi
由大象機(jī)器人公司開(kāi)發(fā)的myCobot 280系列代表了一系列6自由度協(xié)作機(jī)器人手臂,主要用于研究,教育,科學(xué)和技術(shù)應(yīng)用。mybot 280 Pi,配備樹(shù)莓派作為其控制板,設(shè)計(jì)為用戶(hù)友好,易于初學(xué)者學(xué)習(xí)和使用。
AI Kit 2023
AI Kit 2023包括一套教育設(shè)備,如攝像頭、鋁型材和木塊。附帶的視覺(jué)定位代碼可在gibook教程中獲得,允許用戶(hù)直接訪(fǎng)問(wèn)它。這使用戶(hù)能夠快速學(xué)習(xí)計(jì)算機(jī)視覺(jué)識(shí)別和機(jī)器人控制,同時(shí)促進(jìn)二次開(kāi)發(fā)。
極大極小算法
極大極小算法是一種常用于雙人回合制博弈的決策算法。極大極小算法的主要目標(biāo)是考慮所有可能的走法及其潛在結(jié)果,確定棋手的最佳走法。
以下是對(duì)極大極小算法工作原理的簡(jiǎn)化解釋?zhuān)?
1. 評(píng)估功能:根據(jù)玩家位置的優(yōu)勢(shì)或劣勢(shì)為每個(gè)可能的移動(dòng)分配一個(gè)值,而負(fù)值可能意味著劣勢(shì)。
2. 遞歸搜索:在決策樹(shù)中探索未來(lái)的移動(dòng),在最大化和最小化參與者之間交替進(jìn)行。
3. 回溯:將值傳回樹(shù),最大的玩家選擇最高值,最小的玩家選擇最低值。
4. 最優(yōu)移動(dòng):樹(shù)的根表示初始游戲狀態(tài),算法選擇具有最高值的子節(jié)點(diǎn)移動(dòng),假設(shè)兩個(gè)玩家都是最優(yōu)的。
設(shè)置項(xiàng)目
1. 設(shè)置環(huán)境
PIP安裝openv -python
PIP安裝pymycobot
2. 設(shè)定游戲規(guī)則
3. 檢測(cè)ArUco定位
該函數(shù)識(shí)別圖像中的2個(gè)ArUco標(biāo)記,并計(jì)算每個(gè)標(biāo)記的中心坐標(biāo)(X, Y)。然后返回得到的X和Y坐標(biāo)以供進(jìn)一步使用,例如坐標(biāo)轉(zhuǎn)換、相機(jī)校準(zhǔn)或機(jī)器人定位。
4. 繪制游戲板
5. 顏色檢測(cè)
這部分代碼通過(guò)HSV顏色規(guī)則區(qū)分背景和棋子,得到棋子的中心坐標(biāo)。
6. 與攝像頭集成
這部分代碼使用計(jì)算機(jī)視覺(jué)實(shí)現(xiàn)了一個(gè)實(shí)時(shí)井字游戲。這款游戲涉及人類(lèi)玩家和AI。它與攝像機(jī)交互,處理幀以檢測(cè)移動(dòng),并相應(yīng)地更新游戲板。
7、玩井字游戲
總結(jié)
本項(xiàng)目展示了如何利用機(jī)器人手臂myCobot 280 Pi構(gòu)建一個(gè)人機(jī)對(duì)抗的項(xiàng)目,突出了其技術(shù)能力、互動(dòng)樂(lè)趣和教育價(jià)值。
本文編譯自hackster.io