浙江省第四届机器人竞赛——足球机器人竞赛4V4对抗赛一等奖方案(附开源代码)

   日期:2020-11-10     浏览:86    评论:0    
核心提示:足球机器人竞赛4V4对抗赛对抗方案守门员前锋中场后卫守门员前锋中场后卫

足球机器人竞赛4V4对抗赛对抗方案

  • 总体方案
  • 开源代码结构概述
    • skill层
    • task层
  • 守门员
  • 前锋
    • 前锋的行走速度要足够快
    • 前锋接球要足够准
  • 中场and后卫
    • 战术技巧
  • 待改善的地方

先贴上开源代码吧,点个star再走啦~
链接: https://github.com/LittleGenius12138/robor_soccer_4V4.

足球机器人竞赛4V4对抗赛实用规则讲解:

链接: https://blog.csdn.net/weixin_43454320/article/details/109310295.

总体方案

我把包括守门员在内所有小车的skill都重新再写了一遍,所以我的所有方案都是基于自己写的skill来实现的,如果用官方的skill的话,效果不理想哦
我们总体的方案就是让前锋在外面进攻,后卫和中场就在紧贴着禁区线和守门员一起进行防守,这个方案最大程度的保证了我方的安全性,但是也需要前锋动作写的非常好,这样才能进球,事实证明我方的前锋非常稳健和具有进攻性。
至于战术,我就是比较简单粗暴了,如果是我方直接球或者间接球进攻的话我们就是直接前锋猛冲射门,如果是我方防守的话,我们会等对方开球之后直接转换成进攻模式。

开源代码结构概述

skill层



task层


守门员

我的守门员相对于官方的守门员来说就是增加了一种叫做==最小二乘法==的算法,这个算法能做到将一些离散的点拟合成直线或者曲线,所以我的守门员思路就是:采集几帧里球的位置,然后以球场中心作为原点建立坐标系,并且根据之前采集到的几帧球的位置拟合出一条直线,根据直线的交点来预判出守门员的防守点

前锋

我的前锋是我整个战术最关键的地方,也是唯一的进球机会,我的前锋需要满足以下几个条件:

前锋的行走速度要足够快

我的犀利的前锋是我能斩获省一的关键之一。当把小车的目标点设置在距离小球dis距离的时候小车就会以很快的速度拿球,这是我们前锋的关键点1
图形解释如下图:

拿到球之后就需要射门,我设计的动作是这样的:首先判断小车是否拿到了球,如果拿到球了之后将小车的目标点设为球门,在这个过程中判断是否可以射门,满足射门条件就可以射门了。这里也有一个小技巧,不要把目标点设为球门中点,设置为偏离中点一定距离,这样不但可以减小小车转向的幅度,而且以刁钻的角度射门更加难以防守。这就是我的前锋的关键点2

前锋接球要足够准

我现在的前锋还是有一些缺陷的,就是对于赛场上的一些状况判断不够完善,希望后浪可以在我这个开源的基础上进行改进。目前我的方案:只要球在场上运动,前锋就根据拟合出来的曲线接球,或者是直接根据小球的实时坐标去追球,拟合的方案就是用前面讲的最小二乘法,追球的方法和追到球之后的操作在上一部分已经描述过了。

中场and后卫

我的中场和后卫挺憨的,开了球之后中场和后卫就紧贴禁区线进行防守。但是,我获胜的另外一个关键点也是在这里哦~
但其实也算是一个投机取巧的办法吧,那就是一般情况下,敌方小车开球,官方的防守位置都是在离球50cm左右的地方,这样敌方小车挑球就可以过人,因此挑射发球也正是大部分人采取的方案。我把小车的防守位置拉到了100cm甚至150cm的地方,这样敌方小车不论是平射还是挑射都是直接把球送到我的前锋手里,然后我方犀利的前锋拿球射门,美滋滋~

战术技巧

在实际比赛中,除了我的前锋,最容易得分的就是角球了,因此我的战术就是尽量制造出更多的角球,然后通过角球来得分,那么角球的防守和进攻就很重要了。我有一个sao想法,就是多写几个角球进攻的脚本,然后在task层的lua语言里随机调用这些脚本动作,这样敌方就很难进行防守了。那么防守的话要么用算法来判断敌方可能的进攻方案,要么写好几套防守方案,到时候在比赛的时候可以申请暂停然后换上克制敌方角球进攻的防守方案。

待改善的地方

赛后我总结了一些我的不足和待改进的地方,希望后浪们可以在我的开源基础上进一步加强,提高足球机器人的高度并将他的魅力带给更多的人,有问题的话欢迎在评论区提出哦。


附在最后

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服