前言
近期我省举办的机器人大赛刚刚落下帷幕,有幸参与其中的NAO机器人点球比赛,凭借着较好的运气取得了吉林省第一名。本文将从比赛的各个方面讲述所用程序及策略,所用程序代码如有不足之处,以及更好的逻辑优化,欢迎大家在评论区留言。
本文章不提供源代码,仅提供部分核心代码供大家交流学习。
完整代码链接:
https://download.csdn.net/download/Clearlove7_/13701931
NAO机器人点球比赛简介
简而言之,就是队伍分别担任进攻方和防守方,进攻方共三次机会,每次进球记一分,最后以得分数判别胜负。进攻方要求只能触球一次;守方无限制。并要求机器人具备识别足球的功能。
使用环境
- python2.7(为了适应NAOqi库)
- NAOqi(本文不再过多介绍,更多信息请查阅我的前几篇文章)
- opencv
策略分析
- 由于比赛使用的是8mm的绿色草坪,NAO会由于草坪出现走路不稳的情况,我们采用了使用海报纸将nao机器人的脚包起来,降低机器人脚部与地面的摩擦,使机器人能在草坪上正常移动。
- 第二点,也是最重要的一点,所有的一切都是建立在让机器人成功识别的前提下进行的 。这里我们使用的是opencv中的霍夫圆检测搭配naoqi中的“ALVideoDevice”模块来调用nao的摄像头。这一点会在后面详细说明。
- 在机器人识别成功并且走到球附近后,根据球的相对位置,控制机器人进行微调,然后调用Choregraphe中预设好踢球的程序,完成一整套进攻的流程。
- 防守策略目前是使用Choregraphe直接控制机器人,根据场上局势控制机器人左、右走。