案例:用机器人手臂mybot 280玩井字游戏
扫描二维码
随时随地手机看文章
本案例设计了一个将计算机视觉与机器人控制相结合,与机械臂玩井字游戏的项目。
该项目由Karteek Menda创建,他在Github、YouTube和Medium上开源并发布了相关内容。
井字游戏是一种经典的双人游戏,玩家轮流在3×3网格上做标记。在水平、垂直或对角线上成功放置3个标记的玩家获胜。
在这个项目中,我们将构建一个简单的人机对抗机器人系统。
myCobot 280 Pi
由大象机器人公司开发的myCobot 280系列代表了一系列6自由度协作机器人手臂,主要用于研究,教育,科学和技术应用。mybot 280 Pi,配备树莓派作为其控制板,设计为用户友好,易于初学者学习和使用。
AI Kit 2023
AI Kit 2023包括一套教育设备,如摄像头、铝型材和木块。附带的视觉定位代码可在gibook教程中获得,允许用户直接访问它。这使用户能够快速学习计算机视觉识别和机器人控制,同时促进二次开发。
极大极小算法
极大极小算法是一种常用于双人回合制博弈的决策算法。极大极小算法的主要目标是考虑所有可能的走法及其潜在结果,确定棋手的最佳走法。
以下是对极大极小算法工作原理的简化解释:
1. 评估功能:根据玩家位置的优势或劣势为每个可能的移动分配一个值,而负值可能意味着劣势。
2. 递归搜索:在决策树中探索未来的移动,在最大化和最小化参与者之间交替进行。
3. 回溯:将值传回树,最大的玩家选择最高值,最小的玩家选择最低值。
4. 最优移动:树的根表示初始游戏状态,算法选择具有最高值的子节点移动,假设两个玩家都是最优的。
设置项目
1. 设置环境
PIP安装openv -python
PIP安装pymycobot
2. 设定游戏规则
3. 检测ArUco定位
该函数识别图像中的2个ArUco标记,并计算每个标记的中心坐标(X, Y)。然后返回得到的X和Y坐标以供进一步使用,例如坐标转换、相机校准或机器人定位。
4. 绘制游戏板
5. 颜色检测
这部分代码通过HSV颜色规则区分背景和棋子,得到棋子的中心坐标。
6. 与摄像头集成
这部分代码使用计算机视觉实现了一个实时井字游戏。这款游戏涉及人类玩家和AI。它与摄像机交互,处理帧以检测移动,并相应地更新游戏板。
7、玩井字游戏
总结
本项目展示了如何利用机器人手臂myCobot 280 Pi构建一个人机对抗的项目,突出了其技术能力、互动乐趣和教育价值。
本文编译自hackster.io