仿真机器人足球编程入门课程总结

仿真机器人足球编程入门课程总结 ——仿真机器人足球之我见 随着社会的发展和科技的进步,越来越多的新事物像雨后春笋般冒了出来,整个世界日新月异,社会的发展速度令人瞠目结舌。首先出现了计算机,随着计算机技术的不断发展,计算机技术运用到了人们社会生活的各个方面,随之就出现了所谓的“机器人”,用专业术语来说就叫做“人工智能”,随着人工智能的不断发展,我们所听到见到的机器人的种类也越来越多,有机器人医生,机器人修理工等等,而IBM的“深蓝”就是其中的典型代表。而这些传统的人工智能是与仿真机器人足球有着本质的区别的,就拿计算机国际象棋与仿真机器人足球来比吧:国际象棋是在静态环境中在有限的棋盘上格子里进行回合制的对抗,而且其获得的信息是全局的、完整、可靠的,由一个“大脑”进行集中控制;足球则是在动态的环境中在球场上无限个点上的进行实时的对抗,而且其信息是局部的、不完整的、不可靠的,若干名球员是分布式控制的。由此可见,尽管计算机国际象棋和机器人足球都是促进计算机技术和人工智能的发展,但是有必要在计算机国际象棋的目标实现后提出robocup,因为每个足球机器人必须是一个能自主行动且与队友合作的智能体,一支球队则是一个内部协调的多智能体系统,而"深蓝"本质上只是一个能在几分钟内分析600亿个棋局的搜索程序。通过提出robocup,可以推动机器人学,计算机控制,机器视觉、机器识别,实时分布计算,机器学习,自主多智能体等各项技术的发展,在计算机国际象棋的基础上更进一步促进机器人
墨水生产
学和人工智能技术的发展。
同时,机器人足球与FIFA、实况中电脑控制的球员的智能也不一样。电脑足球游戏是由人实时对一支球队进行集中控制,由人根据场上形势作出判断,并通过人的大脑作出决策,并通过游戏控制使球员执行作出的决策。其从本质上来说就相当于人在现实中踢球,只不过是以电脑为载体,从控制个人变为控制球队,其与人工智能有着天壤之别,robocup是由球员根据程序对情况进行实时决策,并能与队友合作,自主进行机器学习,球队则是一个内部协调的多智能体系统。可见,机器人足球与电脑足球游戏两者判若鸿沟。
水封井机器人足球比赛所使用的机器人都需要进行成千上万次的调试,需要对不同的算法和程序进行测试,从中挑选出最优的程序,而机器人硬件是昂贵的,测试过程难免会对机器人造成损失,为了使机器人足球更快的发展,就需要使用仿真技术,这样可以不断地调试程序,寻出最优算法,最终运用于机器人,从而带来了很大的方便,避免了不必要的损失,使机器人足球更快的发展。可见,仿真机器人足球是机器人足球的基础,而我们这门课“仿真机器人足球编程入门”又是这基础中的基础。
仿真机器人足球是在仿真机器人足球平台上进行调试的,仿真组的比赛就是在平台上进行的。仿真平台由Server、Client、Monitor 和Logplayer组成,通过udp/ip协议进行通讯,在仿真机器人足球平台上,不仅有球员、教练、裁判、比赛环境的仿真,而且还有对球员的感知和行为的仿真、物体运动的仿真,分为server的行为模型
新型高效台车式退火炉
感知模型和运动模型,另外,还进行了实时的仿真,server的时序特性用离散仿真实时的运动。Server的行为模型包括转身、转头、踢球、加速、体力、守门员扑球和场上移动模型,这些模型都考虑到了实际中可能出现的情况,并引入了误差因素,达到了仿真的效果。例如体力模型就考虑到了体力的消耗和体力的恢复,当体力值低于一定值时,球员的恢复能力也相对减弱,体力值也影响到其它动作的执行效果。另外,踢球和转身模型中都引入了仿真误差,以达到仿真现实足球运动的效果。Server感知模型包括视觉感知信息,身体感知信息和听觉感知信息,其中为了更好的仿真也引入了一定的误差,而相对来说听觉信息最不可靠,身体感知信息则比较准确,这与现实情况正好相符合。Server运动模型中,物体的运动是通过一个简单的计算仿真的。其中引入了噪声和风力的影响,还引入了运动的衰减参数,以期达到更好的仿真效果。仿真机器人足球由于仿真所以信息是实时的、局部的、不完整的、不可靠的,与传统人工智能的信息有着本质的区别,从而导致了其与传统人工智能的区别。
在仿真机器人足球平台基础上,我们建立机器人足球球员要考虑到server的特性对client设计的影响:Server使用离散的时间周期,Server与client使用Udp/Ip协议通讯,从Server获得的信息不完整不精确。这些特性要求我们建立的球员能解决以下问题:尽快接收server信息,及时发送球员命令,需要维护记忆全局信息进行决策,在缺乏最新信息的情况下进行决策。尽快接收server信息,及时发送球员命令,尽可能多的时间用来决策,要求我们使用多线程
密钥索引机制,anytime决策搜索算法。维护记忆全局信息进行决策,在缺乏最新信息的情况下进行决策,要求我们使用WM维护全局信息(涉及根据感知更新和根据记忆推断)。
另外,为了解决server仿真的问题而增加OptionInfo类(MemOption文件),保存Server信息,client使用参数,球队使用参数等信息;修改GetOption函数的实现,方便参数的使用;增加BaseCommand类,用于生成球员发送到server的命令,用于对server 行为模型问题的处理。根据server的感知模型对感知信息进行分析,目前只能分析server的视觉感知信息。WEParser类用来解析server 信息(parser.*),PositionInfo类用来保存场上所有物体位置信息(世界模型)(MemPosition.*),RelativePosition暂时只用来保存一个物体的相对位置信息(MemPosition.*)。
根据以上分析,一个机器人足球员应包含以下几个主要部分,而其中又以世界模型(World Model)最为重要和复杂,再根据它们之间的联系画出球员的结构框图如下:
下面,我们就以WESource代码中的世界模型来具体分析一下世界模型的组成和各组成部分的主要内容和功能。世界模型是球员的核心部分,需要维护大量信息,世界模型需要维护的信息包括Server相关和使用的参数,client使用参数,球队使用参数等信息;球员本身的参数;比赛时间,场上比分,所属球队等参数;场上所有物体的信息;根据基本位置、速度信息等生成的用来进行高层动作决策的数据、函数等,以及球队阵型、战术,球员配合等使用信息。这些信息种类繁多,如果仅使用一个类,则过于庞大,难以维护;而用多个类的组合来实现世界模型,虽然便于维护,但是使用起来很不方便。所以,我们就引进C++类的继承来解决这一问题。WESourse世界模型由Object和Memory两大类组成,Object类用来维护场上物体的信息,分为Stationary Object和Mobile Object两大部分,而Mobile Object又包含Ball Object和Player Object两部分。Object类的继承关系如下图所示:
床铰其中,Stationary Object类维护场上静止物体的信息,例如场上各个区域的位置(如禁区,角球区等),标志、边线等位置。而Mobile Object类维护场上运动物体的信息,比如球的位置速度等信息,包括队友和对手共21个球员的信息,Ball Object类和Player Object 类分别维护上述两者。Memory类用来进行记忆,Memory类包括Option Info,Player Info,Position Info,Action Info,Formation Info 和WE Memory,它们之间的继承关系如下图:
其中,Option Info类用来保存Server使用参数,client使用参数,球队使用参数等信息。Player Info类用来保存Client本身速度,体力等参数。 Position Info类用来保存球员自身的位置参数。Action Info类用来保存球员自身所执行的动作信息。Formation Info 类用来保存球队阵型、战术,球员配合等实用信息。WE Memory类用来保存比赛时间,场上比分,所属球队等参数。
仅仅了解世界模型的组成及各部分的主要内容和功能对于这门课来说是远远不够的,世界模型只是把球员获得的信息保存下来并时时更新,球员的决策与行动还需要更复杂的程序和算法来实现,在这里我们不展开讨论。这些程序的设计要建立在精通C++的基础上,而我在学习时对C++的基本都不是很掌握,基本上用的都是C,这样不仅程序太繁琐,而且容易出错,也没有利用到C++面向对象程序设计的特点,所以暑假回去要好好学习C++,这样才能更好的学习仿真机器人足球编程。
大规模定制

本文发布于:2024-09-23 07:29:11,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/251111.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信息   机器人   球员   足球   模型
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议