610 likes | 733 Views
机器人救援仿真系统介绍. 内容介绍. 1. RoboCupRescue 仿真系统的介绍 2. 服务器的安装和配置 1) linux的安装 2) 服务器的安装及队伍的启动 3. 服务器的介绍 4. 客户端开发 5. 常见问题. 1.仿真系统介绍. RoboCupRescue机器人救援仿真是是一个通过模拟现实生活中的城市灾难场景,用机器人进行救援的仿真系统,它是和应用领域结合十分密切的新兴工程。 其主要目的是使救援智能体进行有效的分工协作,完成营救市民和灭火的任务,以最大限度地减小灾难带来的损失,进而在灾难救援这个重大的社会问题上促进研究和发展。.
E N D
内容介绍 1. RoboCupRescue 仿真系统的介绍 2. 服务器的安装和配置 1) linux的安装 2) 服务器的安装及队伍的启动 3. 服务器的介绍 4. 客户端开发 5. 常见问题
1.仿真系统介绍 RoboCupRescue机器人救援仿真是是一个通过模拟现实生活中的城市灾难场景,用机器人进行救援的仿真系统,它是和应用领域结合十分密切的新兴工程。 其主要目的是使救援智能体进行有效的分工协作,完成营救市民和灭火的任务,以最大限度地减小灾难带来的损失,进而在灾难救援这个重大的社会问题上促进研究和发展。
RoboCupRescue仿真是一个用计算机对真实的城市灾难情况进行模拟的系统,如在地震发生时的仿真模拟环境中:房屋,建筑物等都倒塌了;道路、轨道和其他一些公共交通设施都被毁坏了;基础的城市设施比如电力,下水道系统也都被毁坏了;通信设施和信息的传播被中断了,许多受害者被埋在倒塌的房屋下;地震引起的火灾开始很快的蔓延;消防车要通过的道路被倒塌的房屋碎片挡住了等场景。 为了减小灾难带来的损失,参赛队伍需要开发一支强有力的救援智能体队伍,在仿真系统提供的灾难场景下进行有效的救援,并且尽快地营救受伤的民众,抢救人们的生命财产,把灾难的损失降低到最小。 1.仿真系统介绍
机器人救援仿真系统以Linux为平台,它包括服务器端和客户端。服务器端是由比赛组委会发布的服务器源代码,其中也包括了地图信息。客户端是我们要编写的程序,我们是以服务器自带的测试队伍为底层代码,以java为开发工具然后再在上面添加一些策略模型等。 机器人救援仿真系统以Linux为平台,它包括服务器端和客户端。服务器端是由比赛组委会发布的服务器源代码,其中也包括了地图信息。客户端是我们要编写的程序,我们是以服务器自带的测试队伍为底层代码,以java为开发工具然后再在上面添加一些策略模型等。 1.仿真系统介绍
1.仿真系统介绍 2D的视图 3D的视图
相关链接 官方网址 http://www.robocuprescue.org/ 邮件列表 https://lists.cc.gatech.edu/mailman/listinfo/robocup-rescue-r
资料下载 ftp服务器:ftp://robocup.csu.edu.cn 用户名:csu_robocup 密 码:robocup2007
2.服务器的安装和配置linux的安装 常用的linux系统: 1. Mandrake 2. SUSE 3. Ubuntu 4. Red Hat 5. Debian
我们建议使用Ubuntu,Ubuntu的安装非常人性化,只要按照提示一步一步进行,安装和Windows同样简便!并且,Ubuntu被誉为对硬件支持最好最全面的Linux发行版之一,许多在其他发行版上无法使用,或者默认配置时无法使用的硬件,在Ubuntu上轻松搞定。 并且,Ubuntu采用自行加强的内核,安全性方面更上一层楼,且Ubuntu默认不能直接root登陆,必须从第一个创建的用户通过su或sudo来获取root权限(这也许不太方便,但无疑增加了安全性,避免用户由于粗心而损坏系统)。 2.服务器的安装和配置linux的安装
2.服务器的安装和配置linux的安装 Ubuntu10.04的安装步骤: Wubi(Ubuntu Installer for Windows)是时下最流行的Ubuntu安装方式。Wubi的诞生让更多的人能够以安装普通应用软件的方式,在Windows系统中方便的安装使用Ubuntu。 把下载的ISO文件放到跟目录下,然后解压出里面的wubi.exe。双击运行,如下图:
2.服务器的安装和配置相关软件的安装 Automake: build-essential 编译器:GCC 开发环境:java 开发工具:eclipse, Ant
在终端输入sudo gedit /etc/apt/source.list : #中国科学技术大学更新服务器(教育网,推荐校园网和网通用户使用):deb http://debian.ustc.edu.cn/ubuntu/ intrepid main multiverse restricted universedeb http://debian.ustc.edu.cn/ubuntu/ intrepid-backports main multiverse restricted universe… … 2.服务器的安装和配置配置源
1、通过命令行安装 sudo apt –get install sun-java5- jre sudo apt –get install sun-java5- jdk 2、通过新力得软件管理器安装 2.服务器的安装和配置安装软件
1. $ 表示普通用户 2. # 表示超级用户,在下输入su,回车,然后输入密码即进入超级用户 3. cd 进入下级目录 4. ls 查看当前目录下的文件 5. chmod 改变文件或目录的读写方式 6. vi 编译器 7. su 从当前帐号切换到root帐号 8. pwd 查看当前目录 9. cp 复制 2.服务器的安装和配置的安装常用命令
服务器的安装: 1. 下载网址:FTP 2. 解压,解压后产生9个目录,boot,build-tools, docs, jars, lib, maps,modules,oldsims,suplement tar xvf Filename.tar 3. 编译,直接在本目录先执行目录 ant命令: cd rescue-competition2010 ant 2.服务器的安装和配置的安装服务器的安装和队伍启动
4. 如果没出现错误则编译完成,服务器安装完毕 2.服务器的安装和配置的安装2) 服务器的安装和队伍启动
服务器的启动: cd ../ cd boot ./demo.sh–m ../maps/qml/legacy/VC(map目录下的地图名) //弹出九个框 2.服务器的安装和配置的安装2) 服务器的安装和队伍启动
gis, kernel, misc, traffic, collapse, blockades, civilian, fire , viewer 2.服务器的安装和配置的安装2) 服务器的安装和队伍启动
队伍的启动:以服务器自带的例程为例 cd boot ./ant //并回车,这是编译客户端代码 ./sampleagent.sh //此时,客户端agent启动了 2.服务器的安装和配置的安装2) 服务器的安装和队伍启动
2.服务器的安装和配置的安装2) 服务器的安装和队伍启动 解压 启动客户端
3.仿真系统介绍1) 救援仿真系统的组成 Kernel控制整个仿真过程并且促进各个部分的信息共享。在仿真过程中,内核实时地管理着智能体以及他们之间的通信。把从仿真器接收到的信息进行综合分析并广播给GIS和仿真器,然后更新仿真周期,同时通知监视器进行更新。
3.仿真系统介绍1) 救援仿真系统的组成 由几个不同的仿真域组成,例如:房屋倒塌、火灾和交通阻塞等。根据仿真器内部的状态和从内核接收到的信息和命令来计算世界模型中将要发生的事情,包括智能体的动作,以及他们的动作带来的效果,然后把结果返回给内核。
3.仿真系统介绍1) 救援仿真系统的组成 提供世界模型的最初配置,其中包括了道路、建筑物、市民和我们的智能体在仿真过程中的位置。记录仿真的日志。通过内核发过来的消息,进行世界模型的更新,并且把结果反馈给监视器,以便其进行实时的显示。。
3.仿真系统介绍1) 救援仿真系统的组成 各个队伍开发的智能体。 显示比赛的全过程,并且输出一些比赛的参数
3.仿真系统介绍2) Agent介绍 AT AT:救护队员,在倒塌的房屋中寻找受伤的市民,并对其进行救治 PF:警察,清除路障,搜索 FB:消防队员,灭火及搜索civilian:市民,受伤后不能自行移动 消防中心 三类中心 救护中心 警察局 civilian PF FB 发送和接受信息
3.机器人救援仿真程序的开发2) Agent介绍 智能体间的通信模型
救援智能体的动作主要有: move()—移动 say()—说,tell()—广播, hear()—听 extinhuish()—灭火, rescue()—救人, clear()—清路障 load()—载上车,unload()—放下 rest()—休息 3.机器人救援仿真程序的开发2) Agent介绍
3.仿真系统介绍3) 救援仿真系统的工作流程 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 内核发送信息给每个智能体。 1 2 智能体 服务器仿真的步骤
3.仿真系统介绍3) 救援仿真系统的工作流程 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 1 每个智能体提交 一个个人的行动 请求给内核 。 2 智能体 服务器仿真的步骤
3.仿真系统介绍3) 救援仿真系统的工作流程 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 1 2 内核把智能体的 行动请求发给所 有的仿真子系统 。 智能体 服务器仿真的步骤
3.仿真系统介绍3) 救援仿真系统的工作流程 仿真子系统提交 更新的灾难地信 息给内核。 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 1 2 智能体 服务器仿真的步骤
3.仿真系统介绍3) 救援仿真系统的工作流程 内核整合所收到 的情形,并且发 给GIS和监视器 。 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 1 2 智能体 服务器仿真的步骤
3.仿真系统介绍3) 救援仿真系统的工作流程 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 1 2 内核把灾难的 仿真时钟增加。 智能体 服务器仿真的步骤
3.仿真系统介绍3) 救援仿真系统的工作流程 地理信息系把 必要的信息给 监视器 。 监视器 6 7 5 5 4 地理信息系统 子仿真器 内核 3 1 2 智能体 服务器仿真的步骤
3.仿真系统介绍4) 智能体的工作流程 智能体 新信息 世界信息 世界 模型 信息处理 2 目标动作的选择 3 智能 决策 4 决策信息 1 感知信息 动作命令 机器人救援 服务器 通过KA_SENSE命令从服务器接收感知信息的数据包。 智能体的工作流程
3.仿真系统介绍4) 智能体的工作流程 智能体 新信息 世界信息 世界 模型 信息处理 2 目标动作的选择 3 智能 决策 4 决策信息 1 感知信息 动作命令 机器人救援 服务器 对接收到的感知信息数据包进行处理,更新自己的世界模型。 智能体的工作流程
3.仿真系统介绍4) 智能体的工作流程 新信息 世界信息 世界 模型 信息处理 2 目标动作的选择 3 智能 决策 4 决策信息 1 感知信息 动作命令 机器人救援 服务器 通过对世界模型的分析,智能决策出自己该做的动作。 智能体的工作流程
3.仿真系统介绍4) 智能体的工作流程 智能体 新信息 世界信息 世界 模型 信息处理 2 目标动作的选择 3 智能 决策 4 决策信息 1 感知信息 动作命令 机器人救援 服务器 智能体将决策好的动作命令发送给服务器。 智能体的工作流程
比赛时间为300个周期,视地图复杂性而定,8~15分钟。一场比赛完成后会根据死亡的人数,烧毁的建筑物面积等计算得分。 3.仿真系统介绍5) 比赛得分的计算
1. 警察目的就是要帮助救护队员和消防队员尽快的到达目的地。 2. 如何分区?一般是每个警察分配一个区域,在本区域内清障,但是可以被要求清其他的重要路径。 3. 路径优先级的设置问题?应该考虑消防队员和救护队员的需求,然后是火区到避难所的路径等。 4.客户端开发1) 客户端智能体的开发
警察有三种状态:search,clear, gotargets。 1. 在search状态,如果警察在知识库里有火区的信息他就试图寻找阻塞的路,或者根据优先级选择一个目标路段。 2. 在clear状态,警察清除路障,直到该路障被清除完毕,警察的状态才会改变。 3. 在 gotargets状态,警察已经选择了一个路段作为目标,并正在移动到目标点,通常是路由算法中最短的。 4.客户端开发1) 客户端智能体的开发
警察需要修改的文件: PoliceForceAgent.java prepareForAct()、act()、hear()等方法。 PoliceOfficeAgent.java hear()等方法。 4.客户端开发1) 客户端智能体的开发
1. 救护队员的职责是救人,尽可能的减小市民的死亡。 2. 需要根据伤员的伤势等设置营救顺序以尽可能多的营救最多的市民。 3. 当然最基础的问题是要保持通信的畅通,否则无法获得世界模型的情况和灾难信息。因此先看熟悉三类智能体的代码。 4.客户端开发1) 客户端智能体的开发
救护队员四种状态:search,rescue,carry,urgent。救护队员四种状态:search,rescue,carry,urgent。 1. 在search状态,如果救护队员在列表里没有伤员的信息他就试图寻找建筑物内的受伤智能体,或者选择一个目标建筑物。 2. 在rescue状态,救护队员营救受伤的人,直到这个人完全治愈然后,救护队员的状态会改变为carry状态。 3. 在urgent状态,救护队员营救一个受伤的智能体如消防员或警察。因为这些救援智能体会在以后比市民做更多的事,所以他们的优先级较高。 4. 在carry状态,救护队员携带一个伤员并移动到避难所。一旦他们到达避难所,救援智能体将转变为新的状态。 4.客户端开发1) 客户端智能体的开发
救护队员需要修改的文件 AmbulanceTeamAgent.java prepareForAct()、act()、hear()等方法。 AmbulanceCenterAgent.java hear()等方法。 4.客户端开发1) 客户端智能体的开发
1. 消防队员目的是尽快的控制火势,防止火势的蔓延。 2. 需要考虑的因素包括:总的着火区面积、火燃烧的时间、RCR智能体与火之间的距离、火灾点的优先级(由一系列的条件来控制:比如是否是新着的火、到完好建筑物的平均距离、大部分消防队员工作的地方、到避难所的距离、消防队员正在灭的火、火势的大小等)。 4.客户端开发1) 客户端智能体的开发