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框架。运行时由CCRDSS两个主要的组件构成,方便用户编译、监视、发布以及根据需要构建各种各样的应用程序。

21 CCR

并发和协调运行时(Concurrency and Coordination RuntimeCCR)提供一个高度并发的、面向消息的编程模型,利用强大的消息组织机制替代了锁定、信号量等线程操作。CCR通过提供管理异步操作、处理并发、并行硬件管理以及处理部分错误的编程模型来实现面向服务的应用程序,使得设计低耦合的软件模块和组件成为可能。因此,各模块可以独立的开发并且不需要对它们的运行时环境和其他组件进行过多的假定。这样就不需要在程序设计一开始就考虑处理并发、错误和冲突的机制。它是整个开发平台的核心运行时。

22 DSS

分布式系统软件(Decentralized System ServicesDSS)提供了一个轻量级的面向服务的应用程序模型,融合了传统网络架构的主要特性和一部分网络服务的架构的特性。DSS定义的应用程序模型包括服务状态以及针对服务状态的一系列操作,并且能过提供结构化数据操作、事件通知和构成服务扩展功能(结构图如图1)。DSS的主要目标是提高简单性、互操作性和低耦合性。这使得它特别适合于创建由服务构成的应用程序,而不用考虑服务是运行在同一个节点上的还是在网络上的。因此,基于DSS的应用程序具有很大的灵活性。DSS使用HTTPDSSP作为服务交互的基础。DSSP(Decentralized Software Services Protocol)是一个轻量级的基于SOAP的协议,对结构化数据操作和事件驱动模型提供了很好的支持。DSSP实现对服务的管理和订阅并且提供一个简单的状态驱动的应用程序模型。DSS运行时使用维护运行时环境的方式来管理服务,而且它还提供了像创建服务、登录服务、调试、安全相关以及监视等一系列基础服务。它是基于CCR核心运行时开发的。

 

 

1  服务结构图

 

3 仿真平台的结构

NewNEU足球机器人3D仿真平台由三个基本的服务构成,运行在一个DSS结点上,DSS结点是服务的装载环境,为服务的创建和删除的提供了支持。三个服务通过传递消息实现通讯。NewNEU足球机器人3D仿真平台的架构图见图2

 

31 仿真引擎服务

仿真引擎服务是Microsoft Robotics Studio提供的一个标准服务之一,主要负责渲染实体同时处理物理引擎的仿真时间,它跟踪整个仿真环境的状态并且提供为仿真提供访问前端。仿真引擎服务的主要功能是维护可视化的仿真环境,它以物理引擎和渲染引擎为基础。

311 物理引擎

Microsoft Robotics Studio SDK采用Ageia公司的Ageia PhysX作为物理引擎。PhysX技术现已遍布PCPS3Xbox 360Wii等各大平台,广泛应用在科研和游戏领域。Ageia PhysX严格的实体动态模型具有很高的仿真度,充分体现了坐标系统、位置、速度、加速度、动量、力、旋转运动、能量、摩擦、冲激力、碰撞、限制等物理理念。碰撞检测完全,碰撞处理准确[10],完全没有以前二维模拟平台中经常出现的机器人叠加、卡死等现象,保证了物理实体的物理仿真度。

312 渲染引擎

Microsoft Robotics Studio SDK的渲染引擎是基于微软XNA框架建立的。渲染引擎根据3D顶点模型构建渲染实体,并实时渲染,使仿真环境呈现完全真实的视觉效果。

32 NewNEU仿真服务

NewNEU仿真服务是NewNEU足球机器人3D仿真平台的主运行服务,主要功能是仿真引擎服务和人机交互服务的消息处理、维护仿真环境的状态、保证比赛的时序和逻辑等。NewNEU仿真服务主要包括以下模块:

321 自动裁判模块

自动裁判模块根据仿真环境中的实时状态数据,依据比赛规则裁定简单的犯规,裁决进球等。

322 回放模块

回放模块主要功能是实现实时在线回放。反复再现比赛情况,使裁判有充分时间观察某一段时间的比赛,最大限度地保证比赛公平合理地进行,同时也可以多次欣赏比赛的精彩瞬间[11]

323 时序控制模块

时序控制模块主要功能是保障比赛高效有序的运行。控制比赛的运行,停止以及适时调用自动裁判模块处理复杂的情况。

324 决策模块

决策模块主要功能是调用外部的决策文件(DLL)实现决策控制。在实时采集仿真环境中足球机器人和足球的位姿信息后,调用决策文件,用返回的控制量控制足球机器人比赛。

33 人机交互服务

人机交互服务是足球机器人仿真平台的主控制服务,主要功能是显示比赛的运行情况、设置比赛的相关参数以及足球机器人的测试等。人机交互服务主要包括以下模块:

331 2D全景视图模块

2D全景视图模块根据比赛的状态数据,同步显示平面的比赛示意图,使用户能够以全局和队形的角度去观看比赛。

332机器人测试模块

机器人测试模块主要是实现足球机器人运动测试,保证每个足球机器人能够响应控制指令,同时也可以用来调节控制参数。NewNEU足球机器人3D仿真平台支持手柄控制。

333比赛设置模块

比赛设置模块实现对比赛的时间、比赛模式等自定义设置。同时为犯规等特殊情况提供开球方式的选择,NewNEU足球机器人3D仿真平台支持手动设置队形。

334 状态显示模块

状态显示模块将比赛运行时间、比分以及比赛状态等显示在控制面板中。