摘 要: 随着仿真机器人在国内国外迅速发展,对于仿真机器人的设计与提高也受到更多人的重视。提出了RoboCup机器人足球仿真中的关键性部分——基础架构设计,同时介绍了仿真机器人的系统环境、代理环境等。为了提高机器人的工作效率,着重讨论了机器人对于足球的定位和控球问题。
关键词: 机器人足球;类人机器人;定位
0 引言
RoboCup 3D类人仿真比赛[1]是一项类人机器人足球赛,需要极其逼近真实的比赛环境,并且仿真机器人能够模拟人的动作。
参赛的机器人必须是参赛队伍自主研制的、具有人的基本动作的机器人,其对外部信息的获取只能通过头部的摄像头拍摄图片,经处理再传给机器人。比赛的场地是450 cm×300 cm,双方分为蓝方(机器人和球门蓝色)和橙方(机器人和球门橙色),标准的Nao机器人高57 cm,重4.5 kg,拥有22个自由度:每条腿6个,每条手臂4个,颈部2个,如图1所示。

最新的赛制加入了异构要求,需要使用三种不同类型的机器人,它们的区别在于手和腿的长短各不相同,并且出现了一种拥有脚趾的机器人,更加符合现实世界里的比赛情况,但也对机器人建模、行为模拟以及参数调整提出了更高的要求。
RoboCup类人组比赛是一项代表机器人发展最高水平的仿人机器人竞技比赛。机器人对外部环境的感知只能通过位于机器人头部的可见光波段下的视觉传感器来进行,因此,RoboCup类人组比赛是一项全自主的类人足球机器人比赛。
1 仿真系统描述
比赛要求在官方提供的模拟器SimSpark中进行比赛和模拟,如图2所示。

SimSpark使用的是一种能够逼真模拟和检测刚体运动中碰撞和摩擦的开源动态引擎库(ODE)。该库在2010年添加了视觉遮挡和声音传感器。这个模拟器平台在不需要机器人硬件成本投资的情况下促进了在复杂的仿真环境中低级类人机器人和多智能体系统的仿真控制的研究,为智能体有效地在繁重的训练中学习基础解决方案提供了可能。
SimSpark模拟器是仿真过程的服务主机,每个参赛队的机器人通过TCP端口连接到主机。各队伍的11个机器人进程并行运行并且除了通过一个有限的数据通道通信外不能随意地相互通信。在模拟过程中,客户机向服务器每隔20 ms发送一次力矩命令,但是每60 ms接受一次视频信息。
在SimSpark中,客户机不能够看见其他的机器人、足球和在这20×30场地上的任何标记。球场上有8个分布在球场边角和球门上的机器人可辨识的标记,它们的坐标对用户开放。
类人仿真系统[2]由Server、Monitor和Agent 3个主要部分组成[3]。
Server是能使不同的球队进行足球比赛的系统,比赛以C/S结构进行,要求球队的开发工具支持UDP/TCP连接(目前仅使用TCP协议),对实现没有任何限制。客户端每个Agent都是独立的进程,通过给定的端口与Server连接。服务器启动及比赛流程如图3所示。

Monitor是一个可视化的工具,显示虚拟场地及比赛过程。
RoboCup 3D类人仿真比赛[4]采用的是11V11的模式。当Agent和Server通过给定的端口连接后,所有的信息都通过该端口传递,各Agent从Server接收感知信息,感知信息包括其他球员、场地标志等的相对位置以及其他比赛状态信息,球员对收到的信息进行分析处理并做出下一个动作,将该动作的请求发送给Server,Server接收到这些消息后执行请求并相应地更新环境,然后将感知信息发回每个Agent,如此反复,直到比赛结束。
2 代理体系结构
代理客户端运行的“感觉”、“思考”和“行为”在同一个模拟周期序列。在“感觉”阶段,代理从SimSpark服务器接收传感器信息,对自身和其他物体进行定位,构建世界模型。同时,它能根据受力感知器读数,决定如果落下或者检测到任何跌倒,它立即执行“起身”行为。否则,代理去“思考”的阶段。“思考”阶段,对机器人进行环境分析,并决定做什么。在本战术中,玩家的角色(除了守门员是固定的球员之一)是动态定位和分配角色的。这一阶段也决定了高层次的行为,如在哪个方向,阻止或踢球,并在移动或运球。
“行为”阶段执行两种类型的行动:简单的行为和行走。简单的动作,如正从地上爬起来、守门员挡球踢,由关节角度序列进行代理设置。一个有限自动机的目的是监测行动和处理异常,使用PID控制器来计算各关节所需要的扭矩。基于在线模式所描述的行走轨迹,按照步长和转角的脚步规划计算,然后使用逆运动学获得相应的关节角度。
3 定位
3.1 参数要求
SimSpark服务器的简化视觉系统提供的相机和物体之间的相对位置在球坐标系如图4所示,因此不需要图像处理。然而,机器人只能看到120°范围内的事物,所以需要处理与视觉的限制方法来实例化。
仿人机器人自定位方法估计和局部坐标方向的位置v相对于世界坐标系的w(参见图4)[5]。这个问题涉及至少6个配置参数
,很难用有限的里程计和传感器的运动模型建立的关系。同时,大多数时候,机器人实际上定位的要求是当它直立行走在平坦的表面和髋关节被限制在一个水平面,因此,
(高度、滚动和俯仰)是在一个小范围的界。所以,在总体上机器人只需要预测二维位置(x,y)。

3.2 3D倒立摆
如图5所示,把踝关节作为基准坐标P0=(x0,y0,z0),脚关节到脚边缘距离为La、Lb、Lc和Ld。质心位置为Pcog=[xcog,ycog,zcog]T,ZMP为Pzmp=[xzmp,yzmp,zzmp]T。根据ZMP的定义,当只考虑单腿支撑,ZMP是在脚的中心,所以机器人的稳定性是最好的。在获取ZMP的位置之后[5],通过行走参数和相应的COG位置,得到计算单位。然后在腰部承担相对质心的位置不变,并直接获得腰位置。最后,通过把整个腿关节角度的运动学逆解,得到脚和腰部的位置,进而计算脚的轨迹,使其准时到达所需位置。
4 控球决策
机器人足球的数目从2010年的6个变为2011年的9个,现在是11个,这加重了团队合作的重要性。尽管增加了机器人的数目,但是控球的机器人只有一个。到目前为止,机器人之间的远距离传球对大多数队来说还是不现实的,带球者对球的控制才是赢球的关键。
在模型中,运球前进的人是被称为英雄的角色,在竞赛中承担着最重的负担。在策略中,代理首先根据球来选择一个编队,然后选择一个英雄。代理的视角是受限制的,每个代理感知自我和其他球员的位置存在一定的偏差,多个英雄可能会出现在同一时间,造成混乱的碰撞球,这给控球带来了负面影响。为了解决这个问题,采用投票的方法选择最好的英雄,使用通信系统同步每个代理的选择(因为它有时间延迟)。在通信系统中,代理不能100%确定自己的选择,给每个投票一个权重来描述一个概率值(0,1)。
当英雄在运球时,确保其他球员保持优势地位,协助攻击。每个角色的分配(或位置)根据机器人的位置形成相应的编队。与此同时,也有其他同步角色在待定中,以保持攻击的顺序,来防止潜在的碰撞的风险[6]。
在这里,使用以下标准选择英雄:(1)球员是否下降;(2)球是否可见的球员;(3)球员与球的距离;(4)球员在球的前面还是后面(球员在球前通常需要额外的时间转身);(5)球员是否是守门员(竞争规则规定守门员必须第一);(6)这一位运动员在过去的周期是否是英雄。
5 结论
建立类人机器人,从底层控制优化和学习问题到高层决策都涉及广泛的知识。同时,在竞赛中随着模拟实时性要求越来越高,必须限制算法的计算复杂度。在高动态环境噪声环境下,使用概率方法准确定位机器人。设计一个动态脚步跟随消耗少量计算能力和层次决策机制来实现球员之间的有效合作。
机器人个体的行为,尤其是行走技能,仍将是引导Robocup3D的主要因素。以后的工作重点是着重提高机器人行动的控制和行走的稳定性,同时充分利用异构机器人的优势。
参考文献
[1] 舒文杰,耿丽娜,郑志强.RoboCup仿真研究[J].系统仿真学报,2004,16(10):2220-2222.
[2] 于秀丽,魏世民,廖启征.仿人机器人发展及其技术探索[J].机械工程报,2009,45(3):71-75.
[3] 程显毅,王军,张俊.RoboCup 3D Server分析[J].计算机工程与科学,2006,28(3):119-122,130.
[4] 鲍敦桥.仿真类人机器人设计及高层决策方法的研究[D].合肥:合肥工业大学,2009.
[5] 许元.RoboCup机器人足球赛3D仿真程序设计研究[D].南京:东南大学,2005.
[6] 胡翠娜.RoboCup 3D仿真比赛关键技术的研究[D].赣州:江西理工大学,2007.
