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