规划算法的仿真测试环境设计含MATLAB程序_第1页
规划算法的仿真测试环境设计含MATLAB程序_第2页
规划算法的仿真测试环境设计含MATLAB程序_第3页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计论文(中文)摘要作为机器人研究领域的一个重要组成部分, 规划算法在 近年来的科学实践中得到了广泛应用, 规划科学发展进步巨 大。而针对规划领域中算法繁多,良莠不齐的现状,建立一 个通用的仿真测试平台,对各种规划算法进行可视化仿真, 将会给用户挑选合理的规划算法进行应用带来巨大的方便。 本文采用有较强图像化功能的 MATLAB 软件平台为基础, 尝试设计实现一款仿真模块, 实现具有统一外部接口的各种 路径规划算法的可视化仿真,并通过对规划结果的计算,给 出对算法的优劣性评价, 为规划结果的测试提供一个简单便 捷的工具,方便用户对各种规划算法进行比较,并挑选出合 理的算法进行应用。关键词:

2、 规划算法; 测试平台; 可视化仿真。毕业设计论文(外文)摘要Title Development of planing algorithmsimulation testing environmentAbstractAs an important area of robot research, the path planning algorithm obtained many applications .In the recent years, the plan science has been great development. But it is difficult to tell whi

3、ch is poor or good in view of the many planning domain in present.A general simulation testing platform, including the visualization simulation to test each kind of plan algorithm, will be able to give the user a tool to choose reasonable plan algorithm for application. A general simulation testing

4、platform, including the visualization simulation to test each kind of plan algorithm, will be able to give the user a tool to choose reasonable plan algorithm for application.This paper uses MATLAB platform which has the strong image function, and hope to realize a simulation tool, which provides vi

5、sualization simulation to eachkind of path planning algorithms,and obtains the algorithm the performance. The paper provides a simple convenient tool for the path planning result test. The user can use it for comparison to each kind of plan algorithm, and chooses the reasonable algorithm to carry on

6、.Keywords:path planning algorithm, testingplatform, visualization simulation目录第 1 章 绪论 21.1 研究背景与意义 2.1.1.1 路径规划的定义 3.1.1.2 规划方法的分类 4.1.2 仿真平台的作用和意义 1.11.3 MATLAB 简介 1.41.3.1 MATLAB 的特点 1.51.3.2 MATLAB 的各种文件 1.9第二章 .设计原理分析与介绍 2.02.1GUI 用户界面设计基本原理简介 2. 12.2 规划算法的仿真测试原理 2.62.3MATLAB 数据可视化 3.12.3.1 基本二

7、维图形绘制 3.22.3.2 三维 图 形 3.42.4 交互式图形命令 3.62.5 障碍空间的可视化 3.7第三章具体实现过程 3.83.1 GUI 界面设计 3.83.2 回调函数的编写 4.03.3 仿真平台的使用 6.2结 论 6.4.致 谢 6.5.第 1 章 绪论1.1 研究背景与意义规划是人类智慧的结晶,规划问题广泛地出现在人们的日常工作和生活中。例如,奥运场馆建设、军事行动、交通运输、农作物耕种、航天飞机再入飞行、无人机航迹规划等不胜枚举,从孙子兵法到田忌赛马、从“运筹帷幄”到“事半功倍” ,这些典故 和词汇无不闪耀着规划的光辉。 虽然规划问题是一个古老的问题, 但是现代科学

8、的发展为规划的发展注入了新的血液和强劲动力。 现在,规划涉与计算机科学、人工智能、力学、机械学、控制论、 对策论、概率论、图论、拓扑学、微分几何、代数几何等许多现 代科学领域,所以说规划是一个既古老而又崭新的学科,它随着 人类对客观世界的认识水平的发展而发展。 由于动作种类的繁多, 存在多种形式的规划例如路径规划、运动规划、感知规划、导航 规划等等。作为规划领域最核心的基石,各种规划算法也随着规 划科学的进步得到了巨大的发展和应用。本文主要以路径规划为 研究对象,对各种路径规划算法进行仿真测试。1.1.1 路径规划的定义路径规划技术是机器人学研究领域中的一个重要部分。机器 人的最优路径规划就是

9、依据某个或某些优化准则 ( 如工作代价最 小、行走路线最短、行走时间最短等 ) ,在有障碍物的工作环境 中, 如何寻找一条从给定起点到终点适当的运动路径, 使机器人在运动过程中能安全、无碰地绕过所有障碍物。1.1.2 规划方法的分类根据对环境信息的掌握程度不同, 路径规划可分为全局路径 规划和局部路径规划 。1. 全局路径规划。全局路径划是指环境信息完全已知,根据环境地图按照一定 的算法搜寻一条最优或者近似最优的无碰撞路径, 规划路径的精 确程度取决于获取环境信息的准确程度 ;。全局路径规划常见的方 法有栅格法,可视图法,拓扑法,自由空间法,神经网络法等。(1) 栅格法栅格法是目前研究最广泛的

10、路径规划方法之一。该方法将机 器人的工作空间分解为多个简单的区域 ( 栅格 ) , 由这些栅格构 成一个显式的连通图, 或在搜索过程中形成隐式的连通图, 然 后在图上搜索一条从起始栅格到目标栅格的路径。一般路径只需 用栅格的序号表示。 但栅格的划分直接影响其规划结果, 如果栅 格划分过大, 环境信息储藏量小, 分辨率下降, 规划能力就差; 栅格划分过小, 规划时间长, 而且对信息存储能力的要求会急 剧增加。(2) 可视图法 可视图法中的路径图由捕捉到的存在于机器人一维网络曲线( 称为路径图 ) 自由空间中的节点组成。路径的初始状态和目标 状态同路径图中的点相对应, 这样路径规划问题就演变为在这

11、些 点间搜索路径的问题。要求机器人和障碍物各顶点之间、目标点 和障碍物各顶点之间以与各障碍物顶点与顶点之间的连线均不能 穿越障碍物, 即直线是“可视的” 。然后采用某种方法搜索从起 始点到目标点的最优路径, 搜索最优路径的问题就转化为从起始 点到目标点经过这些可视直线的最短距离问题。该法能够求得最 短路径, 但需假设忽略机器人的尺寸大小, 使得机器人通过障 碍物顶点时离障碍物太近甚至接触, 并且搜索时间长。(3) 拓扑法拓扑法将规划空间分割成具有拓扑特征的子空间, 根据彼 此的连通性建立拓扑网络, 在网络上寻找起始点到目标点的拓扑 路径, 最终由拓扑路径求出几何路径。 拓扑法的基本思想是降维

12、法, 即将在高维几何空间中求路径的问题转化为低维拓扑空间中 判别连通性的问题。其优点在于利用拓扑特征大大缩小了搜索空 间, 其算法的复杂性仅依赖于障碍物数目, 在理论上是完备的 而且拓扑法通常不需要机器人的准确位置, 对于位置误差也就有 了更好的鲁棒性。 缺点是建立拓扑网络的过程相当复杂, 特别是 在增加障碍物时如何有效地修正已经存在的拓扑网是有待解决的 问题。(4) 自由空间法 自由空间法采用预先定义的广义锥形或凸多边形等基本形状 构造自由空间, 并将自由空间表示为连通图, 通过搜索连通图 来进行路径规划。自由空间的构造方法是 : 从障碍物的一个顶点 开始,依次作其他顶点的连接线, 删除不必

13、要的连接线, 使得 连接线与障碍物边界所围成的每一个自由空间都是面积最大的凸 多边形, 连接各连接线的中点形成的网络图即为机器人可自由运 动的路线。 其优点是比较灵活, 起始点和目标点的改变不会造成 连通图的重构。 缺点是复杂程度与障碍物的多少成正比, 且有时 无法获得最短路径。(5) 神经网络法人工神经网络是由大量神经元相互连接而形成的自适应非线 性动态系统。 对于大范围的工作环境, 在满足精度要求的情况下, 用神经网络来表示环境可以取得较好的效果。神经网络在全局路 径规划的应用, 将障碍约束转化为一个惩罚函数, 从而使一个 约束优化问题转化为一个无约束最优化问题, 然后以神经网络来 描述碰

14、撞惩罚函数, 进行全局路径规划。 虽然神经网络在路径规 划中有学习能力强等优点, 但整体应用却不是非常成功, 主要 原因是智能机器人所遇到的环境是千变万化的、 随机的, 并且很 难以数学的公式来描述。2. 局部路径规划局部路径规划是指环境信息完全未知或部分未知, 根据传感 器的信息来不断地更新其内部的环境信息, 从而确定出机器人在 地图中的当前位置与周围局部范围内的障碍物分布情况, 并在此 基础上, 规划出一条从当前点到某一子目标点的最优路径。 局部 路径规划常见的方法有人工势场法,模糊逻辑控制算法,遗传算 法,蚁群优化算法,粒子群算法等。(1) 人工势场法人工势场法是由 Khat ib 提出

15、的一种虚拟方法, 其基本思想 是将机器人在未知环境中的运动视为一种虚拟人工受力场中的运 动, 目标点对机器人产生引力, 障碍物对机器人产生斥力, 最 后通过求合力来控制机器人的运动。 该法结构简单, 便于底层的 实时控制, 在实时避障和平滑的轨迹控制方面, 得到了广泛应 用 ; 其不足在于存在局部最优解, 因而可能使机器人在到达目标 点之前就停留在局部最优点。(2) 模糊逻辑控制算法模糊逻辑方法利用反射式机制, 将当前环境中的障碍物信息 作为模糊推理机的输入, 推理机输出机器人期望的转向角和速度 等。该方法在环境未知或发生变化的情况下, 能够快速而准确地 规划机器人的局部路径, 对于要求有较少

16、路径规划时间的机器人 是一种很好的规划方法。但是, 当障碍物数目增加时, 该方法 的计算量很大, 影响规划结果, 而且其只利用局部信息做出快 速反应, 较容易陷入局部最优。(3) 遗传算法遗传算法是一种借鉴生物界自然选择和进化机制发展起来的 高度并行、随机、自适应搜索算法。它采用群体搜索技术,通过 选择、交叉和变异等一系列遗传操作,使种群得以进化, 避免了困难的理论推导, 直接获得问题的最优解。其基本思想是 : 将 路径个体表达为路径中一系列中途点,并转换为二进制串, 首先初始化路径群体, 然后进行遗传操作, 如选择、交叉、复制、 变异,经过若干代进化以后, 停止进化, 输出当前最优个体。 遗

17、传算法存在运算时间长、路径在线性规划困难、进化效果不明显等问题。(4) 蚁群优化算法根据蚁群移动过程中途经各点周围的距离启发式信息概率, 产生多条从起点到终点的可行移动路径, 每一条路径代表了一只 蚂蚁的爬行轨迹。 对所产生的每一条可行移动路径, 分别计算路 径的长度和对应信息素的增量, 再采用设计的信息素轨迹更新函 数对路径上各点所对应的信息素进行更新, 将蚂蚁所走的弯曲路 径逐渐拉直为一条由直线段连接的可行路径, 并将此可行路径与 记录的目前最短路径进行比较。 如果路径长度更小, 则用该路径 替换最短路径, 并对路径上的各点信息素采用设计的信息素轨迹 更新函数进行更新, 综合使用当前点周围

18、的距离启发式信息概率 和给予信息素轨迹的转移概率产生下一条由起点到终点的可行路 径, 往复循环。如果当前时刻已达到预先设定的终止时刻, 则 将当前路径作为最短路径输出。(5) 粒子群算法粒子群优化算法是一种进化计算技术,由 Eberhart 博士和Kennedy 博士发明, 源于对鸟群捕食行为的研究。在粒子群优 化算法中, 每个优化问题的解都是搜索空间中的一只鸟, 我们 称之为“粒子”。所有的粒子都有一个由被优化的函数决定的适应 值, 每个粒子还有一个速度决定它们飞翔的方向和距离, 然后 粒子们就追随当前的最优粒子在解空间中搜索。粒子群优化算法 初始化为一群随机粒子 ( 随机解 ) , 然后通

19、过叠代找到最优解, 在每一次叠代中, 粒子通过跟踪两个“极值”来更新自己。第一 个极值就是粒子本身所找到的最优解, 这个解叫做个体极值 ; 另 一个极值是整个种群目前找到的最优解, 这个极值是全局极值。 另外也可以不用整个种群而只是用其中一部分作为粒子的邻居, 那么在所有邻居中的极值就是局部极值。 在找到这两个最优值后, 粒子根据相关公式来更新自己的速度和位置。1.2 仿真平台的作用和意义当前,各种规划算法在实际科研中的到了广泛的应用,规划 算法也发展到了一个较高的层次。然而,在实际应用中,规划算 法种类繁多,各种算法的优缺点和适用对象也不尽相同,很难保 证一种算法在任意复杂的环境中都能准确的

20、避开障碍物,找到一 条安全可行的路径,来满足用户的需求。我们以遗传算法和人工 势场法为例。遗传算法的搜索方式和遗传操作能得到最短路径, 路径的优化程度取决于迭代次数, 但在障碍物较多的复杂环境中, 转弯处容易局部碰触障碍物边缘,其局部安全性有待提高。而人 工势场法得到的路径光滑度很好,通常能够成功、安全避开障碍 物,但不是最优或最短路径,在障碍物较多的环境中,产生局部 最小点的可能性很大, 容易出现局部最优解或目标不可达的问题。 而不同的算法实施对象,对路径的长度、最大曲率以与算法的反 应时间的要求也不同,这就对算法本身提出了更高的要求,不合 理的算法应用将会导致实施对象在实验过程中按照错误的

21、路径进 行运动,甚至可能对实施对象以与整个实验系统造成破坏。在这 种情况下,我们在模拟环境中对规划算法进行仿真测试也就显得 尤为重要了。仿真测试是验证规划算法的一个很重要的步骤,其测试的过程主要包括环境的模拟构建,规划结果的可视化表达,以与规划结果的评估这么几个方面。由于规划算法的实现过程和仿真环境 的构建是两个完全独立的过程,因此完全可以通过设计一个通用 的测试模块来简化规划算法在测试阶段所做的重复的开发工作。本文采用有较强图像化功能的 MATLAB 软件平台为基础, 尝 试设计实现一款仿真软件, 对各种路径规划算法进行可视化仿真, 并得出该算法的性能指标,为规划结果的测试提供一个简单便捷

22、的工具,方便用户对各种规划算法进行比较,并挑选出合理的算 法进行应用。通常情况下,路径规划算法需要满足如下性能指标:(1)、合理性。返回的任何路径都是合理的,或者说任何路径 对实施对象运动都是可执行的。(2)、完备性。如果客观上存在一条从起点到达终点的无碰路 径,该算法一定能找到;如果环境中没有路径可通行,返回报告 规划时报。(3)、最优性。算法规划的结果路径在某个测度(如时间,距 离,能量消耗等)上是最优的。( 4 )、实时性。规划算法的复杂度(时间需求、存储需求等) 能满足应用对象运动的需要。(5)、环境变化适应性。算法具有适应环境动态改变的能力, 随着环境改变,不必全部都重新计算。(6)

23、、满足约束。支持应用对象运动时的完整和非完整性运动 约束。对于在未知的,动态的非结构环境下运动的实施对象而言, 传统的路径规划算法很难达到上面提出的指标要求。本文从用户 实际应用的角度出发,主要考察算法所对应的路径优化、路径长 度、路径安全、规划误差、规划时间等参数,并且提出一个可行 的量化评估函数,方便用户了解规划算法性能并挑选出合理的规 划算法进行应用。1.3 MATLAB 简介MATLAB 是目前在国际上被广泛接受和使用的科学与工程 计算软件。 20 世纪 70 年代中后期,曾在密西根大学、斯坦福大 学和新墨西哥大学担任数学与计算机科学教授的 Cleve Moler 博士,为讲授矩阵理论

24、和数值分析课程的需要,他和同事用Fortran 语言编写了两个子程序库EISPACK和LINPACK,这便是 构思和开发 MATLAB 的起点。经过 30 多年的发展, MATLAB 现 在的发展已经使其成为一种集数值运算、 符号运算、 数据可视化、 图形界面设计、程序设计、仿真等多种功能于一体的集成软件。 今天的 MATLAB 已经不再是仅仅解决矩阵与数值计算的软件, 更 是一种集数值与符号运算、 数据可视化图形表示与图形界面设计、 程序设计、仿真等多种功能于一体的集成软件。观察由欧美引进 的新版教材, MATLAB 已经成为线性代数、 数值分析计算、 数学 建模、信号与系统分析、自动控制、

25、数字信号处理、通信系统仿 真等一批课程的基本教学工具。 而在国内, 随着 MATLAB 在我国 高校的推广和应用, MATLAB 已经渐入人心。1.3.1 MATLAB 的特点MATLAB 有两种基本的数据运算量: 数组和矩阵, 单从形式 上,它们之间是不好区分的。每一个量可能被当作数组,也可能 被当作矩阵,这要依所采用的运算法则或运算函数来定。在 MATLAB 中,数组与矩阵的运算法则和运算函数是有区别的。 但 不论是 MATLAB 的数组还是 MATLAB 的矩阵,都已经改变了一般 高级语言中使用数组的方式和解决矩阵问题的方法。在 MATLAB 中,矩阵运算是把矩阵视为一个整体来进行,基本

26、上与线性代数 的处理方法一致。矩阵的加减乘除、 乘方开方、 指数对数等运算, 都有一套专门的运算符或运算函数。而对于数组,不论是算术的 运算,还是关系或逻辑的运算,甚至于调用函数的运算,形式上 可以当作整体, 有一套有别于矩阵的、 完整的运算符和运算函数, 但实质上却是针对数组的每个元素施行的。当MATLAB 把矩阵(或数组)独立地当作一个运算量来对待 后,向下可以兼容向量和标量。不仅如此,矩阵和数组中的元素 可以用复数作基本单元,向下可以包含实数集。这些是 MATLAB 区别于其他高级语言的根本特点。以此为基础,还可以概括出如(1) 语言简洁,编程效率高因为 MATLAB 定义了专门用于矩阵

27、运算的运算符, 使得矩阵 运算就像列出算式执行标量运算一样简单,而且这些运算符本身 就能执行向量和标量的多种运算。利用这些运算符可使一般高级 语言 中 的循 环结 构 变成 一 个简 单的 MATLAB 语句, 再 结 合 MATLAB 丰富的库函数可使程序变得相当简短, 几条语句即可代 替数十行 C 语言或 Fortran 语言程序语句的功能。(2) 交互性好,使用方便在 MATLAB 的命令窗口中,输入一条命令,立即就能看到该 命令的执行结果,体现了良好的交互性。交互方式减少了编程和 调试程序的工作量,给使用者带来了极大的方便。因为不用像使 用 C 语言和 Fortran 语言那样,首先编

28、写源程序,然后对其进行 编译、连接,待形成可执行文件后,方可运行程序得出结果。(3) 强大的绘图能力,便于数据可视化MATLAB 不仅能绘制多种不同坐标系中的二维曲线, 还能绘 制三维曲面,体现了强大的绘图能力。正是这种能力为数据的图 形化表示 (即数据可视化 )提供了有力工具,使数据的展示更加形 象生动,有利于揭示数据间的内在关系。(4) 学科众多、领域广泛的工具箱MATLAB 工具箱 (函数库 )可分为两类:功能性工具箱和学科 性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建 模仿真功能、文字处理功能以与与硬件实时交互的功能。而学科 性工具箱是专业性比较强的,如优化工具箱、统计工具

29、箱、控制 工具箱、通信工具箱、图像处理工具箱、小波工具箱等。(4) 开放性好,易于扩充除内部函数外, MATLAB 的其他文件都是公开的、 可读改的 源文件, 体现了 MATLAB 的开放性特点。 用户可修改源文件和加 入自己的文件,甚至构造自己的工具箱。(5) 与 C 语言和 Fortran 语言有良好的接口通过MEX文件,可以方便地调用 C语言和Fortran 语言编 写的函数或程序, 完成 MATLAB 与它们的混合编程, 充分利用已 有的 C 语言和 Fortran 语言资源。1.3.2 MATLAB 的各种文件因为 MATLAB 是一个多功能集成软件,不同的功能需要使 用不同的文件格

30、式去表现,所以 MATLAB 的文件也有多种格式。 最基本的是 M 文件、数据文件和图形文件, 除此之外, 还有 MEX 文件、模型文件和仿真文件等。下面分别予以说明。(1) M 文件,以 .m 为扩展名,所以称为 M 文件。 M 文件 是由一系列 MATLAB 语句组成的文件, 包括命令文件和函数文件 两类,命令文件类似于其他高级语言中的主程序或主函数,而函 数文件则类似于子程序或被调函数。 MATLAB 众多工具箱中的 (函数 )文件基本上是 M 函数文件。因为它们是由 ASCII 码表示的 文件,所以可由任一文字处理软件编辑后以文本格式存放。(2) 数据文件,以 .mat 为扩展名,所以

31、又称 MAT 文件。在 讨论工作空间窗口时已经涉与到 MAT 文件。显然,数据文件保 存了 MATLAB 工作空间窗口中变量的数据。(3) 图形文件,以 .fig 为扩展名。主要由 MATLAB 的绘图命 令产生,当然也可用 File 菜单中的 New 命令建立。(4) MEX 文件,以.mex或.dll为扩展名,所以称MEX 文件。MEX 实际是由 MATLABExecutable 缩写而成的,由此可见, MEX 文件是 MATLAB 的可执行文件。(5) 模型和仿真文件,模型文件以 .mdl 为扩展名, Simulink 仿真工具箱在建立各种仿真模型时产生。仿真文件以 .s 为扩展 名。第

32、二章 .设计原理分析与介绍本文所设计的仿真测试平台, 是在 MATLAB 软件上完成的, 其实现过程主要包括以下几个模块: GUI 用户界面, 数据可视化, 交互式输入输出,规划算法的导入,规划结果的显示和规划指标 的计算。其中, GUI 用户界面是所有模块的基础,障碍环境的生 成以与用户使用操作过程都是在这个界面上进行的;数据可视化 模块是用来实现障碍环境的可视化的,其主要作用对象是用户界 面上的坐标平面;交互式输入是本文中用户向平台输入数据的主 要方式,用户主要通过鼠标确定环境中障碍和目标位置;规划算 法的导入是本文的重点,在所编写程序中留有规范的导入接口, 符合该接口格式要求的算法程序都

33、可以在平台上进行测试;结果 显示模块是用来展示平台对规划算法的测试结果,用户通过观察 坐标平面图像和文本框内容得出结论。下面我们将详细介绍各个 模块的原理和功能:2.1 GUI 用户界面设计基本原理简介用户界面是指: 人与机器之间交互作用的工具和方法。 如键盘、 鼠标、跟踪球、话筒都可成为与计算机交换信息的接口。图形用户界面( Graphical User Interfaces ,GUI )则是由 窗口、光标、按键、菜单、文字说明等对象( Objects )构成的一 个用户界面。用户通过一定的方法(如鼠标或键盘)选择、激活 这些图形对象,使计算机产生某种动作或变化,比如实现计算、 绘图等。如果

34、想向别人提供应用程序,想进行某种技术、方法的 演示,想制作一个供反复使用且操作简单的专用工具,那么图形 用户界面也许是最好的选择之一。在 MATLAB 中有两种图形用户 界面的设计方法,即纯M文件编程的方式和利用 GUIDE(Graphical User Interfaces Development Environment)的方式。利用GUIDE的方式在设计过程中更直观, 所见即所得,同时减少了编码工作,所以本文主要采用 GUIDE 的 方法。界面制作包括界面设计和程序实现,具体设计过程主要包 括以下几个步骤:(1)、分析界面所需要实现的主要功能,明确设计任务;( 2)、构思草图, 从使用者和

35、功能实现的教的出发, 上机实现;(3)、编写对象的相应程序,对实现的功能进行逐项检查。首先,在MATLAB主窗口中,选择File菜单中的New菜单项,在选择其中的GUI命令,或者直接在命令窗口中输入:guide ,就会显示图形用户界面的设计模板,如图2.1 o图2.1MATLAB为GUI设计准备了 4种模板,分别是 BLANK GUI、GUI withUicontrols 、GUI with AxesandMenu 和 ModelQuestion Dialog。选中其中一个模板,然后单击“0K”,就会显示GUI窗口。当选择BLANK GUI,即可打幵空白模板,如图2.2。编辑工異条图2.2对齐

36、菜单编M丈件編.属性编已建控件激活關 工臺辑工臭雜工其舞工许纵览工具滋工異工作区 端放旬柄GUI设计窗口由菜单栏、工具栏、控件工具与图像设计区等部分组成。GUI设计冲口菜单栏有、view、layout、tools、help6个菜单项,在空白模板中提供如下图的控件(如图2.3),以方便用户界面设计图2.3在设计工作区中放置所需要用到的控件,调整好空间大小,并规划好界面布局,选中对象或双击对象,打幵对象属性查看器(Property Inspector ),在属性窗口中完成各个控件的属性设置。完成界面设计后,点击 M文件编辑器,将会生成相应的M文件。对M文件中各回调函数进行编写,并运行编写好的M文件

37、,即可得到所需要的图形界面窗口。2.2 规划算法的仿真测试原理针对各式各样复杂多变的规划算法,本文主要的研究目标是在在 MATLAB 上实现一个仿真平台,该平台提供一个标准的 MATLAB 数据接口,对满足该数据接口格式的规划算法进行仿真 测试,能以图形的形式给出规划的结果,并尝试测试出该算法的 性能指标参数。另外,本文提出一种量化评估函数,得出关于各 种规划算法的总体性能参数,供用户参考。函数如下:F = f ( c , d , s, e, t , v)=k1c + k2d + k3 s + k4e + k5 t + k6v式中: c 为路径优化参数, d 为路径长度参数, s 为路径安全

38、参数, e 为规划误差参数, t 为规划时间参数, v 为规划空间参 数, k1 k6 为性能系数:其中 c、s 为正增长参数, d 、e、t、 v 为负增长参数。 单项性能最好, 算法的该项性能参数取量化标 准值 1,其余算法该项性能参数通过与标准性能比较给出。 性能系 数体现其对应性能参数对评估函数的影响,有刀k i= 1。根据上 述路径规划性能分析给出如下性能系数经验估计值:全局规划 : k1= 0. 15 ,k2= 0. 3 , k3= 0. 3 , k4=0. 05 , k5=0. 1, k6= 0. 1 。局部规划 : k1= 0. 2 ,k2= 0. 1 ,k3 = 0. 35

39、, k4=0. 15 ,k5= 0.15, k6= 0. 05 。作为示例,本文引入人工势场法,将其作为测试对象。人工势场法是路径规划中应用比较普遍的一种方法。其基本 原理就是对所处障碍环境中每一点都赋一个势场值,其值是目标 点的引力和障碍点的斥力叠加之和。因此路径规划也就是从起始 点沿着势场下降最快的方向到达目标点。对于每一个障碍点,我们通过以下公式来得到斥力R的大小:R=W/(J-y)A2+(I-x)A2其中I,J表示障碍空间内任意一点的横,纵坐标,X,Y表示障碍中心点的坐标, W表示障碍物的宽度。根据以上公式,障碍空间内每一点都将获得对应的斥力参数。并且我们很容易发现, 在障碍物和边界处

40、,斥力参数将会出现最大值。对于目标点,我们也可以通过以下公式来获得它对空间内每 一点引力RG的大小:RG二sqrt(J-Goal YF2+(l-GoalXF2)其中X,Y表示目标点的坐标,I, J表示空间内任意点坐标 根据上述算法,我们可以得到空间内每一点的引力参数。该参数 将在目标点取得最小值,在当前点取得最大值。将障碍空间中各障碍点的斥力和目标点的引力相叠加,可以 得到空间内每一点的势场值。131.141.155.174.199.237.297.300300300130.141.155.174.200.238.299.300300300130.141.155.174.201.240.300

41、300300300130.141.155.174.201.241.300300300300129.141.155.175.201.240.300300300300129.140.155.175.202.241.300300300300128.140.155.175.202.243.300300300300127.139.155.175.203.245.300300300300126.139.155.175.204.246.300300300300125.138.154.176.205.248.300300300300上表即为某一障碍空间内部分点所对应的势场值。若其值大于或等于300,即表示该点

42、所在处为障碍。我们将300设置为势场值上限,当计算出的势场值超过300是,用300替代,这样做的好处 会方便画图。我们可以采用三维网格函数将空间内各点所对应的 势场值更直观的表示出来,即:mesh(i,j,A(i,j)。其中,i,j分别表示该点坐标,A(i,j)表示该点对应的势场值。如图2.4 :10C图2.4通过以上计算,我们得到了空间内每一点的势场值。于是,从起始点沿着势场值下降最快的方向到达目标,即我们所寻求的路 径。具体通过以下方法来实现:(1 )、我们将空间地图横纵坐标均分为 100等分,可得到100*100的二维坐标区域,从而可得到空间内任意一点的坐标。通常情况下,我们将(1,1)

43、点作为起始节点(当前节点)。( 2 )、得到当前节点后,将上一个当前节点作为父节点,使 其势场值为 300 ,并以当前节点为中心形成一个 3*3 包含 9个点的 当前区域 (当前节点为起点或边界点时不必满足 9个点,将当前节 点包围住即可),如图 2.5 。图2.5( 3)、比较当前区域内除父节点外 8个节点势场值大小,并将 势场值最小的节点作为下一个当前节点。( 4)、用下一个当前节点取代当前节点,然后返回到步骤2,重复 2的工作。( 5 )、不断将当前节点势场值与目标点势场值比较,如果相 等,则停止寻找下一个节点, 当前节点的移动轨迹即为所求路径。 2.3MATLAB 数据可视化完备的图形

44、功能使计算结果可视化,是 MATLAB 的重要特 点之一。用图表和图形来表示数据的技术称为数据可视化。MATLAB 不但擅长与矩阵相关的数值运算, 而且还提供了许多在 二维和三维空间内显示可视信息的函数,利用这些函数可以绘制 出所需的图形; MATLAB 提供了丰富的修饰方法, 合理地使用这 些方法,使我们绘制的图形更为美观、精确。2.3.1 基本二维图形绘制在 MATLAB 中,主要的二维绘图函数如下:(1)plot :x 轴和 y 轴均为线性刻度。( 2) loglog :x 轴和 y 轴均为对数刻度。(3) semilogx :x 轴为对数刻度, y 轴为线性刻度。( 4) semilo

45、gy :x 轴为线性刻度, y 轴为对数刻度。(5) plotyy: 绘制双纵坐标图形。(6) scatter(x , y , s, c)散点图s是圆圈标记点的面积,c是 标记点颜色(7)pie(x)饼图x为向量(8) subplot(m , n , p):将当前图形窗口分成 m Xn个子窗口, 并在第 p 个子窗口建立当前坐标平面。例如,在命令窗口中输入:x=linspace(0 , 2*pi , 100);subplot(2 , 2, 1);plot(x , sin(x); xlabel('x');ylabel('y');title('sin(x)&

46、#39;) subplot(2 , 2, 2);plot(x , cos(x);xlabel('x');ylabel('y'); title('cos(x)');subplot(2,2,3);plot(x,exp(x);xlabel('x');ylabel('y'); title('exp(x)');subplot(2,2,4);plot(x,exp(-x);xlabel('x');ylabel('y'); title('exp(-x)');即可得到以

47、下图形:0 5塔 00 5图2.6三维图形通常用函数plot3可以绘制三维图形,其调用格式主要有以下几种: plot3(X1 ,Y1,Z1,.): XI、Y1、Z1 为向量或矩阵,表 示图形的三维坐标。该函数可以在同一图形窗口一次画出多条三 维曲线,以 X1 , Y1 , Z1 , . Xn ,Yn,Zn 指定各条曲线的三维 坐标。(2) plot3(X1 ,Y1,Z1,LineSpec ,.):以 LineSpec 指定的 属性绘制三维图形。(3) plot3(. ,'PropertyName' ,PropertyValue ,.):对以函 数 plot3 绘制的图形对象设置

48、属性。可用函数 surf 、 mesh 、contour 等函数来绘制三维曲面图。如surf(x , y , z, c),绘制x, y和z指定的参数曲面。X和y必须为 向量。若x和y的长度分别为m, n ,则z为m*n的矩阵,c是颜色映 射数组,决定图形的颜色。mesh和contour函数与surf用法相同。如在命令窗口中输入:x, y = meshgrid(-3:1/4:3);z = peaks(x , y);surfc(x , y, z);即可得到以下图形图2.72.4交互式图形命令gin put命令是从图上获取数据x,y=ginput(n)%用鼠标从图形上获取n个坐标点(x,y)参数n为

49、正整数,表示通过鼠标从图上获取数据点个数,x,y用来存放坐标点的坐标gtxet命令是用于在鼠标指定位置加注释gtxet( string ')输入该命令后,在鼠标所指的当前图形出现一个十字叉,用户在核实的位置单击鼠标就可以string显示在所指定的位置。2.5障碍空间的可视化本例中在GUI图形界面设置了两个坐标轴, 用来显示障碍空间 的地形情况。根据人工势场法,在计算出空间内每一点的势场值 后,分别采用mesh和con tour函数来实现。函数的引用格式分别 为:mesh ( i,j,A( i,j),con tour ( i,j,A( i,j),A( i, j)表示空间内各点的势场值。我

50、们即可得到这样的图形:HD虬E0bu04U10(?1D图2.8第三章具体实现过程使用GUI设计用户界面,根据算法原理编写回调函数,得到一个操作性强的仿真环境。3.1 GUI 界面设计根据原理分析中用到的方法,创建一个 GUI 空白模板,调整窗口大小,并在空白处添加具体控件,如图 3.1 所示:图3.1然后,选中对象或双击对象,打幵对象属性查看器(PropertyInspector),在属性窗口中完成各个控件的属性设置。首先把图形的名称属性设置为“ fpp ”,然后设置Pushbutton1的string属性为:复位。同理,依次将以下按钮属性设置为 “设置障碍”,“设 置目标”,“寻找目标”,“

51、地图1 ”,“地图2”,“地图3”。设置StaticText1的string属性为“路径规划”,设置Static Tex2的string属性为“宽度”,设置Static Text3的string属性为“结果显示”。完成控件属性设置后,点击 M-(M文件编辑器),将其保存在 预定区域,即可得到该 GUI对应的M文件。然后进行M文件中相应Callback(回调)函数的编写。3.2回调函数的编写得到M文件后,单击图标 二向下的三角图形,可以看到各个 对象的回调函数,某些对象的创建函数或打幵函数,通过选中相 应项跳到对应的函数进行编写。选中fpP_OpeningFcn'选项,光标跳到functionfpp_Ope nin gFc n( hObject, eve ntdata , han dies ,varargin)'下面的空白处,输入以下代码:map=;setappdata(0 ,'map' , map);posf=0;setappdata(0 ,'posf' , posf);mapf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论