游戏公司访问权限管理系统毕业论文(编辑修改稿)内容摘要:

研究救援的先进算法,使仿真 Agent 的救援行为更加理性智能。 下面对RoboCup 救援仿真系统涵盖的两大部分进行详细论述。 救援仿真系统简介 RoboCup 救援仿真系统 (RoboCupRescue Simulation System,简称 RCRSS)是一个由多个模块通过网络连接起来 而构成的实时分布式的仿真系统,它为机器人救援仿真比赛提供比赛平台 [9],其开发模式采用典型的 C/S 体系结构由于系统是分布式的仿真系统,因此可以将仿真系统的不同模块做为一个独立的程序运行在不同的计算机上,从而能够将计算任务分散到不同的计算机上。 由于救援仿真系统的体系结构采用的是 C/S 开发结构,所以该系统由服务器端和客户端两大部分组成。 整体的仿真系统是由五个模块组成:子仿真器 (SubSimulators)、地理信息系统 (GIS)、监视器 (Viewer)、内核 (Kernel)和 Agent(Agents),其中 ,地理信息系统 (GIS)、监视器 (Viewer)、内核 (Kernel)和子仿真器 (SubSimulators)属于仿真系统的服务器端, Agent (Agents)属于仿真系统的客户端。 这五个模块之间通过TCP/IP 和 UDP/IP 协议进行通信,该通信属于异步通信,所有的信息均要经过内核转发。 在救援仿真比赛中,由仿真服务器负责加载运行比赛专用地图,目前比赛专用地图分为 6 类地图,根据不同地图的置参数来确定该地图下的比赛分数和Agent 总数。 每个仿真周期约为 300 个时间周期,可以根据需要来修改比赛地图的配置参数中 的仿真时间。 客户端的 Agent 分为三大类:警察 Agent、消防 Agent和救护 Agent,正常情况下将每种 Agent 运行到一台计算机上,也可将二种以上的 Agent 连接运行到一台计算机上,不过这样对计算机的硬件要求较高。 救援仿真的系统结构图如图 21 所示。 机器人救援仿真系统中策略制定和协作研究 第二章 救援仿真系统简介 7 图 21 救援仿真系统结构图 救援仿真系统服务器端详解 服务器端的内部模块 服务器由子仿真器 (SubSimulators)、地理信息系统 (GIS)、监视器 (Viewer)、内核 (Kernel)四个模块组成。 (Subsimulators) 仿真器模块在救援仿真中的作用是根据现实灾害的现场情况进行模拟,同时还需要模拟出救援队伍的救援行为,其模拟遵循一定的自然规律。 本仿真系统的子仿真器主要由火灾仿真器、建筑倒塌仿真器、道路阻塞仿真器、交通环境仿真器和其他仿真器等构成。 火灾仿真器仿真灾难空间上的建筑物燃烧情况以及相邻建筑之间的火灾蔓延情况;建筑倒塌仿真器仿真由于地震导致的 桥梁、房屋以及道路坊塌情况;道路阻塞仿真器仿真建筑物倒塌后形成的道路上的阻塞块情况和救援行为中警察 Agent 清理阻塞块的情况;交通环境仿真器仿真各个移动 Agent在各种路况下的移动情况,如移动速度,被路障阻塞不能移动、多个 Agent 在狭窄的路况下的拥堵等。 根据仿真器内部的状态和从内核接收到的信息和命令来计算世界模型中将要发生的事情,包括 Agent 的动作,以及他们的动作带来的效果,机器人救援仿真系统中策略制定和协作研究 第二章 救援仿真系统简介 8 然后把结果返回给内核。 (GIS) 地理信息系统主要负责从指定的比赛地图配置文件中读取相应的地理信息,通过解析地图 参数构造仿真系统的地理信息模型。 在仿真开始初期,为系统提供世界模型的最初配置,像房屋、道路、市民和 Agent 的坐标值等。 值得注意的是,由于地理信息系统要提供一些地理信息的初始化条件,所以地理信息系统是先于内核启动的。 (Viewer) 图 22 系统监视界面 监视器负责对仿真系统内发生的一切仿真动作进行动态地映射,把仿真系统的世界模型通过一个 2D 图形界面形式显示出来。 通过该监视器界面可视化地观察到建筑丹塌、火灾蔓延、市民被埋、警察清障、消防员灭火和救护队救护市民等现象。 监视器界面每一个仿真周期更新一次。 通过该监视器界面能够直观地观测 Agent 的一些救援行为,从而根据这些行为验证救援策略或相应算法是否有效。 监视器界面如图 22 所示,图中采用的是 Kobe 地图。 从图中标题栏可以看见参赛队伍的名字 Team、当前的仿真时间 Time 以及实时的得分情况 Score。 图中,有颜色 的实心圆代表 Agent:蓝色实心圆代表警察 Agent,红色实行圆代表消防Agent,白色实心圆代表救护 Agent,绿色实心圆代表市民;块状四边形代表建机器人救援仿真系统中策略制定和协作研究 第二章 救援仿真系统简介 9 筑物:浅蓝色块状四边形代表已经被扑灭的建筑物,黄色块状四边形代表刚着火的建筑,红色块状四边形代表燃烧旺盛的建筑,黑色块状四边形代表已经烧过的建筑;纵横交错的长方形细线条代表道路;黑色的十字交叉代表路障;用实心圆有发光的光圈代表 Agent 在执行任务,其中红色实习圆与着火建筑之间的连线代表消防员正在灭火。 监视器界面还可以显示 Agent 移动的踪迹,通过选择界面上的选 项卡选择要想要观测的界面,例如,可以屏蔽所有路障情况观测建筑和道路分布,屏蔽所有道路与其他建筑等的路径连线,屏蔽 Agent 只显示移动情况等。 4.内核 (Kernel) 内核是整个仿真系统的核心,所有的通信均由内核调度,主要是各类信息的转发,因此仿真系统内的通信属于异步通信机制。 内核负责控制与各个模块之间的通信,管理整个仿真过程。 在仿真系统中,一次完整的仿真实验是由多个仿真周期组成的,具体的仿真周期要根据不同的地图参数来确定,一般一个仿真周期约为 l000ms,通常略大于 l000ms。 在救援仿真过程中,从内核的 任务调度角度来分析,每个仿真周期都是划的,前 500ms 用十把从子仿真器发来的各类仿真信息进行分折计算然后发送给地理信息系统和监视器,通知监视器进行更新 (包括更新仿真周期 ), 500ms 用于和客户端 Agent 的交互,等待 Agent 动作命令的回复,因此,内核必须在后 500ms 内接收到客户端发来的消息,否则下周期该Agent 的上个命令动作将不会模拟仿真。 模块之间的工作原理 救援仿真开始前,各模块要与内核连接进行初始化操作,其连接整合步骤下: (1)地理信息系统首先与内核进行连接,地理信息系统通过读取地图 文件配置信息把灾难现场的初始化数据发送给内核; (2)子仿真器和监视器分别与内核进行连接,接收由内核发来的一些系统初始化条件; (3)开发的救援 Agent 和系统的 Agent (市民 Agent)与内核进行连接,接收由内核发来的一些系统初始化条件。 经过以上三步,地理信息系统、子仿真器、监视器和 Agent 分别与内核连接完毕,在所有的 Agent (开发的 Agent 和市民 )均得到有内核发送来的灾害现场初始化数据后,内核就完成了初始化救援仿真系统的工作。 以上只是完成仿真前的各个模块连接初始化步骤,在这些初始化动作完成 后仿真才正式开始。 仿真正式始后,仿真过程是由每个仿真周期组成的,而在每个仿真周期中涵 盖了 7 个重复迭代的步骤,其各模块间的通信流程如图 23 所示。 下面介绍每个仿真周期中的各个模块间的通信流程: 机器人救援仿真系统中策略制定和协作研究 第二章 救援仿真系统简介 10 (1)内核根据每个 Agent 的位置收集该坐标点周围的感知信息,感知信息包括视觉信息和听觉信息,视觉信息指该 Agent 所处位置半径为 10 米以内所能看见的空间视觉量,听觉信息指该 Agent 所处位置半径为 30 米以内所能听见的任何声音,通常为了尽可能接近现实情况,内核会给发送给每个 Agent 相应的听觉信息中加入一定的噪声。 然后内核把从每个 Agent 那收集来的感知信息发送给对应的 Agent。 (2)各个 Agent 根据由内核发送来的对应位置的感知信息进行行为决策并将决策后的原子命令 (供开发使用的 API,例如移动、清理、救护和灭火等,能够被底层识别与执行 )发送给内核,若 Agent 由于各种原因没有发送原子命令则内核视为无动作。 图 23 各模块间的通信 (3)内核接收到发自 Agent 的原子命令后对不符合要求的命令过滤,然后将过滤后的原子命令转发给各个具体的子仿真器。 需要注意的是,若在 Agent 向内核发送消息的过程中出现丢包的情况,内核不予处理,将会转发接受到的完整信息包。 (4)各子仿真器根据从内核发来的原子命令和当前已经存储的灾难环境模型进行综合分析和计算未来发展变化的灾难模型,然后将计算得到的灾难模型发送给内核。 如果内核在发送 Agent 原子命令到各子仿真器的 500ms 内没有收到相应的反馈信息的话,仿真状态将不会发生变化,也就是说本仿真周期和上个仿真周期 的仿真结果相同。 (5)内核接收到子仿真器发来的仿真灾难现场模型后,将这些仿真信息集成机器人救援仿真系统中策略制定和协作研究 第二章 救援仿真系统简介 11 后分别发送给地理信息系统和监视器。 同时,内核将仿真时钟增加。 (6)监视器接到内核的仿真更新通知后,向地理信息系统发送请求信息,要求返回更新后地理信息系统的世界模型。 (7)地理信息系统得到监视器的请求后,将更新的地理信息发送给监视器。 以上的 7 个步骤就是仿真开始后迭代完成的,其中在仿真的第一个周期,第1 步和第 2 步是不执行的。 仿真平台的评分标准 仿真周期结束后,仿真的服务器端会给出每个队伍的比赛得分,该分数能够客观地评价各个队伍开发的各类 Agent 的优劣。 基于救援仿真平台的比赛系统,有一个统一标准的分数计算公式来计算每个参数队伍针对不同地图的得分情况。 其分数随着仿真周期的增加而递减,仿真完毕的最后得分就是该队伍的比赛分数。 具体的分数计算公式如公式 ()所示: 公式( ) 其中, P 表示当前仿真周期中存活的市民 Agent 的个数, S 表示当前仿真周期中存活的市民 Agent 的生命值之和,表示初始时所有市民 Agent 的生命值之和,马 表示仿真初始时建筑总面积, B 表示当前仿真周期中未被烧毁的建筑总面积。 由以上分数计算公式可以看出,存活的市民数量和未被烧毁的建筑总面积是取得较高分数的两个关键因素。 该分数计算公式比较合理地反映了客观事实:在规定的时间里,火灾控制得越好未燃烧的建筑面积就越大、市民营救得越及时存活的市民数量就越多,只有这样才能达到理性有效的救援目的。 在仿真中对应的比赛分数越高,说明消防 Agent 的灭火性能和救护 Agent 的救援性能越高,同时也反映出警察 Agent 前期清障工作的性能优越。 救援仿真系统客户端详解 客 户端 Agent 的组成 客户端 Agent 指的是比赛队伍需要开发的 Agent,而非类似于市民这样的服务器端提供的 Agent。 从可否移动角度来分,客户端 Agent 包括两大类:可移动Agent 和中心 Agent (不能移动只能发消息 );从功能角度来分,客户端 Agent 分为三大类:清理路障的警察 Agent、灭火的消防 Agent 和救护其他 Agent 的救护Agent。 具体的客户端 Agent 就是这六种:警察 Agent (Police Force)和警察中心机器人救援仿真系统中策略制定和协作研究 第二章 救援仿真系统简介 12 Agent (又称警察局, Police Office)、消防 Agent (Fire Brigade)和消防中心 Agent (又称消防中心, Fire Station)、救护 Agent (Ambulance Team)和救护中心 Agent (又称救护中心, Ambulance Center)。 不同 Agent 所拥有的行为动作能力存在异同:所有 Agent (包括市民 Agent)均具有了解周围环境的感知能力 (Sense)、听见周围声音的听觉能力 (Hear)和通过语言沟通的说话能力 (Say);除了三个中心 Agent 不具有移动行走能力 (Move)其他均具备该能力;除了市民 Agent 不具有 无线通讯能力 (Tell),其他 6 种 Agent 均具备该能力;另外,警察 Agent 还具有清理路障的专业能力 (Clear),消防 Agent 具有灭火的专业能力 (Extinguish),救护 Agent 具有救援 (Rescue)、载上 (Load)、载下 (Unload)的专业能力。 各种 Agent 所具备的能力如表 21 所示。 仿真服务器连接客户端 Agent 的最大数量为 70 个。 其中,警察 Agent和消防 Agent 最大连接数量为 20 个,救护 Agentl5 个,中心 Agent5 个。 表 21 各类 agent 的能力 类型 能力 Civilian Sense,Hear,Say,Move Ambulance Team Sense,Hear,Say,Tell,Move,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。