哈尔滨工程大学--人工智能大作业

上传人:第*** 文档编号:31398289 上传时间:2018-02-07 格式:DOC 页数:8 大小:2.03MB
返回 下载 相关 举报
哈尔滨工程大学--人工智能大作业_第1页
第1页 / 共8页
哈尔滨工程大学--人工智能大作业_第2页
第2页 / 共8页
哈尔滨工程大学--人工智能大作业_第3页
第3页 / 共8页
哈尔滨工程大学--人工智能大作业_第4页
第4页 / 共8页
哈尔滨工程大学--人工智能大作业_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《哈尔滨工程大学--人工智能大作业》由会员分享,可在线阅读,更多相关《哈尔滨工程大学--人工智能大作业(8页珍藏版)》请在金锄头文库上搜索。

1、人工智能课程大作业0水中鱼- 花样游泳2013201411,宋梓瑚摘要:水中鱼花样游泳比赛采用水中机器人水球比赛仿真器 2D 版(Underwater Robot Water Polo Game Simulator 2D Edition, URWPGSim2D)软件作为比赛平台。仿真器包括服务端(URWPGSim2DServer)和客户端( URWPGSim2DClient) 。服务端模拟水中比赛环境,控制和呈现比赛过程及结果,向客户端发送实时比赛环境和过程信息;半分布式客户端模拟比赛队伍,加载比赛策略,完成计算决策过程,向服务端发送决策结果。 关键词:水中鱼花样游泳;计算平台;比赛服务器本组

2、成员:宋梓瑚,陈宣宇,王炜镝,张浩然本人分工:水中鱼姿态编写、水中鱼代码设计1 引言1.1 水中鱼比赛规则2D 仿真花样游泳是由 1 支队伍参与, 每支队伍 10 条仿真机器鱼,不规定仿真水球和仿真障碍物的非对抗性比赛项目。2D 仿真花样游泳比赛项目采用标准仿真场地(3000mm*2000mm)1.5 倍尺寸的场地。比赛过程:初始状态是 1 支队伍的 10 条仿真机器鱼,位置和方向均随机分布在仿真场地上。比赛开始后,1 号仿真机器鱼在比赛场地内随机游动,不受参赛队伍的策略控制;其他 9 条仿真机器鱼由参赛队伍编写策略进行控制,配合 1 号仿真机器鱼进行表演,依次完成标准动作和自由动作。 (1)

3、标准动作阶段:在标准动作阶段参赛队伍按照规则完成标准动作。标准动作为:1 个包含阿拉伯数字的造型、1 个封闭几何图形、保持所有鱼相同造型和动作 5 秒以上、两个造型之间 5 秒的画面静止。标准动作顺序不限,可以同时出现。 (2)自由动作阶段: 在自由动作阶段参赛队伍自行设计动作进行表演。 比赛时间递减到零之前,如果队伍表演完成,由参赛队伍向裁判说明,比赛结束,并由裁判根据计分规则给出得分。比赛时间递减到零,如果队伍表演未完成,比赛结束,由裁判根据可观赏性和协作性给出得分。 本项目旨在考察策略运行结果的可观赏性和协作性。平台提供有背景音乐加载功能,可通过服务端背景音乐加载界面加入背景音乐。比赛时

4、间为 5 分钟,其中标准动作阶段 3 分钟,自由动作阶段 2 分钟,比赛只进行一次,比赛过程中不得暂停。 1.2 水中鱼设计思想URWPGSim2D 的设计采用面向对象思想。从对象建模的角度看,包括仿真机器鱼、仿 真环境和仿真使命(比赛或实验项目)三类模型,以仿真使命模型为中心。仿真使命包括仿 真机器鱼队伍列表和仿真环境。仿真使命启动运行后,仿真循环将周期性地持续进行,直到设定的仿真时间耗完、人为 /程序决定暂停 /停止。 并发协调运行时,MRDS 用于解决机器 人软件开发中并发问题的技术和基础软件库。分布式软件服务,MRDS 用于解决机器人软件开 发中异步问题的技术和基础软件库。 人工智能课

5、程大作业1Simulation Mission 仿真使命,即仿真比赛或实验项目,模拟机器鱼比赛或 实验项目的对象。 Simulation Environment 仿真环境是指仿真使命运行所处的虚拟环境, 其中包括仿真场地(模拟比赛或实验用水池的对象) 、零个或多个仿真水球(模拟比赛 或实验用水球的对象) 、零个或多个仿真方形障碍物(模拟比赛或实验用方形障碍物的 对象) 、零个或多个仿真圆形障碍物(模拟比赛或实验用圆形障碍物的对象) 。 1.3 水中鱼简介Simulation RoboFish 是仿真机器鱼,模拟比赛或实验用机器鱼的对象。Simulation Loop 仿真循环是指仿真使命运行过

6、程中所有仿真动作顺序执行一遍的过程。Simulation Cycle 仿真周期,理论上考虑为比单个仿真循环所耗时间(与运行软硬件环 境有关,不能精确确定,在相同环境下,每次运行也不精确相同)预估大值稍大的确 定时间间隔(如 100 毫秒) 。当前(2011325)平台仿真循环在推荐的软硬件配置(见 2 开 发环境)下所耗时间大约在 10-20 毫秒之间,为简化线程同步,在仿真使命的公共参数 类中设置了一个成员 MsPerCycle,保存一个初始化仿真使命时传入的整数值,称为“每 周期毫秒数” ,实际运行时的仿真周期值不确定,为 MsPerCycle 值加上当前周期仿真循 环所耗时间,通常 Ms

7、PerCycle 都取 100 毫秒,仿真周期值大约在 110-120 毫秒之间。仿 真使命倒计时以根据 MsPerCycle 计算出来的总周期数递减的方式进行,故界面上显示的 倒计时牌并不是按精确的世界时间递减。Simulation Action 仿真动作包括将策略计算出来的决策命令拷贝到每支队伍每条仿 真机器鱼对象本身的决策字段(后续计算都是直接使用仿真机器鱼对象自身的决策命令) 、对所有动态对象(目前包括每支队伍的所有仿真机器鱼、仿真环境中仿真水球列 表的所有仿真水球)进行运动学计算、对所有对象(包括每支队伍的所有仿真机器鱼、 仿真环境中所有对象)相互进行碰撞处理(包括碰撞检测和碰撞响应

8、) 。 URWPGSim2D 在 PC 机或工作站上进行开发,其硬件配置要求如下表所示。 表 1.1 URWPGSim2D 运行硬件配置表 核心配件 低配置 推荐配置 CPU Intel P4 2.0GHz 或同档次 AMD CPU Intel E7300 2.66GHz 或以上内存 256MB 2GB 或以上显卡 支持 DirectX 9.0,Pixel Shader 3.0,显存 128M 或以上 硬盘 10GB 80GB 或以上 表 1.1 URWPGSim2D 运行硬件配置表搭建开发环境所需软件(PC 机或工作站)要安装 Windows XP Professional SP3 操作系统

9、。按照默认设置安装 DotNet3.5SP1(该软件包集成了 SP1,且安装时不需要联网,官方网 站提供的安装包安装时需要联网)和 XNA3.1。按照至少保留 C#开发相关组件的要求安装(建议除 SQL Server数据库外的部分完全安 装)Microsoft Visual Studio Team System 2008 Team Suite 中文版 with SP1并破解。 按照默认设置安装 TortoiseSVN1.6.5 和 VS2008 的 VisualSVN 插件并破解。 2 算法原理与系统设计2.1 水中鱼平台坐标场地坐标系及点和向量定义。以矩形场地中心为坐标原点,正右为正 X 轴

10、,正下为正 12 Z 轴;从正 X 到负 X 轴,顺时针为 0,逆时针为 0-。考虑与 MRDS 中的三维坐 标系一致,水平面用 XOZ 表示,Y 轴作为第三维。程序中涉及向量和点的定义,都使 用 XNA 库中的 人工智能课程大作业2Vector3 类型,用到其中的 X 和 Z 维,Y 维均置为 0。二维点和向量与 三位点和向量之间的转换,二维的 X 与三维的 X 对应,二维的 Y 与三维的 Z 对应。 2.2 水中鱼定点的实现(1)PoseToPose 函数 PoseToPose 函数,也称作位姿到位姿控制函数,其作用是实现仿真机器鱼从当前位姿 到目标位姿的精确控制。位姿到位姿的控制分为两个

11、阶段:第一阶段,控制仿真机器鱼快速 游动到临时目标点;第二阶段,控制仿真机器鱼游动至目标点。其中,临时目标点为终目 标位姿反向延长线上的某一点,其距离阈值可以调节。 在整个鱼类的编写中我们都使用了 PoseToPose()函数,其主要功能就是函数的调用问题,在函数的调用过程中,其函数变量为public static void PoseToPose(ref Decision decision, RoboFish fish, xna.Vector3 destPtMm, float destDirRad, float angThreshold, float disThreshold, int msP

12、erCycle, ref int times) 函数参数表见表 2.1参数名称 参数类型 参数说明 decision ref Decision PoseToPose 计算得到的决策变量值(输出参数)fish RoboFish 执行 PoseToPose 的仿真机器鱼对象 destPtMm xna.Vector3 目标位置坐标(目标点 destDirRad float 目标方向弧度值(目标方向) angThreshold float 关键调节参数(中间方向与鱼体方向度数差值绝对值)上限,默认 30 度disThreshold float 关键调节参数(临时目标点与终目标点距离)阈值 msPerC

13、ycle int 每个仿真周期的毫秒数,即 mission.CommonPara.MsPerCycle times ref int 参见 5.1.3(输出参数) 表 2.1 函数参数表(2)函数调用方法A. 在策略代码 Strategy 类中添加整型成员变量,并初始化为 0,作为调用 PoseToPose 函数 的后一个参数 times 的输入,如 int times;。该变量用于记录算法进入第二阶段的时间。 B. 在策略代码 Strategy 类的成员函数(方法)中调用 PoseToPose。使用推荐参数的调用代 码如下,可根据实际调试情况进行调整。 StrategyHelper.Helpe

14、rs.PoseToPose(ref decisionsi, mission.TeamsRefteamId.Fishesi, targetPoint, targetDirection, 30.0f, 8 * b.RadiusMm, mission.CommonPara.MsPerCycle, ref times); C. 需要调用者自行判断是否已经完成位姿控制目标。完成一次位姿控制目标后,若需要再 次调用 PoseToPose 进行新的位姿到位姿控制,需要将第 1 步中定义的 times 参数的输入变 量(Strategy 类的成员变量)清零。 (3)基本程序框架using System; us

15、ing System.Collections.Generic;using System.Linq; using System.Text; Using xna = Microsoft.Xna.Framework; using URWPGSim2D.Common; using URWPGSim2D.StrategyLoader; namespace URWPGSim2D.Strategy public class Strategy : MarshalByRefObject, IStrategy #region reserved code never be changed or removed /

16、人工智能课程大作业3/ override the InitializeLifetimeService to return null instead of a valid / to ensure this type of remote object never dies / / null public override object InitializeLifetimeService() return null; / makes the object live indefinitely #endregion / / 决策类当前对象对应的仿真使命参与队伍的决策数组引用 第一次调用 GetDecision 时分配空间 / private Decision decisions = null; /

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号