当前位置:首页 >> 信息与通信 >>

RoboCup类人仿真足球机器人研究——SEU-RedSun仿真足球机器人队伍设计与实现


东南大学 硕士学位论文 RoboCup类人仿真足球机器人研究——SEU-RedSun仿真足球机器 人队伍设计与实现 姓名:许元 申请学位级别:硕士 专业:控制理论与控制工程 指导教师:孟正大;谈英姿 20080525

摘要

本文主要描述了类人仿真足球机器人队伍——SEU-RedSun的设计与实现。SEU-
RedSun仿真足

球机器人能在RoboCup国际比赛3D仿真组的标准比赛平台上进行足球 比赛。RoboCup标准仿真平台提供了分布式的、实时动态的多机器人环境来进行足球 比赛,其设计充分体现了控制、通讯、传感和人体机能等方面的实际限制,使仿真球 队程序易于转化为硬件机器人的控制软件。

本文设计并实现了SEU-RedSun类人仿真足球机器人,主要完成:
?灵活的、可扩展的框架结构:通过对控制体系结构进行合理的分层,将反应式结 构与上层规划有机结台在一起,按照响应速度要求划分为反应、执行、思考三个 层次,作为三个线程分别实现。 ?完整、精确的世界模型:实现描述仿真足球比赛环境的内部状态及更新内部状态 的算法,弗能根据内部状态来预测未来的环境状态。 ?基于目标的行为产生:以目标为导向实现机器人的行为,使用行为树组织和管理 机器人的行为,通过离线设计和在线生成的方法来实现类人机器人的行为。 ?高效的策略和决笼:针对现状实现了简单实用的策略和决策,并提出基于区域的 理性传球决策。 除此之外,本文还对RoboCup标准的仿真平台作研究和分析,实现了高性能的调试工 具,这对SEU-RedSun类人仿真足球机器人的研究和开发起到至关重要的作用。 目前,SEU-RedSun类人仿真足球机器人已参加过三次国际性比赛:获得2007 RoboCup伊朗公开赛冠军、2007 RoboCup机器人世界杯季军和2007全国机器人足球大 赛暨RoboCup中国公开赛的冠军。

关键词:机器人足球、人工智能、类人机器人

Abstract

This thesis describes the design and development of a humanoid robotic soccer simula— tion team called SEU.RedSun.sEU.RedSun operates in the O最cal RoboCup Soccer simulation system,which provides a fully distributed and real—time multi—robots environment in which two teams of robots play SOCCer,The simulation models many real.world complexities such as noise in obiect movement,noisy sensors and actuators,limited physical abilities and restricted communication,this makes migrating software to the real robot easily, This thesis addresses on the various components that make up the舾U.RedSun robotic
soccer

simulation team,the main contributions include
and complete world



flexible and extensible architecture。

accurate

model.humanoid

robot behaviour based on
an

tarKet.e伍cient deci.
Soccer

sion making.Ultimately,the thesis also contains

introduction

to

RoboCup

simulation

develops some time—saving and high performance debug tools.As such it provides a solid framework which Can serve as a basis for future research in the field of simulated robotic

system.and

At present,SEU-RedSun has participated in three international robotic soccer competi— tions:the team won the champion at RoboCup[ran Open 2007,the 37。place at the at the official RoboCup 2007 world championship,and the champion at RoboCup China Open 2007. Keywords:robotic soccgr,artificial

intelligence,humanoid

robot

插图目录

1.1 2.1
2.2

RoboCup仿真组发展历史和未来“”...................... rcssserver3d的UML类图................... monitorspark界面截图......................



2.3

rcssserver3d各应用程序通过网络互相连接,完成仿真比赛

2.4智能体通过传感器和执行器与环境进行交互‘1........

2.5理想情况下机器人程序与rcssserver3d的交互过程. 2.6 rcssserver3d单线程运行UML序列图........
rcssserver3d多线程运行UML序列图.... 2.8物理仿真引擎工作原理............ 2.9 rcsssewPr3d中的机器人关节”“....... 2.10碰撞检测计算出两个物体接触点‘“’.....+.............. 2.11机器人软、硬件系统结构 (在机器人足球仿真中,机器人的硬件部分由rcssserver3d虚拟实现) 2.12机器人的视觉信息示意图......................... 2.13虚拟足球场中的标志杆的名称和位置.................. 2.14 soccerbot056仿真足球机器人模型......。..........。..
2.7

0, m加¨他”n M

搭拍"船

3 1 3 2 3 3 34
3 5

自项向下设计方法的流程”’......................... RoboCup机器人足球赛进行多机器人系统研究的模型示意图...... SEU-RedSun仿真足球机器人的体系结构.................

SEU-RedSun仿真足球机器人程序的系统实现.............. 网络延时对机器人程序与rcssserver3d的交互的影响..........
思考时间过长对机器人程序与rcssserver3d的交互的影响........

36 37
3 8

SEU-RedSun仿真机器人程序中反应层、执行层和思考层相应线程伪码
SEU-RedSun三个线程交互的UML序列图................ SEU-RedSun仿真足球机器人程序的世界模型.............. 世界模型中的全局举标系∑,.......................

勰凹如孔弭舛"弱

4 l
4 2

4 3 4 4 45 46 4 7 4 8 5 l 5 2
5 3

三维空间中物体的位置和姿态.................。.....
类人机器人刚体连接...........................: 机器人自身定位误差............................ 两个连杆的位置关系............................ 机器人全身部位位置和姿态更新的伪码.................. 内部状态与真实状态进行图形化比较................... 行为必须根据当前状态作出不同的响应

”粥鲫∞∞舛笛牾

复杂的行为通过连接一些子行为来完成
Task类及其了类的UML类图..。.. 用行为树描述踢球过程......... SEU-RedSun正面倒地后起身 SEU-RedSun仰面倒地后起身 双足步行研究的两条途径..

5 4 5 5 5 6 5 7

档船钾∞乳乳记

东南大学硕士学位论文

5.8在线步行控制器的多层结构......................... 5.9步行路径规划................................. 5.10 SEU.RedSun仿真机器人行走路径规划伪码................ 5.11从球门后回到球门前的步行路径规划................,...

5.12跨一步的三个阶段:抬脚、移动、落脚...................
soccerbot056机器人的腿部模型参数定义...,....,....,..,. 5.14在rcssserver3d中训练步行场景....................... 5.15 SEU—RedSun生成的步态........................... 5.16逆运动学摹本算法伪码............................
5.13 5.17

SEU-RedSun仿真机器人步行过程中膝关节角度的目标值和实际轨迹..

5.18用行为树描述踢球过程............................ 5.19 SEU—RedSun仿真机器人走向球准备用右脚踢球.............. 5.20 SEU-RedSun仿真机器人从球门后绕过球门回到球门前..........
5.21 6 1 62 63 64 65 7 1
7 2 7 3

SEU-RedSun仿真机器人完成步行训练场景中的绕杆任务........
SEU-RedSun仿真机器人2 VS.2比赛中使用的简单决策的伪码.. 足球场上的战术区域......................... 基于区域的理性传球决策算法伪码.................

船够舛鲋铬巧弱铂卯鼹船的曲扣

基于区域的理性传球决策的简单例予................
在lOm×lOre范围内进行3 VS.2keepaway测试的场景...... 机器人控制软件调试流程...............,....... SEU-ToolKit的功能模块结构..................... SEU.ToolKit屏幕截图......................... SEU.RedSun机器人图形他用户接口................ Matlab运动学仿真截图...........,............ 仿真自动管理系统生成的数据统计网页...............

以矾∞砸酌

74 75
7 6

的加n记仍仍

表格目录

2.1 2,2
2.3

soccerbot055型与soccerbot056型机器人的主要区别............. 21 soccerbot仿真机器人关节配置.........................22 Soccerbot机器人的物理属性..........................22

rcssserver3d仿真环境的PEAS描述..........…..........27 3.2不同软、硬件环境下的机器人丢失动作的测试比较............. 33
3.1

6.1不同传球决策的平均耗费时间(毫秒)和控球时间(秒) 6.2不同传球算法的全队测试结果.........,.............+.
.........

66 67

8.1 8.2 8.3

SEU-RedSun在2007RoboCup伊朗公开赛中的成绩.............76 SEU-RedSun在2007 RoboCup国际机器人足球锦标赛中的成绩...,.. 77

SEU-RedSun在2007全国机器人足球大赛暨RoboCup中国公开赛中的成绩78

9I

东南大学硕士学位论文

东南大学学位论文独创性声明
本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究
成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经 发表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而 使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确 的说明并表示了谢意。

研究生签名:

、,呷五j

1-一.

日期:

z,oog.岁。略

东南大学学位论文使用授权声明
东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文 的复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档
的内容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借

阅,可以公布(包括刊登)论文的全部或部分内容。论文的公布(包括刊登)授权东
南大学研究生院办理。

研究生签名:—主L导师签名:艇日期:

己。o毛、如6

第一章绪论

机器人足球赛,通俗地说,就是机器人踢足球,人类做观众;丽更深层次地说则是以足球为载 体的前沿高技术对抗,它广泛涉及人工智能、计算机视觉、自动控制、精密仪器、传感和信息等一 系列学科,可以集中反映一个国家在信息和自动化方面的水平和实力。本章1.1描述了类人仿真足球 机器人的研究背景;1.2对类人机器人和仿真足球机器人的研究现状作调查:然后,1.3给出了本课 题的主要研究内容和目标;最后,1.4概括了本文的主要内容。

1.1课题背景
开展机器人足球竞赛的重要性和宗旨是非常明确的,那就是通过世界上最热门的体育运

动——足球来推动人工智能、机器人学和其它相关科研的进展。因为要让机器人踢足球,就必须实
现广阔领域里的技术集成与突破,包括新材料、传感器、人工肌肉、人工智能、智能机器人、高效 电池、能源储存等等。在机器人踢足球这样一个长远目标的激励下必然将有一系列的发明与创新, 而这些高新技术也一定会应用到众多的工业领域,满足广泛的社会需求。如灾难救助、运输、建 筑、空间、无线通信和娱乐生活等等。 机器人足球比赛为人工智能和机器人技术提供一个新的标准问题,是继深蓝计算机战胜人类国 际象棋冠军之后人工智能的又一个热门课题。与人工智能领域以前研究的问题不同,足球机器人致 力于分布式解决方案,而不是集中式控制,而且研究的不仅仅是人工智能相关的传统领域,还包括 机器人技术、社会学、实时任务等研究领域。
1.1.1

RoboCup简介

RoboCup(机器人足球世界杯)是一个国际性的研究和教育组织,它通过提供一个标准问题来 促进人工智能和智能机器人的研究。RoboCup是国际上最具影响的机器人足球赛,有严格的比赛 规则,融趣味性、观赏性、科普性为一体。RoboCup树立了一个远大的、激动人心和人人皆知的目 标,一个全世界人们都可以分享的梦想 “到2050年,建立一支全自主的类人型机器人足球队,战胜人类的足球世界杯冠军
队。”【-】

RoboCup通过提出引人瞩目但又非常困难的挑战,为人工智能和机器人学的研究提供一个标 准问题,各种不同的新思想、新原理和新技术可以通过竞赛得到客观的评价。建造一个会踢足球的 机器人本身并不能产生巨大的社会和经济影响,但是当这个目标完成时,将是人工智能和机器人学 的重大成果。RoboCup是人工智能与机器人研究相交叉的前沿领域,涉及信息、自动化、机械、通 讯、传感、材料和能源等学科的开拓研究与技术集成,对于推动科技进步、促进经济发展、培养创 新人才,具有十分重要的作用。RoboCup通过足球赛、救援、服务等生动活泼的形式,检验、展示 和推介相关领域的最新成果,受到社会各界和大众的普遍欢迎,尤其对青少年极具吸引力。因而 RoboCup机器人足球世界杯赛和学术大会受到了世界各国,特别是美、日、德等发达国家的高度重 视。 白1997年第--届RoboCup机器人世界杯举办以来,该赛事迅猛发展,已成为本领域规模最大、 水平最高、影响最广泛的世界级学术竞赛。2007年在美国的亚特兰大举办了第十一届RoboCup机 器人足球世界杯,是迄今规模最大的一届赛事,共有40个国家和地区的近350支队参加比赛,所 有这些团队均通过严格的预选赛,其中的佼佼者代表当今世界人工智能与机器人交叉领域的最高 水平。此外,各个国家每年都举办RoboCup公开赛,2007中国机器人大赛暨RoboCup中国公开 赛在济南举行,包括德国、墨西哥、伊朗等卜多支国外强队在内的413支队伍1200人参加了本次大

东南大学硕士学位论文

赛。需要特别说明的是2008年的RoboCup机器人足球世界杯将在中国苏卅『举行,届时约有450支队
伍3000多名参赛者及学者将参加比赛和学术研讨会,必将对我国在本领域的进一步发展产生重要的 影响。 RoboCup包含许多比赛,有机器人搜索和救援、足球比赛。每个项目又分为仿真组和实物机 器人组。仿真比赛在RoboCup各项比赛中是历史最悠久、参与队伍最多的。RoboCup仿真比赛是 一个能为多智能体系统和模拟智能进行研究、教育的工具。比赛是在一个标准的计算机环境中进行 的,提供了一个完全分布式控制的实时异步多智能体环境。通过这个平台,测试各种理论,算法和 智能体体系结构。在实时异步,有噪声的对抗环境中,研究多智能体的合作对抗问题。当然,仿 真组的比赛使用的机器人并非是真的机器人。一个机器人是智能体,拥有自己的大脑,是一个独立 的“主体”。而一个球队实际是程序组成的。服务器的工作就是计算井更新球场上所有物体的位置和 运动,发送视觉和听觉信息给球员,接收球员的命令。RoboCup仿真组是完全基于软件程序的开发 而没有实物机器人,这是不同与RoboCup其他组的重要方面。因此,研究人员可以把精力完全投入 到机器人的上层决策中,而无需考虑硬件问题。同时,仿真组比赛所需的仿真平台的开发还可咀促 进计算机仿真技术的发展。

1.1.2研究类人仿真足球机器人的意义
足球机器人是人工智能和机器人学的一个前沿科研项目,是连接基础研究与实际应用的中介和 桥梁,是展示信息自动化前沿研究成果的窗口和促进产、学、研相结合的新途径【_。

而本课题的研究对象——类人仿真足球机器人,无论理论研究还是实际应用方面都很有价值:
?研究类人机器人的控制,为开展实物类人机器人的相关研究做准备;与实物机器人相比,仿 真机器人具有投入少、试验周期短等优点,本课题是对实物机器人研究工作在理论上和实际 应用中的有益探索和积累; ?研究多智能体之间和协作与对抗。因为足球比赛是一个实时的、对抗的环境,机器人需要与 队友进行协作来与对手进行对抗; ?积极参与到RoboCup这个国际性合作项目中,与其他院校及研究机构加强交流合作,为推动 足球机器人发展添砖加瓦; ?参加国际和国内比赛,为国、为校赢得荣誉。

1.2研究现状
类人机器人足球仿真是从原来的三维球形机器人足球仿真发展而来,2007年才成为正式比赛 项目。与传统的二维仿真和三维球形机器人仿真比赛不同的是,类人机器人足球仿真不仅需要研究 机器人的上层决策,对于类人机器人的控制也要有深入的研究。

1.2.1类人机器人研究现状
类人机器人是真正字面意义上或狭义的“机器人”,集机、电、材料、计算机、传感器、控制技 术等多门学科于一体,其研究和发展代表了机器人学的尖端水平。早在20多年前日本就开始了有关 类人机器人的研究工作,而且日本的类人机器人研究水平一直处于国际领先地位,近年来推出了 ASIMOI”、QRIO、HOAP【q和HRP。2¨等著名的类人机器人。同时,美、德等国也都在研制类人 型机器人方面做了大量的工作,并己取得突破性的进展,我国也制造出了自己的类人机器人。 目前,一度被认为最困难的双足行走机器人技术已经取得了飞跃性的研究进展。RoboCup类 人机器人足球比赛已经有来自8个国家共22个团队参加,这些机器人已经可以进行行走和足球比 赛。在研究双足行走的各种途径和方法中,基于零力矩点控制(ZMP)的行走控制技术就得到了广泛

的研究卜’。。本田公司的ASLMO和索尼公司的QRIO都采用了ZMP控制技术,但还其它的新方法
也能有效地实现稳定安全行走,如被动步行hw、非线性振摆和CPG[{‰I‘1等。值得注意的是,在实 验室环境中本田公司已经展示了以每小时6km速度奔跑的ASIMO机器人。



第一章绪论

怎样实现和控制机器人的各种各样的全身运动则尚未形成很成熟的最终方法。目前使用的方法

包括基于运动捕获的方法¨…、基于图形用户接口的方法和位形空间搜索的方法【“,i]。在基于运
动捕获的方法中,用于产生示范运动的人与机器人在自由度构成和力学特性上有差异,而基于图形 用户接口的方法和位形空间搜索法在生成运动时也没有考虑系统的动力学特性,因而用这些方法所 生成的运动不能在实际机器人系统上实现,或者很多情况下机器人不能实现稳定的动作而翻倒。为 了解决这个问题,人们提出了很多修正方法,包括动力学过滤和自动平衡等。除了这些方法,使用 远程操作的方法也得到研究和应用0】。 接下来的一个大挑战就是机器人如何自主地、安全高效地在不确定环境中工作,如何与人交 流、与人配合工作,而实现摔倒时不会造成严重的损坏也是很不容易的。 可以预见,随着技术的发展,类人机器人技术将逐渐深入人们的日常生活,并起到越来越重要 的作用,而新的机器人1二业则孕育而生,“每家都有一台机器人”r 1将不再是梦想。
1‘2.2

RoboCup仿真足球机器人研究现状

图1 1展现了RoboCup仿真组的发展历史和未来,1997年RoboCup第一届比赛采用的是二维 平面的模型仿真,一个圆形代表一个机器人;2004年第一次采用了三维物理仿真,机器人是球形 的:2007年7月在美国举行的第十一届比赛首次推出类人足球机器人仿真比赛;而将来则要以实物 机器人为对象进行仿真研究t 1。目前比赛所使用的仿真平台【”j1】还在开发和完善之中,国内外很 多大学都投入到类人仿真研究中以取得先机。

图1



RoboCup仿真组发展历史和未来㈣

RoboCup机器人足球队是一个典型的多智能体系统,RoboCup足球比赛是一个充满合作与对 抗的多智能体环境,对于足球队中的机器人来说共同的目标就是赢得比赛。机器人能够完成足球比 赛中的个人行为之后,就需要学习如何作为队伍的一部分进行比赛。每个机器人独立地选择动作, 而最终的结果是所有机器人的动作共同产生的。因此足球机器人比赛中需要解决的一个关键问题是 协作问题:保证各个机器人独立的决策得到整体的最(次)优。队伍的策略就是在有限的资源内达 到共同目标的集体计划。机器人足球队的整体策略包括阵形、角色、跑位等内容。 对于这个问题,在RoboCup二维仿真中已经有深入的研究。Brainstormersf…】将问题描述为 多智能体马尔可夫过程(multi—agentMarkov decision processes,简称MMDP),采用强化学习来获 得机器人的策略,是通过强化学习来获取决策策略很好的尝试。FC Portugalt”,jq提出了基于状 态的策略位置(Situation Based Strategic Positioning,简称SBSP)以及动态跑位和角色交换机制 (Dynamic Positioning and Role Exchange mechanism,简称DPRE),很好地结合了足球比赛中的一 些领域知识。Wright Eagle[’。I使用无限平行分散的部分可观测马尔可夫决策过程(infinite-horizon
DecentralizedPartiallyObservableMarkovDecision Process,简称DEC-POMDP)框架对问题建模,使 用相关的马尔可夫决策过程(Correlation Markov Decision Processes,简称Correlation-MDPs)求取相

关策略,在计算复杂度和求解质量上得到很好的平衡。UvA Trilearn[j,≯_]使用协作图(coordination graph,简称CG)建立机器人之间的依赖关系,并使用极大极小算法对问题求解,既可以根据经验 制定策略又可以通过学习获得策略。 类人机器人仿真更加接近人类足球比赛环境 研究重点是类人机器人的感知、行为及其决策、 协作等分布式人工智能和机器人研究的热点问题 以实现队员在三维环境中的实时响应。类人机器



东南大学硕士学位论文

人仿真与三维球形机器人仿真以及传统的二维仿真的有类似的地方,但比赛环境和物理模型有很大 的差别,目前各个高校都处在对比赛环境和机器人基本行为的研究中,一巳比赛环境完善、机器人 基本行为成熟之后,中上层的策略将可以移植或借鉴三维球形机器人仿真和二维仿真研究的许多成
果。

1.3本文研究的内容和目标
为了能够实现一个完整的并具有竞争力的类人机器人足球仿真队伍,需要完成的工作很多,最 主要的目标是建立灵活的框架.对仿真世界的客观描述,实现足球运动的基本动作并能自主地进行 决策。本课题研究的主要内容有:智能体结构、世界模型、类人机器人行为、策略和决策以及用来 开发和调试机器人的工具。 (1)在基于非严格分层的智能体结构p‘1的基础上,需要设计一种具有插件机制的智能体结构,使 得智能体更具灵活性和可扩展性。当比赛平台某些特性改变的时候,可以很方便地改变代码 中的某个模块。考虑到比赛平台服务器目前还在开发和完善之中,这将使得后续开发和研究 变得容易。 (2)~个智能体要想产生智能的行为,保持世界模型(一个对当前环境描述)是十分重要的。类 人机器人有多种传感器:例如关节感知、视觉、触觉感知和陀螺仪等。这些感知器以不同的 方式和频率向机器人提供信息,智能地融合来自不同传感器的信息需要集中优化,因此需要 应用实时的多传感器融合技术。 (3)为了使得类人机器人队伍能够进行一场真正的足球比赛,必须实现各种类人的行为,包括: 双足步行,跑步,踢球,摔倒后站起等。为了能够在足球比赛环境中获胜,类人机器人必须 完成稳定的、动态的对抗行为。由于类人机器人的高自由度,所以产生类人行为是最困难的 问题之一,协调一个机器人的各个执行器完成动作是该问题的研究重点。对于双足步态行控 制已有不少的研究|’1,然而现有的研究大多集中在典型周期的稳定步态,并不适合动态的、 对抗的环境中。因此,本论文重点研究在线产生类人行为的高效实时算法。作为研究的起始 阶段,可参考在RoboCup类人实物机器人中采用的一些方法。然而,当今的类人机器人还远 远不能满足上述要求,它们还没有在实际的、不确定的环境中运动的能力,这是因为机器人 无法处理来自外界的额外作用力或者与环境的突然碰撞。在3对3的类人足球机器人仿真比 赛中,机器人之间是经常互相碰撞的。这就导致目前已有的算法都不能满足要求。因此,对 类人机器人行为产生的研究还有很长的路要走,本论文是对这一研究的有益尝试。 (4)在RoboCup一2006国际比赛中SEU-3D使用了基于规则的决策框架,取得了一定了效果。目前 的类人机器人仿真足球赛中机器人较少,机器人的执行能力较弱,需要根据目前的情况设计 高效的策略和决策。 (5)一个好的开发和调试工具可以节省时间、提高效果。本文在研究过程中,同步开发相关的调 试工具,用来完成测试仿真环境、训l练机器人、统计比赛等任务。 本课题研究的相关理论包括机器人控制理论,双足机器人步态控制,人工智能,多智能体协作 等.主要工作是研究RoboCup类人足球机器人仿真平台和仿真机器人队伍的开发,在研究过程中主 要采用的技术手段有: ?在Linux平台下使用c++语言实现类人仿真机器人的代码 ?使用wxWidgets库和OpenGL技术实现仿真机器人的调试工具 ?使用Matlab和其他一些脚本语言作为辅助调试工具。



第一章绪论

1.4本文概要
本文研究了类人仿真足球机器人队伍的建立,实现SEU.RedSun仿真足球机器人程序【“。Ⅺ。本 文描述SEU-RedSun仿真足球机器人程序的实现,还给出了设计SEU-RedSun仿真足球机器人的一些 重要细节和方法。同时对于进一步研究,SEU-RedSun仿真足球机器人程序提供了一个灵活的、可 扩展的框架。按照研究问题的展开过程,本文的内容安排如下: ?第2章对rcssserver3d仿真平台进行深入分析,并给出在rcssserver3d仿真平台下进行研究的一 些热点问题。 ?第3章采用自顶向下的设计方法对类人仿真足球机器人程序进行需求分析, 类人仿真机器人程序进行总体设计,描述了相关的具体实现。 ?第4章详细介绍SEU.RedSun仿真足球机器人的世界模型的设计与实现。 ?第5章讨论类人机器人行为产生的难点和关键,并针对SEU-RedSun仿真机器人,采用基于机 器人行为目标的方法,实现进行足球比赛的基本行为。 ?第6章针对2对2比赛,在SEU-RedSun仿真机器人使用了简单高效的策略和决策,并对传球决 策作深入研究。 ?第7章针对rcssserver3d自主研发相关的调试工具。在开发实践中,使用这些工具可以极大地 提高开发效率,并且没有这些工具有些任务和工作是无法完成的。 ?最后,第8章对本文的研究和SEU-RedSun仿真足球机器人程序进行总结,并讨论未来的发展 方向。



第二章RoboCup 3D机器人足球仿真平台

RoboCup SoccerServer3D(rcssserver3d)是由RoboCup组委会开发和维护的机器人足球仿真 平台。平台最初是由德国Koblenz大学于2003年开发的¨J,从2004年开始作为RoboCup 3D仿真组 比赛的官方平台。rcssserver3d是一个实时的机器人物理仿真器,并实现了多种传感器和执行器。 利用rcssserver3d的高可配置性,除了进行足球仿真还可以自定义仿真的物理环境和机器人。进行 机器人足球仿真比赛就是将机器人仿真程序连接到rcssserver3d上进行计算机仿真。要深入开展机 器人足球仿真研究,首先要熟悉比赛仿真平台。由于rcssserver3d还在不断完善之中,发布的版本 也不断更新,但相关的文档资料很少,本章对目前版本的rcssserver3d进行研究和详细介绍。2.1对 rcssserver3d的代码进行分析,给出系统的模块和结构;2.2描述rcssserver3d的工作流程和基本原 理;2 3详细介绍了仿真比赛中机器人的模型及其传感器和执行器;2.4对监视器及其与仿真器的通 讯协议作介绍;最后2.5总结了rcssserver3d的特性。

rcssserver3d使用c++语言在Linux平台下开发的,并己成功移植到Windows和Mac平台下。 由于目前与仿真平台相关的资料很少,所以本文直接对仿真平台的源代码进行学习和研究。 rcssserver3d的系统实现如图2 l所示,按照系统功能模块划分,仿真平台由四个部分组成: (1)库(1ib):仿真平台实现的主要部分,包含各种服务和程序资源管理等,是仿真的核心部 分; (2)插件(plugin):对仿真器进行扩展的各种插件,主要包含各种感知器和执行器的具体实现; (3)第三方工具(utility):rcssserver3d仿真平台中使用了一些已有的软件和程序库,它们被作 为第三方工具包含在仿真平台中; (4)应用程序(app):仿真器的应用程序实现部分,包含有仿真器主程序(simspa,∞、仿真监视

器(Mn洳r印4哟和仿真机器人示例程序(agentspark)。
2.1.1库
仿真平台的主要功能是以库的形式实现的,对于不同应用场合使用这些库建立的不同仿真器。 在rcssserver3d中主要包含以下库: (1)salt:各种通用类的集合,主要包含与数学和系统相关的功能,比如三维矢量类,矩阵类,文 件输入、输出的封装以及对共享库的装载和调用,等等; (2)zeitgeist:仿真平台的基本实现框架,借助它可以很快构建好一个新的应用程序。zeitgeist在实 现上采用了对象类模式(Class Object pattern),所有的c++对象都可以在运行时来创建,并 提供了Ruby语言的接口,可以通过Ruby脚本来创建程序中的c++对象。此外,zeitgeist通过 对象层次(objecthierarchy)的方法实现了一个虚拟文件系统,在zeitgeist框架中,c++的类实 例就像是“目录”和“文件”,对象可以通过“路径”和“名称”来访问。 (3)oxygen:在zeitgeist的框架下实现的仿真引擎,负责管理仿真中的物理、几何、场景、机器人 等,并调用物理引擎模拟整个仿真世界的运行。

(4)妇一加:主要负责人机交互,实现了仿真需要的三维图形显示功能,包括图像、字体、
OpenGL、纹理、材质。此外,还实现了接受用户输入的通用接口。



东南大学硕士学位论文

图2.1

rcssserver3d的UML类图

(5)spark:仿真应用程序的应用框架,将系统的各个模块整合起来,并提供了仿真的默认设置。 建立一个新的应用程序只要继承Spark类并重载指定的调用函数就可以了。

2.1.2插件
rcssserver3d中的很多功能都是作为插件来实现的,用户可以根据自己的需求来定制仿真平 台。目前插件包中主要有各种类型的传感器(详见2 3.1)、执行器(详见2.3.2)、足球仿真裁判 (详见2.23)、Ruby场景描述语言等。

2.1,3第三方工具
与机器人仿真相关的软件已经研究很多年了,rcssserver3d为了继承现有的软件和技术,使用 了一些由第三方开发的库和工具,主要有网络通讯库和结构化表达式(Structure Expression)解析器 (结构化表达式是一种类似Lisp语言的表达式,每个列表都由一些原子和列表组成。rcssserver3d 中使用的解析器是Small Fast S-Expression Library,详见http://sexpr.sourceforge。net/)a为 外rcssserver3d还需要的库包括:开放动力学引擎i“】、SDL(Simple DirectMedia Layer,http:// www.1ibsdl.org)、DeviL(http://openii.Sourceforge.net/)等。通过这些库rcssserver3d就小 需要再重新开发一些基本的功能,而且如果有功能更强大的库,替换或升级起来也比较方便, rcssserver3d可以使用最新、最好的技术。



第二章RoboCup 3D机器人足球仿真平台

2.1.4应用程序
在Spark的框架下平台提供了仿真的三个主要应用程序,分别实现运行仿真,显示仿真场景的 功能: (1)simspark:类人足球机器人仿真器主程序,进行机器人的物理仿真和足球比赛规则仿真,并负 责记录仿真数据(详见2 2)。 (2)monitorspark:仿真监视器,如图2.2所示,显示仿真世界中的状态,提供用户交互界面,并 可以读取仿真数据再现仿真场景(详见2,4)。 (3)agentspark:仿真机器人示例程序,该机器人只会挥手动作(如图2.2)。

图2.2 monitorspark界面截图 单个应用程序无法完成所有工作,需要相互协同工作才能完成仿真比赛。如图2.3所示,比赛 时各个程序通过网络相互连接。simspark从各个机器人仿真程序得到动作信息,进行物理仿真和足

球比赛规则仿真,然后将仿真结果发送到口Ⅻ!ffD掣,七显示出来。并将感知信息发送给对应的机器
人仿真程序。

图2.3

rcssserver3d各应用程序通过网络互相连接,完成仿真比赛

2.2仿真器
从研究人工智能的角度看,智能体经传感器获知所处环境并通过执行器对该环境产生作【’,。 在机器人足球仿真中,足球机器人就是智能体,而仿真平台则是机器人所处的虚拟环境。因此,



东南大学硕士学位论文

rcssserver3d需要向机器人发送感知信息,并对机器人所做的动作进行物理仿真。如图2.4所示,对 于机器人程序来说,与环境进行一次交互需要经过感觉一思考一动作三个阶段;而对于rcssserver3d

来说,与智能体进行一次交互需要完成执行智能体的动作一物理仿真一向智能体发送感知信息三个
任务。
SenSOrS

图2.4智能体通过传感器和执行器与环境进行交互fⅪ】

2.2.1仿真工作流程
在机器人足球仿真过程中,机器人程序与rcssserver3d通过不断地交互,使得仿真环境连续 地变化。如图2.5所示,智能体先从rcssserver3d得到自己的传感器信息;然后思考作出决策并向 rcssserver3d发送执行器命令;最后由rcssserver3d实现执行器的效果并进行物理仿真,使得仿真环 境进入下一个周期的状态;接着便进入下一个周期,周而复始,使得仿真不断向前。

图2.5理想情况下机器人程序与rcssserver3d的交互过程

rcssserver3d的主循环就是不断地完成执行智能体的动作一物理仿真一向智能体发送感知信息
这三个任务,而从具体实现来说又分为单线程和多线程两中模式。

2.2.1.1单线程模式 在单线程模式下,仿真按照动作一仿真一感知一等待的序列依次进行。图2.6表示
了rcssserver3d主循环的时序,其中SimulationServer是实现rcssserver3d的主循环函数Run的 类}Sj_raControlNode是一个虚基类,代表各种仿真控制节点,可以是智能体、用户交互界面、 虚拟足球裁判等;而Sense保存当前仿真世界的所有信息,其它各个部分可以访问和修改它。 为了使得仿真流畅地运行,需要限制智能体的思考时间,要求机器人能够实时响应, 如果在规定的时间内没有收到智能体发送的动作信息,则该智能体这个周期将失去动 作的机会。SimulationServer通过计时器使得每个周期的时间间隔固定,没有到达周期时 刻,SimulationServer将等待。同时为了充分利用等待智能体响应的时间,所以rcssserver3d端的 序列看起来是与智能体相反的。由于循环执行,所以先后顺序是一样的,但是智能体执行动作的时

10

匡召匡圈囤 型
第二章RoboCup 3D机器人足球仿真平台
:u 一

StartCycle0

? ‘

7_





二 , .


},f
SenseAgent0

7I|







, 々

7翻






ActAgent0


7f|





,,



H }f
砸medWait(、

7Ij

,一
——

S1 。epJ PrePhysicsU pdate()

7I
PhysicsUpdate()

i己
E__一『

PosLPhysics[ JpdateO




7I j
EndCycle0。: ;




.i



71|

图2.6 rcssserver3d单线程运行UML序列图

刻与最后收到信息的时刻相差一个周期,也就是对于智能体来说,从感知到动作的执行有一个周 期的滞后。此外,如果仿真的速度不够快,SimulationServer就会在一个Step中进行多次物理计 算,而不与机器人进行交互。因此在速度比较慢的计算机上运行会对仿真结果有影响。 具体运行过程为:首先SimControlNode执行从智能体收到的动作信息;接着开始物理仿真计 算,SenseServer中的仿真世界到达下一个状态;然后SimControlNode发送感知信息给各个智能 体;最后SimControlNode等待下周期时刻的到来。

2.2.1.2多线程模式
物理仿真的计算量非常巨大,rcssserver3d需要运行在计算能力强劲的计算机上,然 而单线程难咀保证rcssserver3d在多CPU和多核CPU计算机上的运行效率。在单线程模式 中,各个SimControlNode是依次运行的。并且和物理仿真是非同时运行的。通过分析发现,

东南大学硕士学位论文

个SimControlNode往硬盘上记录log,另一个SimControlNode僦体发送感知信息,同时主线程
使得StmControlNode分别负责仿真中不同的任务,其运算和操作是可以同时进行的,比如~ 进行物理仿真。本文针对以上特点设计并实现了rcssserver3d的多线程。 多线程模式下rcssserver3d的主循环序列如图2.7所示。SimulationServer为主线程,每~ 个SimControlNode为一个单独的子线程,Sense作为线程之间交换数据的缓存。

图2.7

rcssserver3d多线程运行UML序列图

经过测试,多线程模式在多CPU和多核CPU计算机上的运行效率要高于单线程,一台主频 3.0(3的计算机单线程运行4个机器人都成问题,而在多线程模式下可以运行6个机器人。 但是,多线程的实现受到其它库的影响,首先由于rcssserver3d使用各个第三方库(见2.1 3) 并不都是线程安全的(比如Ruby的c++接口),或者不是在所有平台下的实现都是线程安全的, 所以rcssserver3d多线程的实现就要很小心地避免不同线程调用Ruby;多线程模式就没法在Mac 平台下运行,因为Mac下的OpenGL不是线程安全的。

2.2.2物理仿真引擎
rcssserver3d与传统的RoboCup二维足球仿真器的一个重要区别就是rcssserver3d的仿真是物 理仿真,而传统的二维足球仿真器只是简化模型仿真。实际上,rcssserver3d并没有重新开发物理 仿真引擎,而是使用了ODE,全称开放动力学引擎(OpenDynamicEngine)[“l。ODE是免费的、高 质量的刚体动力学仿真引擎。rcssserver3d在Zeitge扛t框架下实现了对ODE的面向对象访问接口, 所有与ODE相关的,包括刚体、碰撞器和连接都被封装成了c++对象。而这些概念对开发仿真机 器人都是非常重要的,不了解物理仿真会被许多问题所困惑,本文对ODE物理仿真I二?o?j】中的一 些重要概念作简要介绍。 对一个物理过程进行计算机仿真,首先需要建模,即将系统胃方程表达出来;接着设计仿真算 法来解这些方程,得到系统随着时间是如何变化的各个状态;最终编写成计算机程序(即物理仿真 引擎)完成仿真。图2.8是物理仿真引擎的工作原理,仿真引擎根据当前的系统状态、系统描述、 力控制和时间间隔计算出新的系统状态。

12

第二章RoboCup 3D机器人足球仿真平台

al

统状态

O'0

图2.8物理仿真引擎工作原理

2.2.2.1系统建模

菇一

辩耥;

圃一,少一

在构建仿真引擎时,对不同的系统使用不同的建模方法。ODE的仿真对象是机械系统,采用 的是刚体动力学模型,其仿真的对象主要有刚体、关节、碰撞、摩擦和弹簧。 (1)在ODE仿真世界中的物体都是刚体,即物体不会发生形变或者破裂。每个刚体所具有一些属 性在仿真不会发生变化,包括质量、质量分布、形状。而另外一些属性则是随着仿真的进行 而变化,包括位置、线速度、朝向、旋转速度。

(2)互相连接的刚体通过连接来相互作用。两个互相连接的物体会对这两个物体的运动有约束作 用。在ODE中,不同类型连接体现了不同的约束关系,主要有各种关节和碰撞点。ODE提
供了各种各样的关节模型,利用这些关节可以设计出结构复杂的物体,如汽车、机器人等。 rcssserver3d作为类人机器人仿真平台,主要使用了其中两种类型的关节: 铰链关节两个相连的物体绕着一个轴转动(如图2.9(a)),适合于作为一个自由度的机器人
关节;

通用关节两个相连的物体可以绕着两个垂直的轴转动(如图2.9(b)),适合于作为两个自由 度的机器人关节。

(a)铰链关节 图2.9

(b)通用关节

rcssserver3d中的机器人关节F

与关节由设计者指定不同,接触点是在仿真运行过程中产生的,每个接触点保存了相互碰撞 物体的一些信息,并且对碰撞物体的运行产生影响(见2.2,2 3)。 (3)ODE使用一个简化模型的电机来控制两个连接物体的相对速度,并且角度可限制在指定的范 围内。电机的控制输入为期望的角速度,电机会向绕着关节轴方向产生作用力来达到期望的 速度。另外,电机可设置最大的动力。这个模型的效果与伺服电机的效果接近。 机器人可以看作是一个机械系统,因此ODE比较适合作为机器人仿真的物理引擎。

13

东南大学硕士学位论文

2.2.2.2刚体动力学仿真
动力学系统指任何包含运动和变化物体的系统。刚体动力学仿真就是刚体系统根据当前状态改 变各个刚体的状态到下一个时刻的过程。当然仿真并不能产生与现实世界完全相同的现象,因为在 仿真中使用了简化的模型。评价动力学仿真算法的主要因素有精度、稳定性以及计算开销。总体来 说,ODE的稳定性非常好,但不是非常精确,除非使用非常小的仿真步长p”。

2.2.2.3碰撞检测
刚体之间是否发生碰撞是由它们的位置和形状决定的。碰撞检测就是计算两个互相碰撞刚体的 接触点。如图2.10所示,接触点抽象出了两个物体相撞之后的作用结果,主要属性有法线方向、深 度、摩擦力方向等。图2.10中Normal为法线方向,P-dir为摩擦力方向。接触点对物体的运动起约 束作用,也就是影响物体的运动。

图2 10碰撞检测计算出两个物体接触点

需要注意的是,在ODE中如果两个刚体之间有关节相连,则在碰撞检测时将不产生接触点, 所以需要设置关节的活动范围,否则会出现两个物体穿透的现象,比如机器人的手插入到与之相连 的胳膊中。

2.2.3虚拟足球裁判
为了使得比赛遵守足球规则,仿真器包含了一个虚拟足球裁判来控制比赛。虚拟足球裁判根 据不同的情况来改变比赛模式。当比赛模式改变时,虚拟足球裁判会将信息发送给每个机器入。这 样,每个机器人就都能知道当前的比赛模式。并且,虚拟足球裁判对进球和犯规进行判断。在以下 的一些情况虚拟足球裁判会对比赛进行有效控制: ?在开始比赛和每次进球之后,比赛模式会切换到开球模式。在开球模式之前,所有的机器人

必须在本方半场。在进球之后,虚拟足球裁判会将比赛挂起5秒,以便机器人回到各自半场。
在这个时候,机器人可以使用beam命令来直接传送到希望的位置。如果在开球模式下仍然有

机器人在对方半场,虚拟足球裁判将把机器人移动到本方半场的随机位置。
?在进球之后,虚拟足球裁判会将进球信息广播给每个机器人。然后更新比分并将球移动到 中点。接着挂起5秒让机嚣人回到各自的本方半场,随后根据哪个队伍迸球切换比赛模式

为觚出国皿驴或者KickOff上ight。
?当球出界之后,虚拟足球裁判将球移动到合适的位置并姆比赛模式置为边界球、角球或者球 门球。如果是边界球,虚拟足球裁判将球放置在球出边线的地方:如果是角球,他将球放在
对应的球场角上;而球门球,虚拟足球裁判则将球放在球门前5米的地方。

?当比赛模式进入开球、任意球、边界球或者角球,虚拟足球裁判会将所有不开球方机器人移
出一个半径为freeKickDistance的圆。而在球门球模式下,所有不开球一方的所有机器人被 移出禁区。

14

第二章RoboCup 3D机器人足球仿真平台

?比赛模式为开球、任意球、边界球或者角球时
式。

当有机器人碰到球之后,虚拟足球裁判立即

将比赛模式置为正常模式。在球门球模式下, 当球出禁区之后,比赛模式被改变到正常模

?在上半场和下半场结束时,虚拟足球裁判会终止比赛。每个半场持续480秒(等于24000个仿 真周期)。 但是,这个虚拟足球裁判并不能处理所有的情况,所以在某些特殊情况下还需要人类裁判来干预。

2.3仿真机器人模型
一个完整的机器人包括软件和硬件两个部分组成(如图2.1 1所示),机器人的软件相当于人类 的大脑,开发仿真足球机器人队伍主要工作就是开发机器人的控制软件,这也是本文研究的主要内 容。而机器人的硬件部分则由rcssserver3d虚拟实现,主要分为三类虚拟硬件:感知器、执行器和 机器人的机械结构。

图21I机器人软、硬件系统结构 (在机器人足球仿真中,机器人的硬件部分由rcssserver3d虚拟实现) rcssserver3d将机器人的感知器和执行器作为插件实现的,机器人的机械结构通过Ruby Scene Graphic场景描述语言I。o来定义,这样用户可以根据自己的需要选择感知器和执行器来配置机器人 模型。本节将详细介绍rcssserver3d中各个感知器和执行器的功能和格式,以及比赛中使用的机器 人的机械结构。

2.3.1感知器
机器人感觉系统是由各种传感器及由其组成的传感器系统来实现的,其作用是使机器人具有理 解目标,掌握外界情况,并做出决策以适应外界环境变化的能力【~。机器人传感器实质上包含获取 和处理两部分,rcssserver3d中实现了各种传感器的获取部分,并将数据作为感知信息发送给仿真 机器人,而感知信息的处理则需要用户实现。下面介绍rcssserver3d中实现的各种传感器,以及对 应感知信息的格式。

15

东南大学硕士学位论文

2.3.1.1时间感知器
时间感知器告诉机器人当前的仿真时间以及当前时刻与上个仿真步的间隔时间,其感知信息格 式如下:
(time(FlOW simTime)[(step simS tep)])

其中, simTime::=正实数,表示当前的仿真时间 simStep::-----正实数,表示当前时刻与上个仿真步的间隔时间

2.3.1.2视觉
视觉感知器可以测量得到其它物体在机器人视角中的距离和方向。目前,rcssserver3d提供的 视觉感知器提可获取场上各个物体的抽象位置信息,简单说就是提供各个机器人身体的中心点和场

地四周的八个标杆的位置信息。该信息每个周期自动地发送给机器人。需要注意的是机器人的视角
朝向是固定在机器人的一个身体部位上,随着该部位的运动而运动。如图2.12所示,∑w是仿真世 界的全局坐标系,而∑y是机器人的视角坐标系,机器人得到的视觉信息都是在∑y中的。

图2.12机器人的视觉信息示意图 机器人从rcssserver3d接收到的视觉感知信息格式如下
(See objlnfo+)

其中, objlnfo::=(objName∞ol
d 0≯))

objName::=P(team teamname)(id id),表示该物体是机器人 B,表示该物体是足球
l FNS,表示该物体是标志杆 f GNS,表示该物体是球门拄
N::= S /e口rename
::=

112
LIR

::=

字符串,为机器人的队伍名 1~1l,为机器人的号码 正实数 ~1800~180。角度 ~90。~90。角度

谢:|_
d::=

0::=
西
::=

16

第=章RoboCup 3D机器人足球仿真平台

在图2 12中:对于已知机器人视角的位置m和姿态置口以及其它物体的位置肋,rcssserver3d按 照如下步骤计算机器人得到有关该物体的视觉信息(正只≠): (1)计算物体与视角坐标系原点在全局坐标系∑w中的相对位置
p&=po—pR

(2 1)

(2)计算物体与视角坐标系原点在视角坐标系∑y中的相对位置

‰=PA?R0
(3)将m转换为球面坐标形式

(2.2)

[d I[1ip611端 】其中,c却,”,功=俳
因为视觉信息是相对于机器人的视角坐标系的,所以机器人无法直接得到自身的全局位置以 及其它机器人和球的全局位置。为了方便计算,这些相对的位置信息需要转化为全局位置信息。为 此,场地周围放置了一些标志杆,嗣2 13中标示了各个标志杆的名称和位置。通过综合这些标志杆 的全局位置和视觉信息中的相对位置,机器人可以确定自己的全局位置以及球和其它机器人的全局 位置。

F1L卜—————————————————兰壁里—————————二————叫F1R

图2.13虚拟足球场中的标志杆的名称和位置 相对于二维机器人足球仿真器,rcssserver3d中场地上的标杆减少了很多,增大机器人定位的 难度,但是这个视觉感知器还是相当理想化的: ?没有视角范围限制,即具有360。的视角 ?视线不会被物体遮挡,能感知到所有物体的信息 ?噪声很小,目前只有数据截断带来噪声 ?工作频率较高,每个周期都能接收到视觉感知信息。

17

东南大学硕士学位论文

2.3.1.3听觉
rcssserver3d作为一个多智能体的仿真环境,每个机器人必须独立自主地作出决策,所咀不 同机器人之问不允许直接通讯,机器人之间只能经过rcssserver3d作为媒介进行通讯。总的来说 rcssserver3d的通讯模型是模仿人类说话形式的,有以下特点: ?必须以rcssserver3d作为媒介,不能用其它手段直接通讯; ?信息以广播的形式发送,所有机器人都有可能收到信息; ?从发出信息到其他机器人收到信息有~个周期的滞后; ?收到信息的频率受限,目前每个周期机器人只能收到本方队伍和对方队伍各一条信息,并且 同一队伍有多条信息被广播时,只能随机收到一条; ?广播的最大距离受限制; ?通讯内容最大长度受限制。 虽然机器人之间的通讯受到了以上种种限制,但是通讯是机器人之间共享信息和交互协作的唯 一途径。听觉感知信息的格式如下:
(hear time direction message)

其中,
tbne direction

正实数,接收到该信息的时间 一180。一180。角度,发送该信息的其他机器人与自己朝向的夹角 self,表示该信息是自己发出的 字符串,信息的内容

message

::=

2.3.1.4触觉
触觉是人类重要的感觉,在机器人的脚上装触觉传感器对机器人保持步行平衡很有帮助。在 rcssserver3d中机器人由一个个刚体组成,每个刚体都可以装配一个触觉传感器,这样机器人可以得 到来自身体不同部位的触觉信息。 rcssserver3d拥有阿种类型的触觉传感器: (1)接触传感器:只能感知是否接触到其它物体;接触感知器的的实现较为简单,在碰撞检测完 成后,检查装有传感器的刚体是否有接触点。其信息格式如下:
(TCH(n

name)(val

value))

其中

||{|

= =

字符串,该感知器的名称,用来标识部位的感知器 0,表示不接触任何其它物体
I 1,表示至少接触到一个其它物体

(2)压力传感器:可以得到所受到压力的等效作用点和等效力量。压力感知器先获取物体上的接 触点所有信息,并计算各个分力的台力。压力感知器的信息格式如下: (FRr'(nname)(cXcⅪ磊)(f五^点)) 其中, 字符串,该感知器的名称,用来标识部位的感知器
.k,c叠

三维矢量,为所受压力的等效作用点 三维矢量,为所受压力的等效作用力

h氛k

18

第二章RoboCup 3D机器人足球仿真平台

2.3.1.5关节感知器
类人机器人的所有运动都是需要控制关节运动来实现的,所以关节传感器对于机器人控制是 十分重要的。关节传感器可以得到该关节当前的角度和角速度。rcssserver3d中的两种机器人关节 (参考2.2.2 1),分别有各自的信息格式。 铰链关节感知信息格式如下: (1-iJ(n name)(ax angle)[(rt rate)]) 其中 name::=字符串,该关节的名称,用来标识不同的关节 angle:=一180。一180。角度,该关节当前的角度 rate:=实数,该关节当前的角速度,单位为。厶 通用关节感知信息格式如下:
(UJ(n name)(axl angt£D[(n1 ratel)l(ax2 angle2)[(rt2 rate2)])

其中 字符串,该关节的名称,用来标识不同的关节
anglel ratel angle2 rate2

一180。一180。角度,该关节第一个自由度的当前角度 实数,该关节第一个自由度的当前角速度,单位为。/s 一180。~180。角度,该关节第二个自由度的当前角度 实数,该关节第二个自由度的当前角速度,单位为。/s

2.3.1.6姿态感知器
在三维世界中,无论是机器人定位还是保持平衡,姿态的信息十分重要。实际的机器人可以用 陀螺仪来测量自身姿态,而rcssserver3d则提供了一种较为抽象的姿态感知器,可以得到刚体当前 绕三个轴的旋转角速度。 姿态感知器的数据格式如下: (GYR(nname)(rt%唧啦)) 其中 字符串,该感知器的名称,用来标识部位的感知器
o:x

实数,绕该物体x轴旋转的角速度 实数,绕该物体y轴旋转的角速度 实数,绕该物体Z轴旋转的角速度


ctz

2.3.1.7比赛状态感知器
为了使机器人能够进行足球比赛,机器人还要能够感知与足球比赛相关的一些信息。rc. ssserver3d将比赛状态广播给所有的机器人,这样机器人就可以知道当前的比赛信息,比如当前比 分,是否犯规等。 比赛状态感知器的具体格式如下:
(GS(t gameTime)[(pm playMode)][(unum num)][(team side)])

19

东南大学硕士学位论文

其中 gameTime::=正实数,比赛已进行的时间 p缸yMode:I.字符串,比赛模式 hum:__1—1l,为本机器人的号码 side:=left,表示本方队伍在球场左边
I right,表示本方队伍在球场右边

2.3.2执行器
机器人通过执行器来改变和影响周嗣的环境,仿真机器人的执行器除了包含了运行时的仿真器 (比如,关节电机),还包含一些初始化需要的执行器和虚拟的执行器(比如,传送)。本节详细 介绍rcssserver3d中提供的执行器功能及其命令格式。

2.3.2.1创建机器人命令
当仿真机器人(程序)与rcssserver3d建立连接之后,机器人并没有被添加到物理仿真环境 中,这时唯一能够执行的就是创建命令。因为rcssserver3d允许用户使用不同的机器人模型,机器 人程序需要告诉rcssserver3d创建什么样模型的机器人。因此,创建命令必须是机器人执行的第一 个命令,其格式是:
(create robot)

其中 robot:≥rsg文件名,机器人模型的配置文件

2.3.2.2初始化
当完成机器人的创建之后,rcssserver3d给机器人需要分配队伍和号码,否则机器人的感知器 和执行器不能正常地T作。机器人可以通过初始化命令来指定自己的队伍名和号码。因此,机器人 执行的第二条命令就是初始化,其格式如下:

其中, 0,由rcssserver3d自动分配最小的可用号码 l~11,设置本机器人的号码
leam^tame

字符串,设置本机器人的队伍名

2.3.2.3位姿设置
为了节约时间,在某些比赛状态(如比赛之前和进球之后。)下机器人可以直接将自己的位姿 设置(传送)为在本方半场内的任意位姿,这是一个实物机器人所没有的执行器。 位姿设置命令的具体格式为:
(b髓mP。Py印

其中
PxPy


二维矢量,传送的目标位置 ~180。~180。,传送之后的机器人朝向

20

第二章RoboCup 3D机器人足球仿真平台

2.3.2.4关节电机
作为关节型机器人,类人机器人需要通过协调控制各个关节来实现动作。rcssserver3d中的关 节电机的控制量是关节的角速度(参考2.2.2 1)。 rcssserver3d中的铰链关节控制命令格式定义为: (jointName rate) 其中,

扣伽州d"”::=字符串,关节执行器的名称
rate:._实数,期望的关节角速度 而通用关节的控制命令格式是
(yointName ratel rate2)

其中
jointName
ratel

字符串,关节执行器的名称 实数,期望的关节第一自由度的角速度 实数,期望的关节第二自由度的角速度

rate2

2.3.2.5智能体间的通讯
在比赛中智能体之间可以互相通讯,智能体发出通讯信息,其余机器人通过听觉感知接收到通 讯信息。机器人可以通过如下命令来广播通讯内容:
(say message)

其中,

message::=字符串,发送出的内容,不能包含有空格和圆括号
机器人每个周期可以广播一条信息,最大长度为sayMsgSize字节。但是广播出的信息能不能 被其它机器人收到是由各个机器人的听觉传感器决定的,具体参考2.3.1.3。需要注意的是由于空格 和圆括号是结构化表达式的分隔符,所以通讯的字符串中不能包含空格和圆括号。


2.3_3机器人机械结构



有了各种感知器和执行器,rcssserver3d通过Rubv场景描述语言就可以“组装”出机器人。 rcssserver3d以HOAP.2机器人【4I为原型,设计了soccerbot055型机器人(soccerbot意思是足球机器 人,而055是因为发布该机器人模型的rcssserver3d版本为0 5 5)以及其改进型——{DccPr6D以筘型 机器人。这两种机器人都有14个关节,20个自由度。soccerbot056型机器人在soccerbot055型的基础 上根据反馈意见作了一些改进,主要改进见表2.1。 表2.1 soccerbot055型与soccerbot056犁_机器人的主要区别



如图2.14所示,soccerbot055和soccerbot056具有相同的关节连接模型,详细关节配置见表 2。其机械结构的物理属性见表2.3。

21

东南大学硕士学位论文

表2.2 soccerbot仿真机器人关节配置

表2.3 Soccerbot机器人的物理属性

第二章RoboCup 3D机器人足球仿真平台

图2.14 soccerbot056仿真足球机器人模型

2.4监视器
监视器是重要的调试工具,首先将仿真环境中发生的一切呈现给用户,用户还可以通过监视器 控制仿真比赛的进程。rcssserver3d中自带了~个监视器,就;星e.monitorspark。monitorspark与simspark连 接之后,就会接收到用结构化表达式表示的仿真信息。同时。sintrpark4还记录监视器日志文件,其 中包含了所有simspark发送给监视器的内容,这样就可以用来回放仿真的过程,以便作进一步分 析。 此外,可以根据rcssserver3d定义的通讯协议重新实现监视器(参考7.2)。

2.4.1控制命令
监视器也可以通过连接向simspark发送控制命令。这些命令也是用结构化表达式表示的。可以 改变当前的比赛模式、移动机器人和球的位置。这些命令允许使用训练员来训练机器人。 目前支持的控制命令有:

东南大学硕士学位论文

2.4.1.1开球
这个命令可以帮助人类裁判来控制比赛,其指令格式是:
(kickOff side)

其中, side:..Left,左边队伍开球 IRight。右边队伍开球 INone,随机选择一个队伍开球

2.4.1.2设置比赛模式
(playMode play.mode)

设置当前的比赛模式切换到指定的比赛模式。 2.4.1’3移动机器人
在训练或者设置场景中,使用这个命令直接将机器人放置到指定的位置,其具体格式如下
(agent(team side)(unum n)(pos n Py卿)

其中, side::=Left[Right,左边或右边队伍的机器人 n::=1~11,机器人号码 P,Py::=二维矢量,传送的目标位置 .0::=一180。一180。,传送之后的机器人朝向

2.4.1.4移动球
在训练或者设置场景中,使用这个命令直接将球放置到指定的位置,其具体格式如下:
(ball(posPxPyA))

其中, m巩&:}三维矢量,移动球的目标位置

2.4.1.5坠球
在球的当前位置坠球并且将所有的机器人移动到离球free 单:
(dropBaU)
kick

radius距离之外。其格式很简

2.5小结
本章介绍了rcssserver3d的一些特性及相关的充满挑战的研究。rcssserver3d提供了一个相对 真实的环境,其中包含了一些真实世界中机器人必须处理的复杂问题。本节将机器人足球仿真环境 的重要特性及其中具有挑战性的研究课题总结如下:

第=章RoboCup 3D机器人足球仿真平台

?rcssserver3d是一个实时的系统,离散仿真时间间隔为20ms。在这段时间内,机器人从仿真器

接受到各种感知信息并发送动作命令给仿真器(见2.2)。这就要求机器人必须实时作出决策
和控制。 ?每个机器人由单独的程序控制,多个机器人就构成了分布式系统。机器人之间不能直接通 讯,但是可以通过rcssserver3d间接地进行受限制的通讯:每个队伍使用一个低带宽、不可靠 的通讯信道(见213 l,3)。 ?每个机器人有多种不同的感知器:视觉感知器(见2.3.1.2)提供场地中所有物体在机器人 视角中的视觉信息(距离和方向)。所有的视觉信息都是相对于机器人自身视角坐标系 的,利用场地周围的标志杆(见图2.13)可以将视觉信息转换为全局坐标系中的信息。听 觉感知器(见2.3.1.3)接收其他机器人广播的信息,但是其有效范围和能力非常有限。虚 拟足球裁判的信息是由比赛状态感知器接受的。触觉感知器提供了机器人碰撞和受力信息 (见2 3.1.4)。而关节感知器则提供机器人当前各个关节的角度(见2.3.1.5),姿态感知器提 供机器人姿态的信息(见2.3.I.6)。如此多的感知信息需要应用感知融合技术来维护机器人 的世界模型。 ?类人机器人需要通过控制关节来实现期望的动作(见2.3.2),如行走、踢球等。如何控制类 人机器人在动态有对抗的环境下完成任务仍是十分具有挑战的研究工作,因为该类人机器人 具有20个自由度(见2.3.3)。 ?在机器人执行动作和感知信息之间有一个周期的滞后,这就需要机器人能够根据过去的感知 信息推断当前的状态,进行预测控制。 ?rcssserver3d使用ODE作为物理仿真引擎,提供了一个逼真的机器人三维仿真环境 (见2.2.2),对于机器人控制的要求更高。 ?在仿真比赛中可以使用不同类型的机器人,每个机器人通过创建选择自己模型 (见2.3.2 1),如何选择和搭配不同的机器人是多机器人系统的一个研究课题。 ?仿真器包含一个虚拟足球裁判来控制比赛,使用户尽可能少地干预比赛(见2.2.3)。 ?仿真器提供显示和控制仿真的协议(见2.4)。用户可以开发自己的监视器,作为显示、调试 和分析的工作,并可以用来自动地创建训练场景,这在队伍开发和测试阶段非常重要。

第三章RoboCup仿真足球机器人总体设计与实现

在机器人足球比赛中,场上的情况瞬息万变,机器人面对的是一个动态的环境,需要保持对
紧急情况的及时反应,同时通过对世界和其他机器人的建模分析来预测未来的状态,并使用一定的

镱略对中长期的行为做出规划。对于足球机器人这样~个高智能的复杂系统工程,各单元技术的
简单连接是不能带来整体性能的,各分系统在多层次的协调和分工中集成是必要的。本章主要描 述了SEU-RedSun仿真足球机器人的总体设计与实现:定义了SEU.RedSun仿真足球机器人体系结 构中的不同层次,并解释了每个层次的作用;介绍构成系统的不同模块和模块之间的交互方式。 其中,3.1描述了本文的基本设计方法和流程;3.2对开发RoboCup仿真足球机器人程序进行详细的 需求分析;3.3给出了本文的系统总体设计;3.4是SEU-RedSun仿真足球机器人程序的具体实现。最

后,3.5总结了SEU-RedSun仿真足球机器人程序的总体设计和实现。

3.1设计方法及其流程
在设计和实现SEU-RedSun仿真足球机器人程序的时候,本文采用的是多机器人系统的设计中 通常采用的自顶向下的设计方法(见图3.1),即将复杂的多机器人系统的功能和目标要求逐级分 割分解,逐步细化多机器人系统各个功能模块,集成实现目标必需的控制算法和协作策略?“。 (1)明确所设计的多机器人系统要实现的目标、任务和要达到的功能。 (2)进行多机器人系统群体体系结构和机器人个体体系结构的选型,并面向具体目标、任务对其 进行调整。 (3)在体系结构的基础上确定具体的各机器人的基本功能模块和机器人之间的通信机制、协作方 式等,依据系统设计方案构建多机器人系统原型。 (4)系统原型设计通过后,就可以进入具体的系统实现阶段。在此阶段,如果发现某些设计缺陷 则需要调整原设计方案。

3.2需求分析
需求就是系统(项目)必须提供的能力和必须遵从的条件‘”J。设计机器人程序时,第一步是 详细说明任务环境,而且要尽可能地全面。表3、l是rcssserver3d仿真环境的PEAS(Performance,

EnviI_onrnent.Actuators,Sensors)描述陶。
表3.1 rcssserver3d仿真环境的PEAS描述

在rcsssereer3d仿真这个分布式的、实时动态的多机器人环境中,机器人要完成仿真足球比赛 任务,必须具有如下能力: (1)感知能力:机器人应能够利用传感器感知周围环境的变化,即接收来自rcssserver3d的感知信 息,并对感知信息转化、除噪和存储,这是保证机器入作出合理决策的前提。

东南大学硕士学位论文

无法实现要求功能

备:==::二—————\、嗵设计的功能无法正常工作 目标难咀实现、==三。—二∑=====:一…
确定目标、 任务和功能


功能模块、\ 通信、协作\

一体系结构设计 构有缺陷

机制等设计L
模块划分不

系统实现 实验环境、 参数修正

、\

设计与体系结构存在冲突 体系结构不合适 系统无法达到要求指标和完成预期任务

图3.1自顶向下设计方法的流程【Ⅻ

(2)执行能力?能够发送满足rcssserver3d要求的基本动作命令,并能规划自己的动作,完成足璩
比赛需要的复杂行为,如行走、踢球等。 (3)决策能力:根据比赛的实际情况,自主地进行实时决策,对给定的任务进行分解,选择下一 步的动作。

(4)协作能力:在足球机器人系统中,机器人不能只顾自己的利益最大化,作为团队中的一员,
需要通过与其他机器人的交互协作完成动态未知环境下的复杂任务。 (5)学习能力:包括在线学习(比赛过程中通过学习来判断对方的行为)和离线学习(主要用于 学习个人技术):通过学习,可以提高个体机器人解决同类或类似问题的能力。 (6)通信能力:与本队的其他机器人实现有限的信息交换(要受到rcssserver3d的限制)并不被对 方破译。通信能力对于机器人之间的协作起着重要的作用,机器人可以就某些复杂问题进行 磋商.达成一致后协作执行任务。 另外,系统的鲁棒性是至关重要的,每个机器人必须能够应对比赛中的任何可能情况。 在设计仿真足球机器人软件的时候,面对的是特殊的软件工程领域的挑战,最大的挑战就是由 于rcssserver3d还处于开发阶段,所以项目的目标也一直在改变。实际上,直到第一个可运行的版 本完成后才真正知道什么是想要的。正是由于这个原因,软件设计要具有灵活性,具体目标有: (1)开放性:系统的实现必须容易进行扩展、修改、移植等工作。 (a)易扩展性:指新的功能模块(例如传感器或者执行器)能够方便地加入到系统中,并且 很容易对现有模块进行改进。 (b)可裁剪性;指可以方便地将不需要的模块从系统中移出,而不影响整个系统的运行。 (c)平台独立性;指通过对仿真平台的抽象,开发者无需了解具体平台细节即可方便地进行 相关研究和软件开发。 (d)可移植性:指系统的软件能够顺利地移植到不同的操作系统上。 (2)计算实时性:机器人是一个非常复杂的系统,各个功能模块之间存在各种复杂的时序关系, 系统必须保证各个任务能够在规定时问内完成。 (3)可靠性:必须能够处理各种各样的异常情况,即使某些模块出现问题,也不影响系统的整体 性能。

第三章RoboCup仿真足球机器人总体设计与实现

3.3体系结构
多机器人系统的结构分为群体体系结构和个体体系结构,对于研究RoboCup足球机器人来

说,群体结构是固定的——即分布式结构,而个体体系结构则对决策所采用的方法、过程起决定性
作用,是本节研究的重点。

3.3.1群体体系结构
在RoboCup机器人足球队采用的是分布式结构,没有主控单元,各机器人之间的关系是平等 的,各机器人均能够通过通信等手段与其他机器人进行信息交流,自主地进行决策。如图3.2所 示,在RoboCup机器人足球赛中,一个研究的重点就是同一个队的不同机器人为了完成同一个任 务,相互之间如何协作;另一个研究的重点是如何与另外一只机器人队伍进行对抗,如对手建模。

图3.2 RoboCup机器人足球赛进行多机器人系统研究的模型示意图 相对于集中式控制来说,尽管分布式结构很难或者无法保证全局目标的优化,但是它有其故障 冗余、可靠性等诸多有点。然而多个机器人的知识、愿望、意图和行为等往往各不相同,对多个机 器人的共同工作进行协调,是足球机器人队伍能力和效率得以保障的必要条件,这在设计机器人个 体体系结构和上层策略时需要予以充分考虑。

3.3.2个体体系结构
仿真机器人个体的体系结构(即机器人控制器的体系结构),是指把感知、建模、规划、决 策、行动等多种功能模块有机结合起来,从而在动态环境中完成目标任务的机器人结构框架E】。如 果把智能体看作从感知序列到实体动作的映射,根据人类思维的不同层次,可以分为下列几类:反 应式、慎思式、跟踪式、基于目标式、基于效果式和混合式I”】。 传统的慎思式结构和反应式结构都有很大的不足。慎思式的结构的不足在于对外部事件的反应 时间较长,高层次的决策无法顾及底层对实时性的要求。而反应式结构则很难规划出较优的方案, 智能化低。现代的机器人软件体系结构必须决定如何将反应式控制和基于模型的慎思式控制相结 合。目前,多机器人系统开展的体系结构研究工作很多围绕着混合式体系结构进行。所谓混合式体 系结构就是通过对控制体系结构进行合理的分层,将包容式结构、反应式结构与上层规划、推理有机 结合在一起。该类结构能赋予机器人面对动态、复杂、非符号化环境环境表现出快速反应能力,而 且满足了复杂、动态的任务要求。 采用基于层结构的混合结构的RoboCup仿真队伍一般将机器人个体体系分为两层或三层:通 讯层、控制层和决策层。作为基于层结构的混合结构的典型代表,CMUnitedI叫队提出了多智能体 的层学习模式。但层学习有一个重要的问题,由于学习的过程是从低级到高级,逐步进行,每步学 习都是在低一层的基础上进行的,因此,当某一层学习产生误差时,误差会通过层之间进行传递, 使整个系统出现决策失误。UvATrilearn[”】采用了多线程三层的智能体结构,取得了很好的效果。 到目前为止,机器人软件结构仍是人工智能研究的热门话题。 在本文设计中采用按照响应速度划分层次的混合结构,如图3.3所示,它是由一个反应层、一 个执行层和一个思考层组成。

东南大学硕士学位论文

思考层

执行层

反应层

感知器 图3.3

执行器

SEU.RedSun仿真足球机器人的体系结构

(1)反应层:为机器人提供低层次的控制。它的特征是具有紧密的感知一动作循环,它的决策循 环是最快的,每个周期都会执行。 (2】执行层:在反应层和思考层之间起黏合剂的作用。它接收由思考层发出的指令,序列化之后 送给反应层。例如,执行层会处理由思考层生成的踢球命令,并做出采取那种反应行为的决 策。执行层的决策循环通常慢于反应层。执行层还负责将传感器的信息整合到一个内部状态 表示中,也就是更新自己的世界模型。 (3)思考层:利用规划生成复杂问题的全局解。因为生成这一类解过程中涉及的计算复杂度比较 高,它的决策循环通常较长。思考层使用模型进行决策,这些模型可以事先提供或者从数据 中学习得到,通常利用到执行层收集到的状态信息。 在图3 3中,感知模块处理从感知器接收到的数据,反应层的控制真接根据感知器信息完成控 制:建模是将感知信息整合到自身的世界模型中,即描述当前世界的状态;决策模块根据世界模型 决定机器人应该做什么;而序列化则是将任务分解,即实现如何做。这种三层体系结构的特点是: 高抽象层有较长的运算时间,可以更好地进行决策、规划;下层则有很快的反应速度。这样得到的 系统有良好的上层推理能力,也有较好的底层的反应能力。

3.4系统实现
考虑到对计算性能的要求和面向对象的程序设计,SEU.RedSun仿真足球机器人程序采用c++ 编程语言实现,还用到了一些已有的库,如STL、boost等。由于正式比赛平台是在Linux操作系 统下,所以编译器使用GCC,当然程序也可以在其它平台下编译运行。

3.4.1系统核心模块
SEU-RedSun仿真足球机器人程序的设计和实现充分利用了面向对象和设计模式技术。因为面 向对象为概念和代码提供了直接映射【”l;而设计模式是类的联合体以及与之相伴的算法,这些算法 能够实现共同的设计目标。图3 4是SEU-RedSun仿真足球机器人的UML类图。下面对图3.4中各 个模块的设计与实现作解释。首先,把图3f3中的模块进行抽象并作为核心模块来实现。在一个仿 真机器人程序中,一个核心模块只有一个确切的实例,而且需要在整个程序中都是可访问的。单件 模式(Singleton)使构造函数私有化,从一个共有的静态方法返回惟一的对象【“】。单件模式很好地满 足了核心模块的设计要求。SEU.RedSun中的核心模块都是分别实现为单件类(通过继承一个单件 模板来实现)。并且核心模块作为程序的框架,都是作为接口实现的虚基类,真正具体的功能实现 是在核心之外作为插件(或扩展)来实现的。如图3.4所示,SEU-RedSun包含以下模块: (1)通讯模(CommUnit),机器人通过此模块与环境进行交互,即发送和接受信息。为了能够使

得机器人程序能够通过不同的方式与rcssserver3d进行交互,Co.Unit的子类实现了对不同连

30

茎三兰墅竖望堕壅星堡垫矍△璺堡堡生量窒翌

图3,4 SEU-RedSun仿真足球机器人程序的系统实现

接方式的支持。这样的实现的目的是,机器人程序可咀在不同的条件下进行测试,比如从文 件读入上次存储的感知信息,就可以跟踪在线上次运行的情况。SEU-RedSun机器人程序支持 一下三种交互方式: (a)通过TCP协议与rcssserver3d进行网络连接,rcssserver3d默认agent通讯为TCP(端
口12000)。

(b)通过UDP协议与rcssserver3d进行网络连接。 (c)不与rcssserver3d连接,而将文件作为环境,接收信息为读取一个文件,而发送信息为 写入另一个文件,在离线调试缺少不了这个功能。

对于这三种不同的交互方式,Co.Unit提供了一致的接口,比如获取信息使用“>>”操作,而
发送信息使用”<<”操作,这与标准的c++输入输出流一致。 (2)机器人感知模块(Sensor),解析从环境得到的感知信息。目前有视觉、关节感知、触觉感知 和位姿感知等(详见2.3.1)。 (3)机器人执行模块(Effector),根据机器人的期望,生成rcssserver3d接受的动作命令。目前

可执行的命令有:创建、初始化、关节和传送等(详见2.3.2)。
(4)智能体核心模块(Agent),实现了感知一思考一动作主循环,完成与环境的交互。要注 意与传统的智能体循环不同的是,SEU-RedSun的三个层次在不同的线程中异步运行(详 见3.4.3)。另外,通过虚函数留出接口给思考和决策的具体实现。 (5)世界模型(World Model),是机器人对当前和过去的环境状态的描述,为规划和控制提供 信息。机器人配备了多种不同功能的传感器可以使机器人能够“感觉”到外部环境的变化,获 取不同性质的局部环境信息。通过对获取的信息进行有效的融合、处理及解释,机器人可 以“理解”这些信息的意义,并将其与机器人的决策和控制紧密地结合起来。世界模型(World Model)是机器人对当前世界状态的存储和解释。机器人利用世界模型决策出在一个给定情况 下的最佳行动,因此保持描述当前世界模型的准确和不断更新非常重要。本文在第4章详细介 绍了SEU-RedSun足球仿真机器人的构建和实现。

31

东南大学硕士学位论文

(6)机器人基本行为模块(Task),定义和实现了机器人进行比赛的基本行为。类人机器人要想 能够进行足球比赛,必须能够实现各种各样的足球运动员的行为,包括:双足步行、踢球、 起身等。行为产生是类人机器人研究最困难的问题之一,原因是类人机器人的自由度非常 高。在复杂、动态环境中,协调同一个机器人的不同执行器来产生行为仍然是机器人学和人 工智能领域中具有挑战性的问题之一。本文第5章提出了基于目标的类人机器人行为产生方 法,设计和实现了类人足球机器人的基本动作,如走路、踢球等。 (7)决策模块(Player),继承于Agent,机器人决策函数的具体实现,使得机器人能够对于不同 的比赛状态作出不同的反应。 根据比赛和调试的需要,在上述框架下基于Player实现了三个应用程序: (a)TeamPlayer:足球机器人决策模块,能够自主地完成RoboCup足球比赛,比赛的时候使

用此程序。它需要Formation类来定义各个机器人的类型、职责等。根据Formation中
定义的足球比赛的阵形,机器人根据场上情况动态地确定自己的策略位置。具体地说, 就是在阵形文件中定义了球员的类型和计算策略位置的相关参数,在程序初始化的时 候阵形模块读取阵形文件。本文的第6章介绍了SEU.RedSun在2v2足球比赛中采用的策 略,并对传球策略进行深入研究。 (b)GUIPlayer:为机器人仿真程序添加了图形界面,用户可以通过图形界面控制机器人的 行为,为设计和调试机器人的行为和算法提供方便(详见7.3)。 (c)90ystick:除了使用图形界面,用户还可以通过手柄控制机器人的动作,也是在调试和 设计阶段使用。 将程序的框架和具体算法分开实现(插件式结构)的好处在核心框架不变的情况下,可以很 方便地对程序进行扩展、调整,以适应新的要求。例如,rcssserver3d引入了一种新的传感器,只 要实现一个新的Sensor子类就可以了;或者rcssserver3d不使用某种执行器了,也只需要将对应的 Effector子类禁用就可以了。在SEU-RedSun中,所有的感知器、执行器、应用程序都是作为核心 类的子类实现的。下一步的目标是实现对于不同机器人能够使用相同的控制算法。

3.4.2辅助模块
除了上述的图3.4中的模块之外,还需要一些其它辅助的模块才能构成完整的仿真足球机器人 系统。这些模块以库的形式实现,充分考虑了代码的可重用性。 (1)serversetting:包含了所有rcssserver3d的参数、设置相关的信息。主要包括球场参数、球 的参数以及机器人模型。 (2)robot:与机器人相关的计算库,包含关节机器人的正、逆求解。求逆解包含了针对对机器人 腿部的解析法和通用的数值解法。 (3)controller:对机器人关节进行控制的相关控制算法,比如关节角度的P控制器。 (4)math:数学计算库,实现了角度、数值、矢量、矩阵和几何(直线、线段和多边形等)的模 板类。 (5)SexpParser:结构化表达式解析器I对sfsexp库进行了封装。 (6)logger:日志模块,实现分对象、分层次、可视化的日志系统,是调试程序的主要工具(详 见第7章)。 (7)Option:解析程序启动的命令行参数。用来在程序启动时设定机器人的队名、号码等参数。

3.4.3程序主循环的实现
依照图2.4中感知一思考一动作循环即可实现机器人程序与rcssserver3d的交互,完成仿真。但 是在不同的软、硬件环境下,运行效果差别甚大,在某一台机器上运行得很好的代码换一台机器就 不行了,这种现象和底层的通讯、控制有密切的关系。本文通过测试和分析,并使用依照系统层次 划分来实现多线程的机器人程序,以解决机器人程序与rcssserver3d交互中的问题。

第三章RoboCup仿真足球机器人总体设计与实现

3.4.3.1遇到的问题
机器人程序和rcssserver3d和之间是采用TCP/m的网络通讯方式,属于可靠的通讯方式,不存 在信息丢失问题。但是由于如果rcssserver3d没有在一个周期(O.02s)FIl接收到来在机器人的动作命 令,那么这个周期的命令相当于丢失了,因为该命令错过了执行时阃,后面的周期rcssserver3d会 收到多条命令,但是最后产生效果的只是最后一条命令。 从rcssserver3d端可以判断某一个周期有没有收到来自机器人的命令,表3.2测试并记录了 不同软、硬件环境下约5000周期内丢失命令的总和。被测试的町执行码为单线程的debug(D)版本 和release(R)版本,有决策(T)和无决策(N)版本,网络环境为本机(L)和局域网(R)。 表3.2不同软、硬件环境下的机器人丢失动作的测试比较

通过对程序的跟踪和分析发现造成动作丢失有两种可能: ?动作发出后rcssserver3d没有在该周期收到; ?该周期机器人程序没有收到或者很晚收到感知信息。 从表3.2可以看到比较理想的环境下丢失动作的概率很小,但是有时候表现确差别较大。在动 作信息中加入机器人的当前周期数,然后在rcssserver3d中比较该动作产生的周期数和作用的周期 数之差,也就是动作延时。通过测试发现,由于动作的丢失,可能会导致动作的延时产生变化,有 时丢失一个周期的动作,动作延时就增加一个周期,有时机器人一周期收到多条感知信息,也发出 多个周期的动作,延时就减少了。

3‘4.3.2问题分析
机器人程序与rcssserver3d的交互周期是0.02s,理想状态下机器人收到从rcssserver3d发来的 感知信息之后,立即开始思考,在0.02s内完成计算,再将动作命令发送给rcssserver3d。如图2.5所 示,由于rcssserver3d是每次发出感知信息之后就立即执行动作命令,所以除非在极短的时间内发 送动作,否则动作命令执行时刻的环境比生成感知信息的时刻是晚一个周期的,也就是正常情况下 从感知到动作有一个周期的滞后。 在这么短的时间内直接使用单线程的感知一思考一动作循环会遇到一些问题。首先,由于网络 连接的影响,并不能保证机器人程序收到的感知信息间隔是0.02s,会出现网络的延时现象。而单线 程的机器人程序会根据旧的感知信息作为决策发出动作,这样就会影响性能。如图3 5所示,第2个 周期的感知信息滞后了,导致第3个周期机器人没有动作,而第4个周期的动作延时变为2个周期。 其次,由于机器人必须在0.02s内作出实时的响应,这会限制有些复杂的算法的使用。时间的 限制会导致测试复杂算法的时候效果很差,但实际原因却是命令不能正常执行。如图3.6所示,机 器人第3个周期的思考时间过长,导致第4个周期没有动作。 图3.5和图3.6中的问题在调试代码的时候都是不可控制的,很有可能在调试某个功能的时候机 器人程序与rcssserver3d的交互出了问题,而怎么也找不到原因所在,比如在增加了机器人的某个 功能模块之后,发现机器人的行为不正常,但是通过分析日志、跟踪程序又没有发现什么问题,这 对于机器人程序的开发来说无疑是噩梦。 综上所述,简单的单线程的感知一思考一动作主循环有以下缺点: ?受网络影响较大,因为每个循环都要有等待感知信息; ?代码复杂度再提高就会造成频繁丢动作(如debug版本); ?无法估计自己动作的效果(动作延时在变化)。

东南大学硕士学位论文

图3.5网络延时对机器人程序与rcssserver3d的交互的影响

图3.6思考时间过长对机器人程序与rcssserver3d的交互的影响

3.4.3.3解决方案
对于图3 5的网络延时问题,可以通过机器人内部的计时器来与rcssserver3d保持通讯同步,来 减少网络延时对动作执行的影响,而图3.6中的思考时间过长则需要将机器人的反应层单独运行一 个线程,以保证响应的实时性。最终,本文根据3.3所设计的三个功能层次,将每个层次实现为一个 单独的线程,线程之间是异步通讯的。其具体算法伪码如图3.7所示,反应层线程中完成最底层的 通讯和关节控制任务,所以该线程的计算量很小,能够保证机器人执行动作的实时性,并且根据收 到感知信息的时刻决定发送动作命令的最佳时刻。执行层线程负责维护世界模型,并且根据上层决 簧的目标来产生动作序列。思考层根据世界模型决策出当前的目标,一般进行比较复杂但实时性要 求不高的运算。这样,将三个层次分别实现为三个线程,满足了反应与慎思相结合的要求。 本文的三线程实现与UvATrilearnI“】中的三线程实现是有区别的,在UvATrilearn中每个线程 分别负责感知、思考和动作,这里是根据机器人个体体系结构的层次来划分线程的。图3.8是三个 线程运行的序列图,三个线程是异步运行的,通过信号来互相通讯。反应层的循环是根据收到感知 信息的时间来决定,执行层在从反应层得到解析后的感知信息后开始工作的,而思考层则是在世界 模型更新后才作出新的决策的。当计算资源比较紧张的时候,反应层不会受到太大的影响,而思考 层和执行层的频率会自然下降,这样就保证了整个机器人响应的实时性。 使用多线程的好处是减少了等待通讯的时间,在满足反应层实时响应的基本前提下,允许思考 层和执行层来计算出更好的结果。并且在开发程序功能模块的时候,使得不可控的干扰因素减少。 从图3.8中可以看出使用多线程使得系统实现变得复杂,需要使用同步、互锁等功能。另外,思考 层和执行层的信息有可能并不是最新的,这会对控制带来一些滞后,但是通常这一点滞后在执行层 和思考层是可以接受的。执行层和思考层并不是每个周期都执行一次,但这也没有问题,只要执行 层生成的动作序列中有足够长的序列,而思考层并不需要每时每刻都重新作出新的决策。 通过测试该多线程结构很好地解决了简单的感知一思考一动作所带来的一些问题。

3.5小结
本章采用了自顶向下的设计方法对类人仿真足球机器人程序进行需求分析,并对SEU-RedSun 类人仿真机器人程序进行总体设计,描述了相关的具体实现。SEU.RedSun仿真机器人程序使

兰三兰堡生箜竺望塞星堡垫矍垒璺堡堡茎墨壅翌
用了一个多线程的、混合结构的、模块化的框架,是研究足球机器人仿真的基本平台。本节将 SEU-RedSun仿真机器人程序结构的重要特性总结如下: ?混合式的智能体结构,通过对控制体系结构进行台理的分屠,将反应式结构与上层规划有机

结合在一起,按照响应速度要求划分为三层(见3.3)。该结构能赋予机器人面对动态、复
杂、非结构化环境环境表现出快速反应能力,而且满足了复杂、动态的任务要求。 ?可扩展的模块化结构,将基本的智能体模块作为系统的核心,而其他的具体功能实现模块作 为系统的扩展(见3,4.1)。这样实现的好处是在核心框架不变的情况下,可以很方便地对程 序进行扩展,对于程序的后续开发和研究起非常重要的作用。另外,对核心模块采用单件模 式实现,在程序中可以很方便地对各个模块操作和访问。 ?按照机器人个体体系结构的设计,对不同层次采用多线程实现(见3 43),这样实现的好处 是减少了等待通讯的时间,在满足反应层实时响应的基本前提下,允许思考层和执行层来计 算出更好的结果,并且在开发程序功能模块的时候,使得不可控的干扰因素减少。

线程反应层
初始化

创建执行层线程
创建思考层线程 CommUnit与连接SelWer连接 while与Server保持连接do message-调用CommUnit模块接收感知信息 actTime一根据接收到信息的时间计算执行动作的恰当时间 perception-处-理message 将perception发送给执行层线程 挂起直到actTime时刻到来 command_根据action,调用控制器生成符合¥eIWel"要求的指令 通过CommUnit发送command给sel-ver

结束执行层线程 结束思考层线程
线程执行层
while true do

l挂起直到受到来自反应层的新perception 1更新World Model

l发送READY信号给思考层线程 I action+-根据decision调用Task模块生成动作 L将action发送给反应层线程 线程思考层
l挂起直到受到来自执行层的READY信号:更新World Model J decision p根据World Model,调用Player决策下一步行动

I一将decision发送给执行层线程

图3.7 SEU-RedSun仿真机器人程序中反应层、执行层和思考层相应线程伪码

东南大学硕士学位论文

召囤回曰四国固 型 l 蟊paise p露cepUon。l
mad()

!爿pe”印ti矗 I_
‘一一.I





timed_waitO

controlO

—_
f一.一l

send()



7l








on

WaitO

—_
‘一一.I

upda

re()

78I
READY

perform()


§

,actioⅡ7冒

思. 考循环J WaitO


36

—七■ think()

。get()l 1w。rld stateJ |_
deci! don

decision

图3.8 SEU.RedSun三个线程交互的UML序列图

第四章世界模型的构建与实现

机器人配备了多种不同功能的传感器可以使机器人能够“感觉”到外部环境的变化,获取不同 性质的局部环境信息。通过对获取的信息进行有效的融合、处理及解释,机器人可以“理解”这些 信息的意义,并将其与机器人的决策和控制紧密地结合起来。世界模型(WorldModel)是机器人 对当前世界状态的存储和解释。机器人利用世界模型决策出在一个给定情况下的最佳行动,因此 保持描述当前世界模型的准确和不断更新非常重要。本章描述了SEU-RedSun仿真足球机器人中世 界模型的设计与实现。4.1概述了世界模型的功能;4,2.1介绍了SEU-RedSun仿真足球机器人中如 何描述环境;4.2 2描述了世界模型的更新方法;4.3中描述了如何预测世界的未来状态;最后4.4对 SEU-RedSun仿真足球机器人的世界模型进行总结。

4.1概述
机器人从感知器得到当前感知信息作为输入,返回一个命令交给执行器。最简单的形式是一个 机器人基于当前的感知选择自己的行动,但是其智能是相当有限的:只有在可以仅根据当前感知信

息来完成当前决策的情况下才能工作——也就是,只有环境完全可观测的情况下p”。对付部分可观
测环境的最有效的方法是让机器人追踪记录当时无法观察到的那部分世界。也就是说,机器人应该 维持某种取决于感知历史的内部状态,从而至少反映出当前状态的某些不可观测的方面。 类人机器人拥有种类和数目众多的传感器,各种传感器之间联系密切,因此在更新机器人的内 部状态时需要信息融合技术。传感器信息融合(Sensor Data Fusion)又称为数据融合,它是针对多种 信息的获取、表示及其内在联系进行综合处理和优化的技术【1。传感器信息融合技术对多信息的感 觉进行处理和综合,得到各种信息的内在联系和规律,从而剔除错误信息,保留正确有用成分,最 终实现信息的优化。传感器信息融合技术方法分为四类:组合、综合、融合、相关。由此产生多种

算法,例如加权平均法、贝叶斯估计、卡尔曼滤波、统计决策理论、D-S证据推理、神经网络和模
糊推理法等。 如图4.1所示,SEU-RedSun仿真足球机器人程序的世界模型包含了内部状态和状态的预测。


视觉信息 比赛信息 世界模型
图4.1

内 部 状态 真个体赛 时关的的 问节位状 的置态

角和 度姿 态

』,●_ J【- 状态的预测

仿各物比~ 关节是如何运动的 球在自由状态下是如何运动的 两个物体相撞会有什么样的结果

SEU-RedSun仿真足球机器人程序的世界模型

由于行动的选择基于世界模型中的内部状态,所以它应尽可能地精确地描述一个实时世界。同 时,世界的模型提供一些预测方法,使得机器人能够得到更高层次的信息。这些方法是形成机器人 动作选择过程的基础。 根据这个内部状态信息要求预测得到世界未来的状态,机器人程序的代码中需要加入两种类

型的知识。第一,需要在某些关于世界如何独立于机器人而发展的信息——例如,运动的足球将停

东南大学硕士学位论文

在哪个位置。第二,需要某些关于机器人自身的行动如何影响世界的信息—例如,机器人踢到球
后,球是如何运动的。这种关于世界如何演化的知识被称为世界的模型刚。
简而言之,世界模型需要实现如何根据感知信息维护内部状态,并能够利用内部状态和世界的 模型进行预测。

4.2内部状态
对于足球机器人来说,内部状态需要描述的信息有足球场、足球、足球机器人等。本节将描述 SEU-RedSun仿真足球机器人程序中内部状态的表示方法和更新方法。

4.2.1世界描述
描述机器人所在的三维环境是一个具有挑战性任务。因为在机器人程序中,对环境的描述影 响、甚至决定了机器人是如何完成思考和控制。 在SEU-RedSun仿真足球机器人程序中,需要描述的世界是一个虚拟的足球场。作为一个多智 能体系统,足球场上有多个机器人,此外还有一些“被动的”物体,如足球、标杆和球门。这些“被动 的”物体不能对当前的状态作出响应,它们的状态只受到环境中的自然定律和机器人动作的影响。 根据这些可以将rcssserver3d的仿真世界定义如下: ?环境E,是~个三维空间; ?在环境中包含一个物体的集合o。 ?在环境中有一个机器人的集合R,并且R£0。

4.2,1.1环境
为了描述物体在三维空间中的全局位置和姿态,在世界模型中需要建立一个全局坐标系∑。。 如图4.2所示。在SEU-RedSun仿真足球机器人程序的世界模型中,球场的中心是坐标系∑Ⅳ的原 点,x轴与球场边线平行,Y轴与球场底线平行,£轴方向为竖直向上,并且z轴正方向指向对方球 门。囡此,世界模型中全局坐标系∑。根据本方是哪一边决定的。也就是当本方球门在左边的时 候,三w与rcssserver3d中的全局坐标系(见图2.13)一致;反之,∑w就是rcssserver3d中的全局 坐标系绕z轴旋转180。后得到的。这样的坐标系更加容易使用,因为机器人很容易根据坐标区分对 方半场和本方半场。

图4,2世界模型中的全局坐标系∑w

4.2.1.2单个物体的状态
由2.2.2可知,在ODE仿真世界中,所有的物体都是刚体。对于单个刚体的属性可以分为物理

属性和几何属性两类㈣。
(i)物理属性:剐体的一些物理属性在仿真过程中是不会变化的 ?质量; ?质心在物体中的位置;

第四章世界模型的构建与实现

?惯性矩阵.一个3



3的矩阵来描述物体的质量相对于质心的分布。

而另外一些物理属性是随着时间变化的: -位置“,Y,z): ?线速度(v。,v”叱);

?朝向,可以用四元素(孙q。,o,qz)或者3×3的旋转矩阵来表示;
?旋转速度(Wx,Wy,wz)。 (2)几何属性:几何属性描述的是物体的形状和大小。在ODE仿真中复杂的形状有基本的形状组 成,基本的形状包括球形、圆柱和长方体。 (3)位置和姿态:要确定刚体在空间的状态,不仅要知道刚体的位置,还要知道其姿态。通常的 方法是建立一个和刚体固连的坐标系Z。,用∑。相对参考坐标系的位置和姿态来表示物体的 位姿。如图4.3所示,三维空间中一个物体的位姿可以用物体的中心点P的位置和表示物体姿 态的旋转矩阵R来描述。则佃,R)表示与物体一起运动的坐标系三。a在程序中将p和R组

图4.3三维空间中物体的位置和姿态 成4×4的齐次矩阵T来表示位姿:


r=【R汁
h以缸m
唧唧唧乃 啦吼吒改

O O 1

(4.1)

其中(如,吩,性)、(以,oy,D:)和(缸,ay,口z)分别为Z。坐标轴上的三个单位矢量n、D和口。因此尽 管R有9个元素,但其中只有三个元素是独立的,这时存在着6个约束方程 ln||=IIolI=Ilal『=1,n×0=4 并且R是正交矩阵,即有
R.。=R1

(4.2)

(4.3)

另外.考虑到程序中对矩阵操作,这里采用的是行优先的矩阵形式,这样可以直接将矩阵的

某一行直接取出。在其它一些文献中采用的是列优先形式,即r:I R.?l,这两种形式会导
致坐标变换时矩阵相乘的顺序不同。

4.2.1.3机器人自身状态 由于类人机器人是由很多连杆和关节构成的复杂机械系统,对它进行状态插述的第一步是对
其连杆和关节进行分解。由2.3-3可知,rcssserver3d的机器人是通过关节将刚体连接起来组成的。 Xffsoccerbot056机器人进行分解,如图4.4所示,身体的每个部位由一个刚体和一个关节组成,整个

东南大学硕士学位论文

机器人组成一个树结构,其中长方形表示立方体刚体,大圆形表示球形刚体,小圆圈表示关节。 对于树形结构的机器人,连杆上会存在多于一个传动轴,用D。H方法建立杆坐标系时会产生歧 义卜“。因此本文将杆坐标系建立在连杆(刚体)的中心位置,并存储关节在此坐标系中的相对位 置。由于机器人的状态被分解到树结构中,程序可以很容易地进行遍历和数据存取,比如进行机器 人运动学的正、逆求解。

图4.4类人机器人刚体连接 为了使得这个树结构完整地描述机器人的状态,身体的每个部位(BodyPart)需要包含以下属 性: ?连接属性,作为树结构中的一个节点,需要存储该节点的父节点和子节点; ?刚体属性,组成该身体部位的刚体,见4
2.1.2;

?关节属性,描述通过哪种类型的关节与父节点连接,以及关节的角度、速度等相关信息; ?感知属性,如果该部位装有触觉、姿态等传感器,保存得到的感知信息。 在这个描述机器人自身状态的树结构中,机器人装备的各种局部内部感知器(比如,触觉、姿 态等)的信息被存储在对应的身体部位的感知属r}生中,而对于全局感知器(比如,视觉、听觉等) 则是单独存储和处理的。所以,机器人的自身状态可以完全用这样一个树结构来描述,而且以后需 要的时候修改起来也是很方便。

4,2,l,4其它物体的状态
由于机器人只能通过视觉感知到环境中的其它物体,并且只能感知到该物体的位置,所以在世 界模型中只包含其它物体的位置信息和速度信息。由于机器人可以通过自身位置和视觉信息计算出 该物体的全局位置和全局速度,世界模型中也包含这些物体的全局位置信息。但是在环境中物体的 数目是不确定的,所以程序中采用map来存储这些信息,通过物体的感知名称(rcssserver3d中定 义的该物体名称)访问这些全局信息。

4.2.1.5比赛状态
世界模型中还包含了足球比赛的相关信息,包括比赛时间、比赛模式等(具体见2.3.1.7)。

4.2.2状态更新
由于比赛环境一直处于动态变化之中,机器人不断地通过感知器得到感知信息,所以世界模型 中的内部状态也需要不断地进行更新。在4,2.1中介绍的环境描述中,有些信息是可以直接通过感知

第四章世界模型的构建与实现

信息更新的,而其它的信息则需要通过新的感知信息和旧的内部状态计算得到。所以内部状态的更 新可以分为两步,第一步是感知信息处理,即将从rcssserver3d得到的感知信息分析并存储到内部 状态中。在SEU-RedSun仿真足球机器人程序中感知信息处理工作是在反应层由各个感知器类分别 负责的,然后将结果存储到世界模型中。第二步是更新,利用新的感知信息和旧的内部状态计算得 到新的内部状态,具体实现是由执行层调用世界模型的更新函数完成的。 机器人不能从感知信息直接得到的信息包括自身的位置、姿态和速度,以及其它物体的位置和 速度。要确定这些信息,首先必须要根据视觉信息中标杆的信息来确定机器人自身视角的位置和姿 态(pn Rv),然后根据视觉信息(d,0,≯)按照式4.4和式4.5计算得到该物体的全局位置Po。

儿=卜dcos(觜‘b)cos(O+卿90)J]7
4.2.2.1

(4.4)

(4.5)

自身定位

由于机器人无法直接得到自身的全局位置和姿态,因此需要通过综合场地周围放置的标志杆的 全局位置和视觉信息,以确定自己视觉的全局位置P。和姿态Rr,这就是机器人的自身定位问题。 在rcssserver3d仿真足球场中设置有几个固定的标志杆,它们的名称和全局位置如图2.13所示。 从理论上来说,只要根据两个标志杆的视觉信息和全局位置就可以确定机器人自身位置和姿 态。可以得到如下方程组:
Pol=Pv+Pal?Rv P02


(4.6) (4.7)

Pv+PA2?Rv

再与式4.2联立成一个12元二次方程组,但是求解这个方程组是比较困难的。 本文通过三个标志杆来实现机器人的自身定位。通过一个标志杆的视觉信息的距离信息d和其 全局位置可以可到P。所在球面;利用两个不同的标志杆信息可以将Pr确定在一个圆上(两个球面 的交集);而利用三个不在一条直线上的标志杆信息则可以确定P。的两个可能位置(三个球面的 交集),而Z值大于0的那个点就是Pv,因为PVz>0。 如果已知三个标志杆的全局坐标(Xl,Y1,z1)、(X2,Y2,Z2)和(均,y3,匀),以及它们与机器人视角的 距离分别为dl、d2和d3,要求P,=(x,Y.z)就是要解三元二次方程组4.8。


P P n规奶 P
+++

O一

p P
+++






:讲









=研
=嘏

(4.8)

,●_1l, I●L 扛“扛 展开得到



O 一 M弛” P

&0“ 一 如龟马 P

{x2—2xx2+旷一2yy2+z2—2zz2=C2 【,一2xx3+),2—2yys+z2—2zz3=C3
对式4.9,用①.@,①.③可以得至0

f,一2xxl+)12—2yyl+z2—2托l=Cl



⑦其中{C2=《一毫一疆一乏 @ 【C3=碍一毫一圬一z;

f Cl=斫一畸一靖一右
(4.9)

{2x(xl一-柏x2))++22yy(y(y,l一-yY,2))++2z(zt一-z322;i
I 由于三点不共线,所以不完全满足约束条件

t x(x2E。- 2z(zl -一 一z3); 2C 一柏)+2y(yI—y3)+

C3:
一cl

(4.10) 、‘吖

』(x3一X1)(Y2一yO I(均一J1)(现一Z1)

=(x2一xO(y3—-y1)
=(x2一xO(z3一zO

(4.11)

4l

东南大学硕士学位论文

如果式4.1 l的两个条件中有一个条件是满足的,则通过式4.10可以求出(五Y,z)的解。而如果两个条 件都不满足,可以用z来表示z和Y:




(4.1 2) ,f_●、_L
y =

也就是

,:业f::


=(e2一C1)(),l—y3)一03一cO(yl—y2) =2【Q1一z2)(yl—y3)一(z1一z3)(yl—y2)】 =(c2一cD(x】一x3)一(cs—c】)(却一x2) =2[(zl—z2)(xl一均)一Ql—zs)(xl—x2)】 =2【(xl—x2)(『yl—Y3)一(。1一X3)(Yl—y2)】 (4.13)

,=哮舯隧
2—=_

b 解之得

将式4.13带入方程组4.9的①式得到一元二次方程

f A=醒+6;+c2

A孑+Bz+c=o喜E中{B=2(一口,b‘,+CXl6,一ayby—cylby—c2) I C=《2—2cxlax+弓+2cy】ay—clc2

(4.14)



5——■万一

一B±V-雨-4AC‘
(4.15)

把式4,15代回到式4.13得到z和y。通过验算不难发现,当式4.1l中有一个等式满足的时候,式 4.15也是方程组的解,所以式4.15为原方程组4.8的通解。 在求出p。之后,可以利用一个标志杆的视觉信息和式4.4、式4.5和式4.2计算Ry。但要注意 到这是一个九元二次方程组,也非常难求解。实际上,同时利用三个不在一直线上标志杆的视觉信 息可以方便地求出Ry。首先根据式4.4求出三个标志杆在机器人视觉坐标系中的相对位置“,、p.,

和P心根据rcssserver3d中计算视觉信息的公式2.2可得到下列方程组

『pol—pr 1



PD2一pv

Ry

II

【p03一py J
解之得

r『-t_ 『_-【 九儿儿




(4.16)

Rv=I肋2一py l—l

『胁一p,1_I『几。1
Pa2

(4.17)

【p03一,y J

【PA3 J

综上,利用不在一条直线上的三个标志杆可以确定出机器人视觉坐标系的位置和姿态,并且计

算过程要比只用两个标志杆简单。通过仿真实验测试,阳口尺e棚“n仿真机器人的自身定位平均误
差为0.01m,最大误差为0.03m,满足了控制精度的要求。如图4.5所示,可以看出误差主要集中在 竖直方向上,这是因为在机器人的视觉信息中z方向的值通常较小,而误差的来源是截断误差,导 致了z方向上的误差最大。 直接用上述方法在目前rcssserver3d的配置下,即没有随机噪声的情况下,可以计算得到很精 确的位置和姿态。如果rcssserver3d在视觉信息中引入了随机噪声,就需要考虑采用各种滤波方法 来提高结果的精度,对于机器人定位滤波的研究【o?Ⅻ,3 2,叫已有很多。

4.2.2.2更新关节位姿
soccerbot056机器人的视觉感知器是与上部躯干的刚体绑定的,所以得到了视角坐标系(Pv,Rv) 就得到了机器人躯干的全局位置和姿态。但是仅仅知道躯干的位姿还是不够的,比如在机器人步行 控制时需要知道当前的重心位置(CenterofMass,CoM)和零力矩点(Zero Movement Poiat,zMP)等。

42

第四章世界模型的构建与实现

越熹o。.o。。os,
馨O.006 爿0.005

者o.004
删0003

≥嘿。oJoo.002l
器0 仿真时间(s)

嚣。脚 略0.03

骶;
爱o
015

喔00l

型0005
稚0 仿真时间(s)

图4.5机器人自身定位误差

在计算这些信息的时候,需要知道机器人身体所有部位的位置和姿态。 正运动学(forwardkinematics)是指根据关节角求连杆的姿态。它常用于机器人的重心计算、机 器人状态的图形描述(可视化)和与环境碰撞的判定等情况,是机器人进行预测的基础。首先看 两个通过关节相连的刚体(如图4.6),其位姿分别为(巩,R,)和(P,,R,),其中i刚体为J刚体的父 级。正运动学就是根据(肼,Rf)和关节转动过的角度日计算出(p,,Rj)。根据关节轴的指向可以根据 以下公式计算出由于转动日角度所对应的旋转矩阵RA:
I 1
0 0

lix(回=1



COS目sin日

(4.18)

1 0一sin目COS口 l COS目0一sin0

Ry(日)=l


0 sinp

1 0

0 COSp

(4.19)

f l

COS口sin日0

R(∞=l—sin目COS口0
0 0 1

H.20)

根据坐标变换可以得到

暑:]_ h川RA川:,o]【=?:]

H.21)

【‰+bj)R,+A。i】
【(一6JRA+
+A
43



(4.22)

其中阢为关节位置在∑i坐标系中矢量,6,为关节位置在∑J坐标系中矢量。

东南大学硕士学位论文

图4.6两个连杆的位置关系

对于图4.4所示的树结构,已知任意一个身体部位的位置和姿态,以及所有关节的角度,就可 以根据图4.6给出的伪码遍历整个树结构,计算出机器人所有身体部位的位姿。由于soccerbot056机 器人的视觉感知器与机器人的上躯干是绑定的,所以计算的到了机器人的视觉坐标系之后,就可以 计算得到整个机器人全身的位置和姿态。 在得到机器人全身的位姿后可以按照4.23式和4.24、4.25式分别计算得到质心(CoM)和零力矩 点(ZMP)t一,它们可咀用来判断机器人的静态平衡和动态平衡,在机器人双足行走等行为中起重要 作用。


c=∑叩,/M
式中m。和C。为每个刚体的质量,.】lf为机器人总质量。根据机器人运动计算ZMP的近似公式为:

(4 23)

m=塑链铲 丹=麴《铲
胪前
∑墨IPif=

i=1

f4.24)

(4.25)

当然ZMP也可以使用装在机器人脚上的力传感器(见2.3.1.4)测量得到数据计算
“.26)

式中p。和屉为每个传感器得到的力作用点和力的竖直方向大小。 内部状态中还有一些对当前状态的抽象描述,例如,机器人是否动态稳定、静态稳定,摔倒 等。这些状态的更新主要依据是物理定律、经验,或者通过机器学习得到的映射关系。 为了比较和测试程序实现的结果,将机器人的内部状态通过图形的方式显示出来是十分有用 的,这样可以容易理解机器人的行为。在调试过程中迅速发现问题。SEU.RedSun仿真足球机器人 程序将内部状态记录到目志文件中,然后通过调试工具(见7.2)同时显示机器人的内部状态和仿真 的真实状态,图4,8中显示的是将机器人内部状态中的身体位姿与仿真实际结果进行比较,其中蓝 色的为机器人内部状态中描述的身体位姿,而白色的线条为机器人的真实位姿。经过测试比较发 现,程序的中内部状态描述准确,符合精确控制的要求。

第四章世界模型的构建与实现

Input:第k个刚体的位置巩和姿态Rk

机器人所有的n个关节的角度值0i Result:计算所有的n个部位的位置P,和姿态风 //根据任一个身体部位的位姿更新机器人全身所有身体部位的位姿
function forwardKinematics(女,P“R^)

downForwardKinematics(t,Pk,Rk) upForwardKinematics(t,Pk,Rk)
end function

//己知一个身体部位的位姿,计算所有子身体部位的位姿(深度优先)
function downForwardKinematics(i,A.Ri)

for每个i部位的予部位J,且』部位的位置p,和姿态码未知do R△一』部位关节转动的旋转矩阵
RJ—R△Rf

『bi一,关节在i部位坐标系中的位置矢量
6,÷_J关节在J部位坐标系中的位置矢量 p,-一biRj+biRi+Pi
downForwardI(inematics(工pnRj)
end function

//已知一个身体部位的位姿,计算其父部位以及父部位的所有子部位的位姿
function upForwardKinematics(工pj,R/)


ifJ部位的父部位J存在then RA—J部位关节转动的旋转矩阵

R。一RTR』
bf一』关节在i部位坐标系中的位置矢量 b,一』关节在,部位坐标系中的位置矢量 pI--biRi+b取}+P;
downForwardKinematics(i,A,RD upForwardKinematics(j,Pf,Rf)

口d funcdon 图4.7机器人全身部位位置和姿态更新的伪码

图4 8内部状态与真实状态进行图形化比较

45

东南大学硕士学位论文

4.3状态的预测
机器人仅仅知道当前的状态还是不够的,有时它选择的动作会产生不理想的结果。而通常这 种不理想选择的情形只有在更多的动作被选择、执行之后才得以显现。在这种情况下,如果世界可 以退回到选择不佳行动之前的状态,将是理想的。这样机器人可以选择另一个不同的行动。如此反 复,可以选择到最佳的行动。换句话说,机器人要想产生智能的、理性的行为,还需要知道机器人 所处的世界是如何演化的,然后机器人可以根据当前的状态对未来的状态作出预测,在决策的时候 搜索预测得到最好状态。

4.3.1预测方法
预测是用当前和以前的状态计算未来的状态,这对于机器人的动作选择是非常重要的。目前, SEU-RedSun仿真足球机器人程序的世界模型中的预测方法可以分为以下两类: ?预测机器人执行某个动作之后的状态的方法。这些方法接收一个动作命令,预测出机器人做 出这个动作之后的状态(如位置、速度等)。 ?预测场上其它运动物体未来状态的方法。事实上预测其它机器人的状态是非常困难的,因为 机器人不知道其它机器人将要做出什么动作。一般情况下,世界模型不对其它机器人的状态 预测.主要是对球的状态的进行预测。因为相对于其它机器人来说,球的运动随机性较小, 因而球的位置和速度比较容易预测,除非有机器人踢它。 可以看出,在SEU-RedSun仿真足球机器人的世界模型中仅仅包含有低层次的预测方法,如预测运 动物体的位置;而利用这些底层次的预测和其他一些信息实现高层次的预测,例如,预测机器人从 某一点走到另一点所需要的时间,就需要将预测机器人执行动作的结果和机器人的控制策略结合起 来。

4.3.2预测模型的建立
预测是机器人根据内部状态和环境的模型计算未来的状态,与图2.8表示的过程相同,实际上 就是机器人在自己内部完成环境仿真的过程。因此,在机器人预测的时候可以直接使用ODE提供 的功能。直接使用物理引擎的好处是预测精度高、实现容易,但是,进行物理仿真的计算代价是非 常大的,如果机器人所有决策需要的预测结果都通过物理仿真得到,显然不能满足控制实时性的要 求。此外,由于机器人的内部状态与真实状态并不完全一致,对于时间跨度很长的预测,物理仿真 的结果也会有{艮大的偏差。 简化的模型在预测中同样有着十分重要的作用。比如,在预测机器人身体各部位位姿的时候, 使用机器人运动学模型,在某些条件下同样能预测出未来的状态。然而,并不是所有的模型都可咀 通过数学公式来表示的,这时候可以采用机器学习技术来“学习”世界是如何变化的。

4.4小结
本章介绍了SEU-RedSun仿真足球机器人中世界模型的设计与实现。类人机器人装备了多种传 感器,机器人不仅仅要处理单一、孤立传感器的信息,还需要知道整个传感器系统的状态。本节将 SEU.Red.Sun的世界模型的实现总结如下: ?内部状态中完整、精确地描述了仿真足球比赛环境和机器人的自身状态,见4.2.1; ?精确、高效的内部状态更新算法,从视觉感知信息确定机器人自身的全局位置,使用正运动 学计算机器人全身的位姿,见4.2.2; ?使用多种方法预测环境,包括使用物理引擎、简化模型以及机器学习技术,见4.3。

第五章类人机器人行为的设计与实现

类人机器人要想能够进行足球比赛,必须能够实现各种各样的足球运动员的行为,包括:双足 步行、踢球、起身等。行为产生是类人机器人研究最困难的问题之一,原因是类人机器人的自由度 非常高。在复杂、动态环境中,协调同一个机器人的不同执行器来产生行为仍然是机器人学和人工 智能领域中具有挑战性的问题之一。本章在5 1讨论了产生类人机器人行为的难点和关键;5.2阐述 了基于目标的行为描述;5.3介绍了如何离线设计类人机器人的行为;5.4中介绍了在线生成行为, 重点介绍了SEU-RedSIm仿真机器人的全向行走;最后5.5对SEU-RedSun仿真机器人的行为产生作 出总结。

5.1概述
工业机器人(机械臂)通常配备示教盒,利用这个装置可以为焊接、喷涂和抓取等作业设定末 端执行器的初始位姿和最终位姿,还可以设定中间路径点的位姿。控制器通过插补这些路径点形成 连续的轨迹,从而生成全身运动。在三维空间中实现任意的目标位姿至少需要六个自由度,而六轴 工业机器人正好具有六个自由度,因此通过逆运动学就可以将全部关节的目标角求解出来。然而, 对于类人机器人这样具有很多自由度的机器人,给定一个手部位姿,相应的关节角不是唯一的,可 以有很多组解。而且,类人机器人与工业机器人基座固定于地面的情况不同,其初始位姿、中间位 姿和最终位姿的设定必须确保机器人的稳定性(平衡)。 鉴于这个特点,大多数方法首先生成粗略的全身运动。然后在对它进行修正以满足动态稳定条 件。类人机器人具有人的形状,因而根据人的运动模式来生成其全身运动是个自然而然的想法。通 过运动捕获系统来获取人的运动数据,然后类人机器人进行模仿【l’,1”。然而,由于类人机器人与人 的身体特征之间有不可避免的差异,捕获的运动模式不能直接应用在机器人上。在CG(计算机图 形)动画中,图形世界中的人和拟人化的动物或机器人就像真实世界中的一样栩栩如生。通过CG 动画的制作也可以有效地生成类人机器人的行为。但是这里得到的全身运动仅仅满足运动学约束条 件,而并没有考虑诸如ZMP等动态约束条件,因此所生成的运动直接应用于实际系统上,机器人 无法保持平衡。搜索法也被应用在这个问题中,RRT搜索(rapidly-exploring random廿ees)l{“在由机 器人所有关节角构成的矢量空间中进行快速搜索,可以生成诸如捡取桌子下面的物体而避免与障碍 物相碰的全身运动模式”】,但是搜索法需要很多的计算量。此外这些方法没有考虑系统的动力学特 性,许多生成的运动不能实现稳定的动作而翻倒。为了解决这个问题,人们提出了许多修正方法, 包括动力学过滤和自动平衡等。 在RoboCup类人实物机器人中,Behnke等人p1】提出了在线产生全向步行轨迹的方法,该方法 使用层次化反应行为的框架结构,设计轨迹是满足运动学和动力学约束。产生的步态可以通过步行 方向、速度和旋转速度来定义,所以可以通过视觉反馈来不断修正偏差。Ogino[”】实现两个机器人 之间面对面互相传球。他将一个给定的任务分解成一个模块序列,每个模块包含产生适当基本运动 的控制参数,然后这些参数通过学习获得视觉信息和执行动作之间的关系(感知.运动),控制器根 据给定的任务选择一个模块,再由被选模块来产生基本运动。

许多RoboCup队伍(包括四腿组、小型组和中型组)使用可扩展的智能体描述语言(Extensible
AgentBehavior

SpecificationLanguage.简称XABSL)[o】来设计智能体在动态、复杂环境中的行为。 XABSL使用层次化的有限状态机来描述智能体的行为,为了获得复杂的行为,一些基本的行为单 元或模块通过连续、竞争,分层或者根据状态进行组合,这使得XABSL具有很好的可扩展性。 这些方法都是向真正的机器人智能行为努力,但是这些方法应用于复杂问题的时候仍有很多问

题。本文结合已有的方法,提出基于目标的机器人行为方法,并用来设计和实现SEU-RedSun的行
为。

47

东南大学硕士学位论文

5.2基于目标的机器人行为
在设计类人机器人行为系统的时候,必须最小化行为设计者的任务。首先,可扩展性是关键因 素:向已有的行为中添加新的行为一般比较困难,因为不同行为直接互相影响,并且对所有行为的 评价需要根据新加入的行为进行调整。其次,设计者一般希望能够完全控制机器人的行为,但同时 机器人又能自主地产生行为。此外,机器人的行为应以完成目标为导向,同时也要对于突发时问作 出响应。 使用层次化的逻辑(如层次化的有限状态机)可以使得行为产生的过程简单、直观,并且可 以完全被设计者所控制,但是一般需要很多人力,很难咀目标为导向。使用规划方法(如HTN Planner)则能够以目标为向导使用搜索算法实现自动化,但是规划本身忽略了控制和执行的能力。 而使用程序代码直接实现机器人行为应用也很广,因为可以进行任意的计算,但是很难内省、分 析,很难多个设计者同时开发。在设计和实现SEU-RedSun仿真机器人程序的行为系统对以上因素 予以充分考虑。 根据第3章中的体系结构,SEU.RedSun仿真机器人程序中机器人行动是由执行层产生的。 如图3.3所示,机器人的行动模块根据从决策模块得到的目标和当前环境的状态进行决策和规划, 调用反应层的执行控制器来产生具体的行动。SEU-RedSun仿真机器人程序中使用层次化的逻辑对

不同目标单独设计和实现各自的行为——比如,机器人踢球和行走就是两个不同的行为。这样,在
设计和实现机器人行为的时候就可以大大地减少需要考虑因素。但是,并不是说所有的行为之间没 有关系,相互独立地各自工作。如果这样。各个行为的实现没有被重用部分,导致工作量非常大, 而且如果机器人模型变化了就需要重新设计所有的行为。因此.首先需要对基于目标的机器人行动 进行抽象和建模。

5.2.1基于目标的行为模型
通过分析不同的行动,可以发现基于目标的行动具有如下共同的特点;

-都有终止条件;当目标完成后,行动就可以终止了——例如,走路的终止条件是已到达目标
位置。 ?都有放弃条件;在某些情况下(通常是发生了不可预知的事件),机器人发现不可能达到目

标,这时就要放弃这个行动——例如,走路的过程中与其他机器人相撞倒地,这时就需要放
弃走路。 ?都有被中断条件;为了保证机器人行动的一致性和稳定性,机器人的一个行动不能在任意状

态被中断——例如.机器人正全速前进,突然停下会导致机器人摔倒。而满足中断条件的情
况下,即使没有完成目标,可以中断当前行动去完成新的目标——例如,机器人已经减到合 适速度,就可以停下了。 ?都有一个实现过程;虽然不同目标的行动具体实现过程各不相同,但是都有如下特点:

一要根据当前的状态作出不同的响应(见图5.1)——例如,机器人起身动作需要根据倒
地的方向作出不同的动作。 一最终都是调用反应层的控制器完成行动。 一另外,完成有些目标的行为很直接,比如单个动作就能满足目标;而有些目标需要一组 行动序列才能达到(见图5.2)。

,愈、
' , , ,

07’6

b、、o
图5.2复杂的行为通过连接一些子行为来完成

图5.1行为必须根据当前状态作出不同的响应

48

第五章类人机器人行为的设计与实现

图5.3 Task类及其子类的UML类图

根据以上分析和面向对象的概念,可以对各种不同的基于目标的行动建立一个抽象基类 Task。在设计和实现一个具体行为的时候,就是从Task类中继承一个子类,如图5.3中,起身( GetUp)、步行(Walk)和踢球(Kick)等具体行为都是Task类的子类。作为基类。Task类要求子类 各自实现的功能函数有:终止条件判断isDone0,放弃条件判断isAchieveableO,中断条件判 断isTerminableO和行为实现performO等。 如前面所述,一个复杂的行为可以通过连接一些子行为来完成,每个子行为完成一部分工 作,接着调用链上的下一个子行为继续工作(见图5.2)。在Task类使用一个指向Task类的指 针链表(mSubTaskList)来保存子行为,在执行该行为的时候就按照顺序调用子行为的实现函数。 此外,为了能够根据当前状态作为不同的响应(见图5.I),复杂行为的子行为是在运行时动态

地创建和删除的——例如,步行在初始化时只创建跨一步的子行为,然后在行走的过程中将已经
完成的子行为删除并创建新的子行为。这种设计采用的是行为型设计模式中的职责链(Chain of Responsibility)I“1设计模式,即创建一个能够表现功能的对象集合,希望能够很容易地增加和删除对 象,这些对象用来处理所有的或者部分职责。

5‘22行为树
图5 2是一个复杂行为分解一次的情形,实际上复杂行为可以进行递归分解,也就是子行为是 有子子行为组成,这样就得到了树型结构的行为对象,称之为行为树。在上层决策给出执行哪个 行为之后,这个行为的一个对象就是根行为,它就是行为树中的根,然后根行为被递归地分解为 可以直接执行的简单行为。图5.4是SEU-RedSun仿真机器人踢球动作的行为树,圆圈表示图中展 开的行为,三角表示未展开的复合行为,矩形表示基本的动作。踢球首先选择用左脚还是右脚踢 球,然后依次调用“走向踢球位置”、“调整方向和姿态”、叶台腿”和“踢”这四个子行为。而“走向踢球 位置”和“调整方向和姿态”又是由子行为组成的。“抬腿”和“踢”这两个行为直接调用底层的“摆腿”动 作完成。 采用行为树组织和管理各种行为的好处有: ?接口一致,封装性好。在管理和调用这些不同的行为时很方便。 ?具有可扩展性,容易添加新的行为,只要将行为添加为树的一个分支就行了。 ?可重用好,虽然有很多行为需要分别实现,但是复杂的行为大多可以利用已有的简单行为 并且可以在已有行为的基础上构建更加复杂的行为。 ?简单、直观,方便调试,如果需要设计者可以完全控制机器人的行为。

东南大学硕士学位论文



图5.4用行为树描述踢球过程

?具体实现多样化,在同一的接口下,每个行为的实现方法可以具体问题具体解决,SEU- RedSun综台使用了离线设计和学习(见5.3)和在线生成(见5.4)两种方法。在实践过程中 一般是先实现简单的算法,然后再用复杂的先进算法替代。 ?在目标不冲突的情况下,可以实现不同动作的并行。 ?可以保证动作的持续性,一般动作都需要一定的时间。 ?动作衔接连贯性,相邻的两个行为可以获取对方的参数和信息,可以从各个层次实现动作的 衔接。

5.3离线设计和动作学习
当类人机器人的行为被描述成行为树之后,还要定义行为中的多个条件以及执行函数 (见5.2)才能完全确定机器人的行为。一种方法是离线状态下由设计者进行设计和定义,然后 运行仿真,根据结果与期望进行修改,这样反复赢到满意为止。该方法的有点是设计者可以完全定 义机器人的行为,比较适合特定状态下的复杂行为。 一个复杂的动作流程可以划分为几个动作,这些动作就作为行为树中的子动作,这些子动作的 目标就是从当前的状态调整到目标状态。在SEU-RedSun机器人仿真程序中,离线设计的动作包含 以下参数: ?目标状态的关节角度; ?是否对目标状态的值进行左右互换: ?动作的持续时间,即完成动作的规定时间 ?是否可以被打断; ?是否自动将脚调整为水平; ?下一个动作。 有了目标状态的关节角度和完成动作的规定时间,机器人的关节控制就可以计算出关节电机的期望 速度,完成该动作。设置左右关节角度互换的标识是因为机器人的有些动作是左右对称的,只需要 左右关节角度互换就可以了。设置是否可以被打断是根据Task的要求,以判断当上层策略改变是 否可以直接切换动作。在有些动作中,不希望机器人的脚撞到地上,这时候需要机器人的脚的动作

第五章类人机器人行为的设计与实现

的过程中一直保持水平,而只有初始关节角度和目标关节角度是不能保证脚在动作的过程中水平 的,自动将脚调整水平就是根据机器人脚部的位姿,调整脚上的两个关节,以保持脚底的水平。 当然该方法在调试的时候是非常耗时和枯燥的,本文使用GUIPlayer(见7.3)来修改机器人 的行为,该工具将离线修改变为在线修改,动作的效果可以立竿见影地得到,极大地提高了效率。 SEU-RedSⅫ类人仿真机器人的摔倒后起身动作就是通过这种方法设计得到的,如图5.5和图5.6所 示,与其他队伍相比SEU-RedSun的起身动作具有耗时短、稳定好的优点。

图5.5

SEU-RedSun正面倒地后起身

图5.6 SEU-RedSun仰面倒地后起身 此外,在离线的情况下机器人可以“学习”人类的示范或者别的队伍机器人的行为。设计者使用 GUIPlayer或者手柄,控制机器人完成范例行为。当然也可以直接用别的队伍中完成的比较好的行 为作为范例,然后机器人利用机器学习技术学习模仿这些范例行为。目前,使用这种方法,机器人 能够完成一些静态条件下的表演动作,如何自动地根据范例行为生成行为树、以及如何学习动态环 境中的行为将是下一步研究的目标。

5.4在线生成动作
在类人机器人舞蹈和表演等情况下,机器人有足够长的时间以离线方式准备全身运动模式。然 而,在一些以前从未涉足的陌生环境中或面临新的作业或操作等情况下,有必要实时在线生成全身 运动模式。比如足球比赛中的双足行走就需要在线生成运动模式。双足步行控制已经有很多研究, 也有很多方法被提出用。然而,过去的大多数研究集中在传统的、周期的、稳定的双足行走,它们 并不适合动态的和对抗的环境,足球比赛中有很多移动的物体,并且其中的一些是与你对抗的智能 机器人。本节先对机器人取足行走的研究现状作简要总结,然后介绍在SEU-RedSun类人仿真机器 上实现双足全向行走。

5.4.1双足行走研究现状
在过去的30年里,人们对双足行走作了很多研究,并提出了很多双足步行的方法。总体上, 如图5.7所示,这些方法可以分为两类:基于模型的方法和无模型的方法。前者需要设计者精确地 建立目标系统的物理模型并针对这个模型设计控制器,后者利用的机器人的动态特性或者将感知信 息融合到运动之中。 基于模型的方法假设机器人与环境交互的所有信息都知道,基本的物理模型也是知道的,设计者 就可以预测出整个系统的动力学,并根据预测创建控制器。换句话说,设计者处理感知信 息,并理解整个系统。这种方法的一个共性就是给每个关节角度设置参考轨迹。各种方法用 来计算轨迹的思想不同。两个最完善的概念是零力矩点(Zero Moment Point,缩写为ZMP)[1和

5l

东南丈学硕士学位论文

动态的、自然的、高

人类的双足步行效的、鲁棒性好、适

机 模

ZMP

荔适
境知

一鞋一一

的么融一/

厂幺 一一≤

境和控 性

CPG.PDW

圈5.7双足步行研究的两条途径

倒立摆。机器人足底所受合力所通过的在足底上的这个作用点称为零力矩点。当ZMP在支撑 多边形内的时候机器人就是动态稳定的【rI。首先,通过求解运动的动态方程,离线产生每个 关节的轨迹或者ZMP的轨迹。然后,在行走中使用高增益的位置控制器来跟随预定义的轨 迹。使用轨迹控制的机器人不能应对环境的干扰或者变化。这种方法需要机器人的动态参数 来预先准备,并依赖于好的环境模型。

无模型的方法有学者认为步行不应该作解析规划,而应该使用一种通过系统和环境之间的反馈和
动态交互作用融合而成的一种非线性震荡【’‘。。中央模式产生器(Centeral Patcern Generator,简 称CPG)被用作产生类似肌肉骨骼系统的行走。这种方法不需要机器人和环境的动力学模型, 但是确定CPG的结构和参数非常困难¨4】。 被动步行(passive aynamic walk)是一种让机器人在势能的作用下沿小斜面步行而下的方法, 具有节省能量的优点,目前很多有关半被动步行机器人的研究正在进行中n】。

5.4.2双足全向行走
机器人能蟛想任意方向运动,同时能够保证一定的速度在机器人足球比赛中无疑有很大的优 势。本文使用多层结构控制器来实现类人机器人的全向运动。

5.42.1多层结构控制器
在SEU-RedSun仿真机器人程序中将双足全向行走表示为walk(pa,如),其中如是一个二维 矢量,表示目标在全局坐标系∑w中的位置,如表示机器人到达位置丹之后的朝向。对于复 杂的问题,比如全向行走,一般都可以按照层次分解为一系列的简单的子问题。如图5.8所示, SEU.RedSun仿真机器人程序中使用的步行控制器按照功能可以分为四层,不同的层次模块负责不 同的任务。路径规划器接受输入的目标状态儿和如,根据机器人的当前状态n和以和环境中的 障碍物规划出步行的路径,并将所需的移动和转身传给步态生成器。步态生成器根据当前的步态产 生下一步的步态,接着轨迹生成器根据机器人模型决定关节角度轨迹。最后每个关节的角度控制器 计算出关节期望的角速度。

5.4.2.2行走路径规划
行走路径规划的任务是根据目标(砌,如)和当前的状态决定机器人行走的路线。对于足球机器 人来说,到达目标所需时间越短越好,当然还不能撞到其他物体。SEU-RedSun仿真机器人的行走 路径规划流程如图5.9所示。 其实这是从A+算法变化而来的,在规划的时候先不考虑场上的障碍物,根据目标、当前位姿 和机器人的移动能力确定步行路径;然后检查路径中是否有障碍物阻拦,如果有则根据障碍物的边

52

第五章类人机器人行为的设计与实现

图5 8在线步行控制器的多层结构

图5.9步行路径规划

界,将路径分为两条,重新进行搜索;重复这个过程,直到选择的路径中没有障碍物了。整个算法 流程如图5.10。 SEU-RedSun仿真机器人使用该方法能够规划出避开障碍的最短路径,图5 11是机器人在从球 门后回到球门前过程中规划出的路径,蓝色线段表示从起始位置到目标位置,红色线段表示障碍物 阻挡的范围,绿色的折线是机器人最后规划出的路径。

5.4.2.3步态产生
如图5 12所示,机器人移动一步可以根据游脚的动作划分为三个阶段:抬脚(shifting)、移动 (swinging)和落脚(10ading)。 在行走的过程中,机器人一直在重复这三个步骤,与此同时机器入必须移动躯干以保持平衡。 因此,忽略掉上肢的运动后,步态可以由每个时刻游脚和躯于的位姿决定。步态的位姿可以表示为 (n,R7,p1,RI),其中P7、117、P1和R1分别是游脚和身体的位置和姿态。如图5.13所示,以机器 人的支撑脚为基准建立局部坐标系∑,其原点是在支撑脚的内侧且距离为‘的点,坐标方向与支

撑脚的坐标方向一致。在步态规划中所有的位姿都是在∑这个局部坐标系中完成的。这样步态产生
就与自身的全局位置和姿态无关了。 在开始行动之前,机器人必须先根据期望的运动和转动,规划好期望的下一个步行阶段位姿。 但是确定机器人的位姿(p。,Rl,n,R7)并不是一件容易的事情。因为在运动的过程中机器人必须满 足运动学和动力学的约束条件,以保持平衡,并且两条腿还不能相碰。使用分析步态的动力学条件 的方法需要深入地理解步行系统的内部结构。拿人类来说,人腿的结构是十分复杂的,并且对人类

53

东南大学硕士学位论文

Input:机器人当前的全局位置和姿态(p。,&) 期望到达的全局位置和姿态(肌,鼬) Result:经过路径规划后机器人的临时目标位姿(Apd,AOd)
function planPath(pd,如) Apd Pp4

△如_如

c05hh。几到内的距离
jj卜(pc,0,cDJ‰fn)

st‘一妇d,c051wR,0●
setupBlockO;

//根据当前的世界模型建立障碍物

pathPAStar(如,St); △m。pathrp第一个节点 △曲+_Apa与肌的夹角 return(△pd,Aod)
end fuucUon function setupBlockO

//使用A★算法搜索最短路径

将己方球门标示为障碍物

将对方球门标示为障碍物 将球标示为障碍物
foraU对方机器人0。do

f订机器人Oi的高度<robot_falljeight L将机器人0f标示为障碍物
forail本方机器人丁,do ifi≠自己的号码then

then



L将机器人矗标示为障碍物

end function

图5.10 SEU-RedSun仿真机器人行走路径规划伪码

图5.1 1从球门后回到球门前的步行路径规划

第五章类人机器人行为的设计与实现

图5.12跨一步的三个阶段:抬脚、移动、落脚

图5.13 soccerbot056机器人的腿部模型参数定义

用于行走时保持平衡的控制策略知之甚少。

人工神经网络(ArtificialNeuralNetworks,简称AM0p叼可以用来逼近任意的非线性函数。在

膪U-RedSun仿真机器人中,人工神经网络用来学习最快速度下的稳定步态【…日。把当前的步态位
姿、期望的运动和转动作为输入,而下一步的步行姿态作为输出,有导师地训练人工神经网络。 为了能够获得足够的训练样本,可以把rcssserver3d运行在训练模式下,机器人可以反复地尝试行 走,摔倒后就立即将场景复位。为了使得训练的结果更加适合比赛中使用,训练场景被设置得和人 类足球运动员训练的场景相类似(如图5.14所示)。在训练的过程中,机器人试图以最快的速度绕

行穿越放置在球场的标志杆。在训练初期的时候,机器人试图以最大的速度行走,当然这样很容易
摔倒,机器人不断地减小摔倒时对应状态的输出位姿,直到可以完成任务。在采集到足够的样本之

后,训练人工神经网络,最后再将使用人工神经网络步态产生器的机器人放到训练场景中测试。
在MaⅡ曲中,对于得到的神经网络进行简单的测试分析,其结果如图5.15所示,图中黑线为身

体运动的期望轨迹。从图中可以看出生成出的步态满足静态稳定的约束条件,且均匀、流畅。

5.4.2.4轨迹产生
在步态中规定了脚步和躯干的移动,应用机器人逆运动学(Inverse Kinematics)可以产生关节角

东南大学硕士学位论文

图5.14在rcssserver3d中训练步行场景

图5.15 SEU.RedSun生成的步态

度的轨迹,也就是根据机器人的躯干和脚的位姿求解各关节的角度日。首先根据支持脚和躯干的位 姿关系计算支撑腿的关节角度,然后再根据躯干和游脚的位姿关系计算出游腿的关节角度。对于机 器人逆运动学有两种方法求解:数值法和解析法h 4q。数值解法可以不需要修改直接应用于多种不 同模型的机器人,而解析法的效率更高。

(1)解析法:soccerbot056机器人的腿部是采用的目前类人机器人中应用非常广泛的一种结构 (如图5.13所示)。在脚面保持与地面水平的情况下,可以通过解析法求解逆运动学。图


13@游腿的所有关节角度可以根据躯干的位姿印l,RD和游脚的位姿(p7,RT)计算得到。设 目l,02,…,如表示各个关节的角度。首先,可以计算出髋关节位置以及其在踝关节∑,中的相 对位置r:

见=pl+【0‘0】?R ,=魄一p,)RT;【k
‘=

(5.1) (5.2) (5.3)

√嵋+哆+哼

膝关节角度瓯可以由r、太腿长度‘和小腿长度L根据余弦定理计算得到:

如=…0s(%喾)

(5。)

第五章类人机器人行为的设计与实现

然后,踝关节角度如和魄由,和‘确定
口=arcsin(ff sinor+以)/0) 如=arc【{an2(ry,rz)+口 (5.5) (5.6) (5.7)

比=一arctan2(ry/COS。,Sign(,z)√石西

式中,arctan2(y,曲是用于求xy平面上的矢量(z,y)与x轴之问夹角的函数。 sign(o)为求符号 函数,当0为正时返回1,0为负时返回。1。0为零时返回0。 最后,髋关节角度可以由脚的旋转矩阵确定
R=R,(一04)Sy(一06)Rx(-05)RTRT (5.8)

比较方程5.8两边的值,即得
01


aretan2(R2 a,Rli)

(59) (5.10) (5.11)

如=arctan2(R32,R33) 如=arctan2(-R31,R33/cos01)

式中,R。(∞和R,(0分别返回关节绕x轴和y轴0之后的旋转矩阵。在求解另一条腿的逆运动 学时,只要改变‘的符号即可用同样的方法计算。 (2)数值法:相比于逆运动学的解析法求解,正运动学的数值计算很简单。因此,可以采用正运 动学,通过返回其计算值,反复试探和控制误差来求解逆运动学pl,其基本算法如图5.16。 应用数值法求解逆运动学的一个主要问题是奇异性。机器人的某些姿态的雅可比矩阵的逆矩 阵不存在,这样的姿态成为奇异姿态¨。在这种情况下,机器人不能实现期望的运动,而导 致失控。怎样解决奇异性问题,控制机器人越过奇异性陷阱至今还是一个研究课题。通常的 解决方法是控制机器人运动时避开奇异姿态,这也是很多类人机器人行走时总是弯着腿的原
因。

Input:目标连杆的位姿(砌,Rd) Input:当前连杆的位姿(凸R)

Output:从躯干到目标连杆之问的关节角度矢量口
repeat

由正运动学计算目标连杆的位姿(且R)
(Ap,AR)。(Pa—P,RdRl);

//参考图4.6所示算法 //计算目标连杆位姿的误差

计算当前姿态下的雅可比矩阵I, △“-lnARV

幻¨I幽Ap卜;
g。g+Aq

//计算关节角度的修正量,^为修正系数
//口和口为加权因子

err_酬△川2+pllAfo[[2; until误差err足够小

图5.16逆运动学基本算法伪码

5.4.2.5关节控制
rcssserver3d的机器人关节电机是一个较为理想的模型,在工作范围内该电机是的速度控制 是理想的(见3)。机器人中的关节控制器需要完成的任务就是根据目标轨迹确定关节角速度。首 先,因为机器人从感知到执行有一周期滞后,所以需要使用预测控制,而对于关节角度的预测是可

57

东南大学硕士学位论文

以比较准确的。其次,由于得到的轨迹是一些离散的点,需要进行平滑处理。由于可以达到理想的 速度控制,所以使用一个三次多项式。

㈤一州丁3(0i-oo)一等一≯c一半+警矿

伍坳

其中,日(f)是关节在t时刻的期望角度,岛、晶、日r和砟分别是初始角度、初始速度、最终期望 角度和最终期望速度。角度鲜可以通过启发式的信息来决定,也就是如果角速度方向需要改变, 以等于0;否则以等于当前阶段到下个阶段的平均斜率。此外,由于机器人从感知到执行的滞后. 所以关节控制还需要使用预测控制。最终,使用高增益的位置控制器来使得关节角度到达期望的轨 迹。在切换不同的行为时,关节控制可以得到所需要的所有信息,这样就可以从最底层进行动作切 换的平滑处理。图5.17是SEU-RedS∽仿真机器人步行过程中膝关节角度的目标值和实际轨迹,可 以看到实际的轨迹是平滑的,而机器人的动作也是平滑、自然的。

一。巴op)016c《芒石『.

Simulation Cycle

图5.17 SEU-RedSun仿真机器人步行过程中膝关节角度的目标值和实际轨迹

虽然将全向步行的行为分为几个层次分别讨论和实现,但在SEU-RedSun仿真机器人的程序中 仍然是按照5.2介绍的行为树来实现的,walk(pa.以)可以用图5.18中的行为树来表示。

如)

图5.18用行为树描述全向步行过程

第五章类人机器人行为的设计与实现

5.4.2.6步行仿真
为了验证所实现的双足全向行走的功能,在投入比赛实战之前,机器人被放置一些特定的场景 中进行测试。从图5 19,图5.20和图5.21中可以看出,机器人在动态的行走过程中不需要停下来 就可以完成转向。同时机器人也可以完成向前、向后和向左右侧行动。因为在踢球之前,机器人需 要走到合适的位置,并调整到期望的朝向后,才能踢得准。所以全向行走使得机器人可以在踢球之 前快速地进行精确地定位,这一点在RoboCup机器人足球比赛中十分重要。如图5.19所示.机器人 在走向球的过程中已经调整好身体朝向,可以在走到踢球位置之后快速地起脚踢球。图5 20是机器 人如何绕过球门回到场地之内,图5.2l是机器人进行连续地绕杆行走。

图5.19 SEU-RedSun仿真机器人走向球准备用右脚踢球

图5.20 SEU-RedSun仿真机器人从球门后绕过球门回到球门前

图5.21 SEU-RedSun仿真机器人完成步行训练场景中的绕杆任务

59

东南大学硕士学位论文

仿真结果表明SEU-RedSun仿真足球机器人的全向行走能够较快地调整自己的位置和朝向,比 较适合足球比赛。

5.5小结
本章讨论了类人机器人行为产生的难点和关键,以及SEU-RedSun仿真机器人中在产生智能的 机器人行为所作的努力。SEU-RedSun仿真机器人以基于目标的行为框架,通过离线设计和学习、 在线生成等方法实现进行足球比赛所需的基本动作。本节将SEU-RedSun仿真机器人的行为产生总 结如下: ?以目标为基础实现机器人的行为,使用行为树组织机器人的行为,该方法具有扩展性好、调

试方便、实现方法多样化、动作可并行和动作过渡连续等优点(见5.2)a一

。,

?通过可视化工具离线设计和调试机器人行为,用来实现特定条件下的复杂行为实现快、效果 好;并且机器人可以模仿学习已有的范例行为(见5.3)。 ?在线生成动作能够应对动态、复杂环境,SEU-RedSun仿真机器人能够全向行走,在足球比赛 占有优势(见5.4)。

60

第六章策略与决策

机器人根据当前的环境状态并不能决定自己的行为。例如,机器人在足球场上可以往前走,也 可以后退或者转身。正确的行为取决于机器人想要做什么。换句话说,机器人不仅需要当前的状态

描述,而且需要某种目标信息来描述想耍到达的状况——例如,要走向球。本章6.1介绍了足球机器
人的策略与决策的研究现状;6.2给出了目前SEU-RedSun仿真机器人程序中使用的简单策略;6.3对 传球策略进行研究,提出了基于区域的理性传球决策。最后,6.4总结了本章所实现的方法。

6.1概述
在进行机器人足球仿真比赛的时候,人是不能干预比赛的过程的,足球机器人需要自己决定也 做什么,也就是机器人必须自主的、理性的t:2】。“自主的”意味着机器人要在没有其它指导的情况下 作为决策。“理性的”指机器人基于已知信息选择的回报最高的动作。机器人知道当前的环境状态并 不能足以决定自己的行为。例如,机器人在足球场上可以往前走,也可以后退或者转身。正确的行 为取决于机器人想要做什么。换句话说,机器人不仅需要当前的状态描述,而且需要某种目标信息 来描述想要到达的状况。 RoboCup机器人足球队是一个典型的多智能体系统,RoboCup足球比赛是一个充满合作与对 抗的多智能体环境,对于足球队中的机器人来说共同的目标就是赢得比赛。机器人能够完成足球比 赛中的个人行为之后,就需要学习如何作为队伍的一部分进行比赛。每个机器人独立地选择动作, 而最终的结果是所有机器人的动作共同产生的。因此足球机器人比赛中需要解决的一个关键问题是 协作问题:保证各个机器人独立的决策得到整体的最(次)优。队伍的策略就是在有限的资源内达 到共同目标的集体规划。机器人足球队的整体策略包括阵形、角色、跑位等内容。 对于这个问题,在RoboCup二维仿真中已经有深入的研究。Brainstormers[o】将问题描述为 多智能体马尔可夫过程(muki_agem Markov decision processes,简称MMDP),采用强化学习来获 得机器人的策略,是通过强化学习来获取决策策略很好的尝试。FC Portugall2,!】提出了基于状 态的策略位置(Simation Based Strategic Positioning,简称SBSP)以及动态跑位和角色交换机制 (Dynamic Positioning and Role Exchange mechanism,简称DPRE),很好地结合了足球比赛中的一 些领域知识。Wright Eagle[_I使用无限平行分散的部分可观测马尔可夫决策过程(infinite。horizon DecentralizedPartiallyObservableMarkovDecisionProcess,简称DEC.POMDP)框架对问题建模,使 用相关的马尔可夫决策过程(Correlation Markov Decision Processes,简称Correlation—MDPs)求取相 关策略,在计算复杂度和求解质量上得到很好的平衡。UvA Trilearnt,,?。】使用协作图(coordination graph,简称CG)建立机器人之间的依赖关系,并使用极大极小算法对问题求解,既可以根据经验 制定策略又可以通过学习获得策略。 二维仿真和三维球形仿真的很多队伍都对策略和决策已有的深入研究,相对而言类人仿真机器 人还处在初始阶段,目前各个队伍对于策略与决策的研究还不多,目前,比赛中使用的机器人也只 有2个,但这将是机器人底层技术成熟之后研究的重点。此外,在开始研究类人仿真机器人之前, 本文基于三维球形足球机器人仿真的传球决策作了研究。 6.2

2对2简单策略

本文的主要工作都集中在建立一个坚固的底层,包括总体框架、世界模型、行为产生。 但为了建立一个完整的仿真机器人队伍顺利地完成仿真比赛,本文针对2v2仿真比赛采用了简 单的策略与决策。其基本思路来自UvA Trilearn[w、1公布的二维仿真队伍的源码(可以从http: //www.science.UVa.nl/~jellekok/robocup/下载到),该代码提供了研究二维机器人足球仿真 的基础,被许多队伍广泛使用。虽然该代码只有最简单的决策和策略,但却是很有效。

61

东南大学硕士学位论文

目前SEU-RedSun仿真机器人程序中采用的决策模块使用if-then-else的条件判断来实现,见图 6.1。首先,机器人会试图保持自身的站立状态,也就是如果摔倒了就执行起身行为;然后机器人

图6,1

SEU-RedSun仿真机器人2 vs,2比赛中使用的简单决策的伪码

根据情况选择是哪一个机器人去踢球,判断条件是如果该机器人到球的距离比其它机器人到球的距 离近,则该机器人应该先于其它机器人到达踢球位置,因此,该机器人应去踢球,而另外的机器人 应去跑位。这是上E常比赛状态中的决策,而在角球、边线球中使用的也是相似的决策过程。 这是由于目前比赛中的机器人少、场地小所决定的,同时由于没有能够很好地实现传球等其 它动作,射门的成功率很高,所以射门成了进攻的唯一手段。防守的方式主要是挡住对方射门的路 线,所以在跑位的时候选择的位置是阻挡对方射门路线。 虽然目前的行为选择过程很简单,但其中包含了足球机器人的三个最重要的技术:射门、步行 和起身。在实际的比赛中取得了很好的效果,特别是在2007全国机器人足球大赛暨RoboCup中国 公开赛中取得全胜的好战绩(详见8.1 2)。

6.3基于区域的理性传球决策
足球机器人在控球的时候作出的决策十分重要。在这种的情况,机器人可以传球、带球、射门 或者解围。其中怎样传球是最重要的一个,因为传球是足球比赛中进行协作的唯一行为。实际上, 带球可以看作是将球传给自己,射门可以看作是将球传入对方球门,而解围则可以认为是将球传到 安全的区域。 机器人要想在不确定环境中作出恰当的行为,对知识的有效表示和可靠的推理机制是设计的核 心。本节基于自上而下对足球知识建模的方法p’1,提出基于区域的理性传球决策,在传球决策中考 虑传球区域而不是一个传球点。这很好地改善了传球效果,具有计算复杂度底、不依赖于精确信息 的优点,并能很好地平衡了传球的成功率与回报。

6.3.1机器人足球中传球决策
如果控球的机器人已经决定要传球,接着需要解决两个问题才能将球传出: ?传球决策: ?使用传球技术将球传出。

第六章簟略与决策

后者是属于足球机器人的行为产生,属于第5章的讨论范围,本节对传球决策进行研究。对于机器 人来说,传球指令定义了怎样将球由当前的位置踢到一个指定的目标位置,同时越过阻挡球运动的 机器人,而且在到达目标位置时球速适合接球。可以用Pass(p)米表示传球,其中,是球的目标位 置。在执行传球行为之前,必须先作出传球决策。 在足球理论中,好的传球使得对方很难防守,对完成好的战术起到至关重要的作用【“l。为了 达到这一点,需要解决最优传球决策问题,郎在给定的情况下,找出场地中的一个点,使得球传到 这个点之后所得的回报最高。 不幸的是这个问题和一些不确定因素相关,很难得到解决。比如,对手的移动是不确定的,这 是不可能精确地预测出的。不确定性的出现直接改变了智能体决策的方法【1。在足球仿真比赛中,

机器人应该做的事情是理性传球决策——也就是传球的决策既依赖于各种目标的相对重要性,也依
赖于这些目标被实现的可能性。

6.3.2传球决策的研究现状
作出理性的传球决策不是一件简单的任务,该问题的主要难点是包含了很多不同的因素,需 要将它们恰当地综合起来。已有的传球决策的研究集中在使用搜索12,‘”1】、学习f。】和协作【。’算法 中。尽管这些方法起到了效果,但是结果并不能完全满足要求,理由如下: -可能作为传球目标点的位置数目巨大。如果很难列出完整的评价函数集合,也很难使用各种 规则得到结果。例如,计算传球成功的概率就需要数千次的迭代计算I“】。 ?这些方法的效果非常依赖于评价函数的好坏。况且有些评价函数需要精确的信息,这在足球 机器人中是不可能的。 ?很难设计出单独的决策规则来应对所有的情况,因为起主导作用的因素在不同情况下并不相 同。例如,机器人在面对不同风格对手的时候作出同样的决策将很难得到好的效果。

针对以上问题,本文基于自上而下对足球知识建模的方法川,提出基于区域的理性传球决
策,在传球决策中考虑传球区域而不是一个传球点。

6.3.3基于区域的理性传球决策
“区域”一词经常在足球理论书籍州1中出现,例如,进攻区域和射门区域。区域可以定义为具 有相同属性的位置的集合。对于传球决策问题,将原来的一个位置替换为~个区域,也就是向该区 域中传球会有很高的成功率和回报。但是,机器人处理球的时候只接受传球的目标点作为输入。不 过可以将向一个区域传球实现为将球传到该区域的重心,这样球传入到该区域的可能性是最大的。 因此,使用区域代替位置克服了不确定性的影响并很好地表示了场上的情况。 就传球而言,区域可以根据属性进一步划分为几类:战术区域(tactical rcgion)、主导区域
(dominate region)、可传区域(passable region)和落点区域(falling region)。

(1)战术区域:整个球场可以划分为不同的战术区域,来表示不同的战术回报和战略目的。可以 根据足球理论设定战术区域的回报。此外,在线教练也可以根据场上的情况来改变战术区域 的回报。图6.2为文献f;q中划分的战术区域,场地被划分为11个区域,三条边:左(L)、中 (c)、右(R);三排:前(F)、中(M)、后(B);和特殊区域:射门(s)、危险(D)。

(2)主导区域:在主导区域中一个球员可以在其他球员之前到达区域中的任何位置酗。球员n的
主导区域可以这样定义:
(6.1)

置d;。(,I,5置,T(n,p-)‘。m;NiⅥn(T(i,西)}

式中,T(i,西表示球员i移动到,位置的最短时间,N是所有球员号码的集合。如果球在一 个球员的主导区域内,他应该能在其他所有球员之前抢至Ⅱ球。

东南大学硕士学位论文

囊≤

多:cF{l
M}



RP一

图6.2足球场上的战术区域

(3)可传区域:由于传球队员的能力限制,传球位置只能在一个有限的区域内。这是因为传球队 员的力量和出球角度都是有限的。此外,对方防守队员可以阻挡部分传球角度。可传区域定 义如下:

置p={FI声

相关文章:
机器人足球仿真竞赛与程序设计能力培养
机器人足球仿真竞赛与程序设计能力培养_教学研究_教育专区。机器人足球仿真竞赛与...参加 了 2009 中国机器人大赛暨 RoboCup 公开赛,获得微软(MS)3D 类人仿真赛...
2D机器人踢足球策略仿真平台搭建
的积累兴趣 教师帮选,教师的科研项目 □ 学生自选,教师的科研项目 □ (同类研究工作国内外研究现状与存在的问题等) 本项目的研究背景为 robocup 机器人足球赛...
FIRA和RoboCup两大机器人足球赛的区别
研 究目标是计划经过五十年左右的研究,使机器人足球队能战胜人类足球冠军队。 Robocup 的比赛项目主要有: 仿真组比赛 、小型机器人比赛、整队小型机器人比赛(每队...
机器人足球仿真实验报告
模式发生的条件; 掌握 Robocup 仿真机器人足球 比赛特殊比赛模式的规则要求; 了解 Robocup 仿真机器人足球比赛特殊比赛模式的战术设计思想; 进一步熟悉 WorldModel 类...
RoboCup小型组机器人视觉系统设计与实现
RoboCup小型组机器人视觉系统设计与实现_工学_高等教育...组足球机器人 视觉子系统的设计方案,提出了一简单...电脑仿真比赛 第1章引言 (SimulationLeague),小型...
FIRA机器人足球仿真策略技术报告
FIRA机器人足球仿真策略技术报告_机械/仪表_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 FIRA机器人足球仿真策略技术报告_机械/仪表_工程科技_专业资料。...
足球机器人控制系统设计
?1997 年 8 月,在日本举行了第一届 RoboCup 赛事。 三、机器人足球赛的主要类型及规则。 机器人足球仿真实物赛两种。仿真赛是在计算机上进行的虚拟比赛...
机器人比赛项目具体介绍
机器人比赛项目具体介绍_自然科学_专业资料。足球机器人仿真组(2D、3D) 1、RoboCup 足球机器人仿真组(2D、3D) 仿真组比赛类似 FIFA 系列足球游戏,由程序自主控制...
足球机器人小车控制器设计
Cup);另一个是由国际人工智能学会组织 的机器人世界杯足球赛(RoboCup)[7]。 ...机器人世界杯足球赛的比赛项目主要有以下五:计算机仿真足球赛 (Simulation ...
机器人足球课结课论文
比赛是一 种仿真式的比赛。现在的足球机器人比赛的场地按国际的规定为 1.5 米...第二大系列的机器人足球比赛是 RoboCupRoboCup(Robot World Cup) 是一个国际...
更多相关标签:
robocup机器人大赛 | robocup机器人世界杯 | robocup 2d 仿真开发 | robocup仿真救援 | dasun 机器人 | 高仿真机器人 | 机器人仿真软件 | 仿真机器人美女价格表 |