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