机器人足球比赛综合了机器人技术、机电一体化、无线通信、图像处理、计算机技术等多学科,是一门复杂的人工智能研究领域。但真实足球机器人比赛所需的硬件设备价格较为昂贵,为了降低机器人足球比赛领域的科研成本,开发足球机器人仿真平台具有十分重要的意义。此外,随着机器人足球运动的快速发展,模拟机器人足球比赛也成为一个独立的分支,是目前参与人数最多的机器人足球比赛类别[1]。
目前用于仿真比赛的仿真平台主要有组委会提供的标准系统[2][3][4]和国际机器人足球联合会(FIRA)组织的仿真比赛所采用的3D Robot[5][6]。在该平台下,各参赛队编写自己的客户端程序,以客户端/服务器方式进行比赛。3D Robot采用读取外部决策文件的方式,模拟实际参加比赛的足球运动员。现有的仿真平台普遍存在仅提供固定视角[7]、无法模拟3D碰撞效果、相同的决策文件往往得到相似的仿真结果[8]等缺点。本文介绍的足球机器人3D仿真平台是基于自行开发的新型足球机器人3D仿真平台,提供3D可变视角仿真环境和2D全景视图,3D碰撞效果逼真,对真实比赛的模拟程度较高。
本文首先简单介绍了开发平台,然后讨论了足球机器人3D仿真平台的组成和功能,最后给出了仿真实例。
2 开发平台介绍[9]
足球机器人3D仿真平台基于SDK1.5开发,充分利用开发平台提供的仿真引擎服务,是一个支持多种机器人硬件平台的机器人开发环境,包含基于REST的轻量级、面向服务的运行时以及一系列可视化组件和仿真工具。运行时同时支持.NET 和精简版.NET 。运行时由CCR和DSS两个主要组件组成,方便用户根据需要编写、监控、发布和构建各种应用程序。
2.1 连续循环
并发与协调运行时(CCR)提供了一种高度并发的、面向消息的编程模型,用强大的消息组织机制取代了锁定和信号量等线程操作。CCR 通过提供管理异步操作、处理并发、并行硬件管理和处理一些错误的编程模型来实现面向服务的应用程序,从而可以设计低耦合的软件模块和组件。因此,每个模块都可以独立开发,不需要对其运行环境和其他组件做太多的假设。这样,在程序设计之初就不需要考虑处理并发、错误和冲突的机制。它是整个开发平台的核心运行时。
2.2 决策支持系统
分布式系统软件(DSS)提供了一种轻量级的面向服务的应用程序模型,该模型融合了传统网络架构的主要特征和网络服务架构的一些特征。DSS定义的应用程序模型包括服务状态以及针对服务状态的一系列操作,并可以提供结构化数据操作、事件通知和服务扩展功能(结构图如图1所示)。DSS的主要目标是提高简单性、互操作性和低耦合性。这使得它特别适合创建由服务组成的应用程序,而不管这些服务是运行在同一个节点上还是运行在网络上。因此,基于DSS的应用程序具有很大的灵活性。DSS使用HTTP和DSSP作为服务交互的基础。DSSP()是一种基于SOAP的轻量级协议,对结构化数据操作和事件驱动模型提供了良好的支持。DSSP实现了服务管理和订阅,提供了简单的状态驱动的应用程序模型。DSS运行时以维护运行时环境的方式管理服务,同时还提供了创建服务、日志服务、调试、安全相关和监控等一系列基础服务。 它是基于CCR核心运行时开发的。
图1 服务结构图
3 仿真平台结构
足球机器人3D仿真平台由三个基础服务组成,运行在DSS节点上。DSS节点是服务的加载环境,为服务的创建和删除提供支持。三个服务之间通过传递消息进行通信。足球机器人3D仿真平台架构图如图2所示。
3.1 仿真引擎服务
仿真引擎服务是提供的标准服务之一,主要负责渲染实体、处理物理引擎的仿真时间,跟踪整个仿真环境的状态,为仿真提供访问前端。仿真引擎服务的主要功能是维护一个可视化的仿真环境,该环境基于物理引擎和渲染引擎。
3.1.1 物理引擎
SDK采用Ageia PhysX作为物理引擎。PhysX技术目前已在PC、PS3、Xbox 360、Wii等主流平台上实现,在科研、游戏等领域应用广泛。Ageia PhysX严格的实体动力学模型,仿真程度高,充分体现了坐标系、位置、速度、加速度、动量、力、旋转运动、能量、摩擦、冲量、碰撞、约束等物理概念,碰撞检测完备,碰撞处理准确[10],不存在以往二维仿真平台常见的机器人重叠、卡顿等现象,保证了物理实体的物理仿真。
3.1.2 渲染引擎
SDK的渲染引擎基于微软XNA框架,基于3D顶点模型构建渲染实体并实时渲染,使得仿真环境呈现出完全真实的视觉效果。
3.2 模拟服务
仿真服务是足球机器人3D仿真平台的主要运行服务,其主要功能为仿真引擎服务和人机交互服务的消息处理、维护仿真环境的状态、保证比赛的时序和逻辑性。仿真服务主要包括以下几个模块:
3.2.1 自动裁判模块
自动裁判模块根据模拟环境中的实时状态数据和比赛规则判断简单犯规、进球等。
3.2.2 播放模块
回放模块主要功能是实现实时在线回放,可以反复重现比赛场面,让裁判在一定时间段内有充足的时间观察比赛,最大限度保证比赛的公平性和合理性,同时裁判也能多次欣赏比赛中的精彩瞬间[11]。
3.2.3 时序控制模块
计时控制模块主要功能是保证比赛高效、有序进行,控制比赛的运行、停止,调用自动裁判模块及时处理复杂情况。
3.2.4 决策模块
决策模块主要功能是调用外部决策文件(DLL)实现决策控制,实时采集仿真环境中足球机器人及足球的位置信息后,调用决策文件并根据返回的控制值控制足球机器人比赛。
3.3 人机交互服务
人机交互服务是足球机器人仿真平台的主控服务,主要功能为显示比赛运行状态、设置比赛相关参数、对足球机器人进行测试等。人机交互服务主要包含以下几个模块:
3.3.1 2D全景模块
2D全景模块根据比赛状态数据,同步显示比赛二维示意图,方便用户以全局和阵型视角观看比赛。
3.3.2 机器人测试模块
机器人测试模块主要用于实现足球机器人的运动测试,确保各个足球机器人能够响应控制指令,并可以用于调整控制参数。足球机器人3D仿真平台支持手柄控制。
3.3.3 比赛设置模块
比赛设置模块可对比赛时间、比赛模式等进行自定义设置,并提供犯规等特殊情况的开球方式选项,足球机器人3D仿真平台支持手动阵型设置。
3.3.4 状态显示模块
状态显示模块在控制面板上显示游戏运行时间、成绩、游戏状态。
4. 可扩展功能
足球机器人3D仿真平台主要功能有:3D/2D实时显示、4s实时回放、裁判逻辑、人机交互等。开发过程中预留的开发接口使得仿真平台的扩展性非常强。待扩展的高级功能有:
4.1 智能裁判
模拟比赛速度相对较快,且没有像真实足球比赛那样有专业的国际裁判,智能裁判功能可以减少人工判断,减少人为干预,有效防止误判、错误判断,让比赛更加公平合理。
4.2 游戏视频
记录整个游戏过程可以方便双方根据需要重播游戏,更好地分析决策,从而改进算法的缺陷。
4.3 自动开球
在模拟比赛过程中,进球或犯规后必须开球,足球机器人需要手动重新定位,手动方式不仅耗时长,而且不准确,使用决策文件自动形成开球阵型会是一个更好的方法。
4.4 动态加载决策DLL
无需重新启动仿真环境,可以根据需要实时替换决策DLL,方便用户操作和比较决策结果[12]。
4.5 实时引擎支持
使仿真环境能够与高级语言进行实时、动态数据的交互,充分发挥科学计算与算法开发的优势,将数据分析与仿真融入到仿真环境中。
4.6 在环仿真
模拟环境中的物理对象与现实游戏中的物理实体建立一一对应关系,使得对其中一个进行的操作可以对另一个产生相同的效果,建立环境与现实环境之间的联系。
5 仿真示例
5.1 仿真-实体混合建模
混合建模是指在仿真环境中,存在物理模型、结构模型和渲染模型三种相应的模型,分别用于实现物理碰撞检测、形状构建和视觉可视化等功能。足球机器人三维仿真平台中的仿真实体完全模拟了实际足球机器人与比赛场地的大小、比例关系,通过调整摩擦力、回弹、线性阻尼、能耗等物理参数可以使仿真平台具有较高的仿真度。仿真平台中足球机器人的渲染模型(如图3所示)采用3D装配模型,结构模型由渲染模型生成(如图4所示),物理模型采用自定义差分驱动实体模拟(如图5所示)。
图3 3D渲染模型
图4 结构模型
图5 物理模型
5.2 控制面板
足球机器人3D仿真平台通过可视化窗口与用户交互,实现游戏控制设置、2D全景显示、裁判功能(如图6所示)。
图 6 控制面板
图7 仿真环境
5.3 3D可变视角模拟环境
足球机器人3D仿真平台提供了3D视觉仿真环境(如图6所示),并且可以根据需要调整视角,以达到最佳视觉效果(图7、图8)。
图 8 鸟瞰图
图 9 侧视图
六,结论
本文分析了现有足球机器人仿真平台的不足,主要从结构和功能角度对足球机器人3D仿真平台进行分析。足球机器人3D仿真平台除了无线通信和视觉处理外,还能模拟足球机器人比赛的处理过程,集中模拟真实比赛中的决策系统,具有适应性强、可扩展性好、简洁高效的特点,为足球机器人系统的研究提供了良好的实验平台。
参考:
[1]洪炳荣,韩学东.机器人足球比赛仿真系统.计算机应用与软件[J],2003,2(4):3-5.
[2] 孙鹏,陈小平.小型机器人仿真系统[J].计算机仿真,2006,23(4):128-130.
[3] 韩勇,刘国栋.小型足球机器人建模与仿真平台研究[J].计算机仿真,2007,24(1):154-156.
[4]郭业军,熊荣.机器人足球仿真游戏的开发与设计.计算机工程与应用[J],2003,29(2):146-148.
[5] 张长斌. 机器人足球仿真系统研究[J]. 江西理工大学学报, 2007, 28(4): 75-78.
[6]魏冠南,王大全.虚拟机器人足球竞赛平台[J].杭州电气电子技术学院学报,2002,23(4):51-53.
[7]杨志雄.2D足球比赛机器人仿真研究[D].安徽:安徽大学计算机应用技术,2006.
[8]张英霞.机器人足球仿真比赛系统结构与设计研究[D].广东:广东工业控制理论与控制工程,2004.
[9] .SDK1.5文档,2007年.
[10] Ageia。Ageia PhysX SDK2.7.2 文档,2007 年。
[11]薛方正.足球机器人对抗策略研究及仿真系统开发[D].沈阳:东北大学模式识别与智能系统,2005.
[12]黄小铁.机器人足球仿真比赛策略研究与实现[D].南京:南京理工大学计算机应用技术,2006.