南通大学毕业设计论文论文081302施磊磊Word下载.docx
《南通大学毕业设计论文论文081302施磊磊Word下载.docx》由会员分享,可在线阅读,更多相关《南通大学毕业设计论文论文081302施磊磊Word下载.docx(33页珍藏版)》请在冰豆网上搜索。
![南通大学毕业设计论文论文081302施磊磊Word下载.docx](https://file1.bdocx.com/fileroot1/2023-1/4/c5ec6ba3-3a8f-440d-8bb8-ea09bfdeafee/c5ec6ba3-3a8f-440d-8bb8-ea09bfdeafee1.gif)
移动机器人的路径规划问题一直是机器人研究领域较为重要的研究方向,要实现机器人的智能化避障,那么移动机器人必须要依据某种最优准则,使移动机器人能够在工作范围内寻找一条从起始状态到目标状态的避开障碍物的最优路径。
机器人路径规划算法就要设计可行的避障策略,实现移动机器人在复杂环境中的避障,使其能够顺利到达目的地。
1.1引言
随着机器人在各行各业的实际应用越来越广泛,人们对机器人的“智能”的要求也在逐步提高,人们要求机器人在运动过程中具有与周围环境交互的能力。
其中一个最基本的需求就是能够实现避免障碍物到达终点,这种需求即为路径规划中的避碰问题。
移动机器人是一个集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。
移动机器人的路径规划问题一直是机器人研究领域较为重要的研究方向,机器人路径规划算法就要设计可行的避障策略,实现移动机器人在复杂环境中的避障,使其能够顺利到达目的地。
1.2课题背景及意义
自从人类创造了第一台机器人以后,机器人就开始显示出它极大的生命力。
移动机器人的研究最早是在1966年至1972年,斯坦福研究院的NilsNilssen和CharlesRosen等人研造出取名Shakey的自主移动机器人。
目的是研究应用人工智能技术,在复杂环境下机器人系统的自主推理、规划和控制。
在机器人路径规划的研究中,传统方法产生时间较早,从这些方法提出开始就有大量学者对其进行了深入探讨,并在此基础上开展了许多扩展和改进的应用,进而提出了许多不同的方法和思路。
课题的目的在于设计可行的路径规划算法来实现机器人的避障。
针对复杂的道路环境,利用传感器探测到的距离信息,设计可行的移动机器人路径规划算法,使机器人能够在避免与道路边界碰撞的前提下沿着道路顺利前进。
移动机器人的路径规划算法是实现机器人智能化的重要体现,特别是移动机器人在复杂多变的环境中,合理的规划算法是十分有意义的。
1.3课题研究的现状
根据对环境信息掌握的程度不同将移动机器人路径规划分为两种类型:
基于环境先验完全信息的全局路径规划;
基于传感器信息的局部路径规划。
后者环境是未知或部分未知的。
全局路径规划是指根据先验环境模型找出从起始点到目标点的符合一定性能的可行或最优路径,它涉及的根本问题是世界模型的表达和搜寻策略。
局部路径规划的主要方法有:
人工势场法(ArtificialPotentialField),遗传算法(GeneticAlgorithm)等。
1.3.1虚拟力场法
传统的虚拟力场法把移动机器人在环境中的运动视为一种在抽象的人造受力场中的运动,目标点对移动机器人产生“引力”,障碍物对移动机器人产生“斥力”,最后通过求合力来控制移动机器人的运动。
1.3.2栅格法
栅格法将机器人工作环境分解成一系列的网格单位,环境被量化成具有一定分辨率的栅格。
在栅格法中,栅格的大小直接影响着环境信息存储量的大小和规划时间的长短。
栅格划分小了,环境分辨率高,在密集环境下发现路径的能力强,但环境信息存储量大,算法的搜索范围将按指数增加;
栅格划分大了,环境信息存储量小,规划时间短,但分辨率下降,在密集环境下发现路径的能力减弱。
1.3.3遗传算法
遗传算法以自然遗传机制和自然选择等生物进化理论为基础,在某种程度上对生物进化过程作数学方式的模拟。
遗传算法只要求适应度函数为正,不要求可导或连续,采用同时处理群体中多个个体的方法实现其本质的并行性,适用于在整个空间上的全局搜索,相对于多数优化算法都是单点搜索,易于陷入局部最优,遗传算法更有可能搜索到全局最优解。
此外遗传算法还有极强的适应性及容错能力,解决了一些其它优化算法无法解决的问题。
1.3.4蚁群算法
从蚂蚁群体寻找最短路径觅食行为受到启发,意大利学者Dorigo等人在1991年提出了一种自然界蚁群行为的模拟进化算法一一人工蚁群算法,简称蚁群算法。
正反馈能够快速地发现较优解,分布式计算避免了早熟收敛,而贪婪式搜索有助于在搜索过程中早期找出可接受的解决方案,缩短了搜索时间。
蚁群算法具有很强的并行性。
可以不通过个体之间直接通信而是通过信息素进行合作,这样的系统具有更好的可扩充性。
蚁群算法结合了分布式计算、正反馈机制和贪婪式搜索的算法,具有很强的搜索较优解的能力。
但随着系统中个体增加而增加的系统通信开销在这里将非常大。
1.3.5模糊逻辑控制算法
模糊自动控制是以模糊集合化、模糊语言变量及模糊逻辑推理为基础的一种计算机数字控制。
从线性控制和非线性控制的角度分类,模糊控制是一种非线性的控制;
控制器的智能性来看,模糊控制属于智能控制的范畴,而且它已成为目前实现智能控制的一种重要而有效的形式。
模糊逻辑控制是通过模拟人脑的模糊思维方法,从而实现对被控系统的控制。
所谓模拟人脑思维,简单地说就是先将人工实践经验用模糊语言的形式加以总结和描述,产生一系列模糊控制规则,再通过模糊推理,将输人量变换为模糊控制输出量的这样一个过程。
1.4本研究所采用的算法
本论文主要是在了解了前人关于路径规划算法的基础上,提出两种路径规划算法:
基于行为的模糊控制算法和虚拟力场栅格法。
1.4.1算法概述
主要介绍这两种算法的一般性原理,用生活中的语言加以阐述:
(1)模糊逻辑控制算法概述
1965年美国的L.A.Zdaeh教授首先提出了模糊集合理论,即对于每一个元素xEX,存在一个值p(x)任[0,1],表示在给定论域上X属于集合X的程度,称为隶属度。
而模糊控制是模糊集合理论应用的一个重要方面。
20世纪70年代,英国学者Mamdani和ASSilain创立了模糊控制器的基本框架,并将模糊控制器用于控制蒸汽机。
这一开拓性的工作标志着模糊控制理论和技术的诞生。
1985年在贝尔实验室首先开发出实现模糊推理功能的芯片,从而促进了用硬件实现的模糊控制器的发展,给模糊控制带来了新的生气。
从此,模糊理论及其技术应用取得了很大的发展,并且在自然科学和社会科学的各个领域得到了广泛的应用。
对于非线性系统,模糊控制系统通过利用具有启发式的信息,它能够提供一种较方便的方法。
因此,在控制系统的设计中,尤其是那些数学模型复杂的或难以建立的系统的控制设计中,模糊控制系统是一种很好的、实用的替代方法。
模糊控制系统是基于知识的,或是基于规则的,这些规则是由若干“工f一Then”规则构成。
(2)虚拟力场栅格法
虚拟力场栅格法综合了虚拟力场算法和栅格算法的优点,该方法可以充分利用超声波传感器检测数据从而感知环境模型中存在的障碍物,采用栅格法表示环境模型中存在的障碍物。
为了降低虚拟力场法的计算量,用栅格法表示地图。
1.4.2模糊逻辑控制的组成
在该算法中最重要的就是模糊控制器的设计,该设计是实现该算法的关键。
模糊逻辑控制属于计算机数字控制的一种形式,因此,模糊控制系统的组成类似于一般的数字控制系统。
模糊控制系统一般可分为五个组成部分[2],如图1-4-1所示:
图1-4-1模糊控制体统框图
从图中可以得出模糊控制的核心部分是模糊控制器,模糊控制器的控
制规则由算法设计的计算机的程序实现。
模糊控制器主要由以下部分组成,对其进行详细分析。
(1)模糊化所谓模糊化(Fuzzification)就是通过传感器把控制对象的相关物理量转化成电量,若传感器的输出量是连续的模拟量,还要通过A/D转换器转换成数字量作为计算机的输入测量值;
接着再将此输入测量值作标准化处理,即把其变化范围映射到相应论域中,再将论域中的该输入数据转换成相应语言变量的术语,并构成模糊集合。
这样我们就完成了使精确的输入量转换成用隶属函数来表示的某一模糊变量的值。
这样31我们才能把检测到的输入量作为模糊控制规则中的条件来完成模糊控制规则的推理。
起到如此作用的模块就被称作状态接口或者就叫模糊化接口。
这部分关键要完成的是将输入的精确量转化成模糊化量,输入量包括外界的系统的输入、系统的输出等。
典型的模糊控制器结构图
(2)模糊推理模糊推理是模糊控制器的核心,它具有模拟人的基于模糊概念的推理能力,该推理过程是基于模糊逻辑中的蕴含关系及推理规则来进行的。
模糊逻辑控制器主要有两类:
Mamdani和Sugeno型。
两类控制器最大的不同在于模糊输出成员函数上。
Sugeno控制器的典型规则是“如果是A,并且Y是B,那么Z=f(X,Y)”。
这里A和B都是模糊子集;
Z=f(X,Y)是X,Y的函数,一般由输入变量X,Y的多项式的构成。
如果f是常数,则Z就是零阶Sugeno模型。
根据事先已制定好的一组模糊条件语句的模糊条件语句构成的模糊控制规则,然后运用模糊控制规则,接着运用模糊数学理论对模糊控制规则进行计算推理,这实际上是根据模糊控制规则对输入的一系列条件进行综合评估,以得到一个定性的用语言表示的量,这个结果只告诉你某一确定的输出范围,即所谓模糊输出量。
完成这部分功能的模块就称作模糊推理机。
(3)去模糊化显然模糊输出量是不能直接去控制执行部件的,在这确定的输出范围中,还必须要确定一个认为最具有代表作用的值作为真正的输出控制量。
这就是所谓解模糊判决(Defuzzification)。
至于如何确定这起关键性作用的数值,从不同的角度会得到不同的算法。
完成这部分功能的模块就被叫作解模糊接口或者也叫控制接口。
作用是将模糊推理得到的控制量,也就是将推理出的模糊量变换为实际用于控制的精确量。
得到了精确的控制量后,经数模转换,变为精确的模拟量信号后送给执行机构,对被控对象进行控制。
根据上述模糊理论的基础的分析介绍,我们可以把模糊控制算法概括为以下四个步骤:
首先根据本次采样得到的系统输出值,计算推出所选择系统的输入变量。
然后将输入变量的精确数值变为划分好的模糊量。
其次根据输入变量的模糊量和模糊控制规则,按模糊推理合成模糊控制系统规则计算控制量(模糊量)。
最后,由上述得到的控制变量计算也就是解模糊得出精确的控制量。
模糊逻辑控制器的一般结构如图4-2。
从图中可以看出它由输入定标、模糊化、模糊决策过程、非模糊化以及输出定标等部分组成。
比例系数实现了控制器输入和输出与模糊推理所用标准时间间隔之间的映射。
模糊化(即量化)使被测的控制器输入在量纲上与左侧的相一致。
在这一过程中不损失任何信息。
模糊决策过程由推理机来实现;
该推理机使所有模糊推理系统与输入匹配,检查每条规则匹配的程度,并且聚类各规则的加权输出,产生一个输出空间的概率分布值。
非模糊化(模糊判决)把这个分布归纳于一点,然后给驱动器定标后就可以进行控制了。
1.4.3模糊逻辑控制的原理
模糊控制的基本原理可由图1-4-2表示,它的核心部分为模糊控制器,如图中虚线框中部分所尔。
模糊控制器的控制规则由计算机的程序实现,微机通过采样获取被控制量的精确值,然后将此量与给定值比较得到误差信号
(在此取误差反馈)。
一般误差信号
作为模糊控制器的输入量。
把误差信号E的精确量进行模糊化处理变成模糊量,误差
的模糊量可用响应的模糊语言表示。
至此,得到了误差
的模糊语言集合的一个子集
(
实际是一个模糊向量)。
再由
和模糊控制规则
(模糊关系)根据推理合成规则进行决策,得到模糊控制量
为
(1-1)
式中
为一个模糊量。
移动机器人模糊避障系统组成
为了对被控对象施加精确的控制,还需要将模糊量u转换为精确量,这一步骤在图1-4-2中称为非模糊化处理(亦称为去模糊化或清晰化处理)。
得到了精确的数字控制量后,经数模转换,变为精确的模拟量后送给执行机构,对被控对象进行控制。
综上所述,模糊控制算法可概括为以下四个步骤:
(1)根据本次采样得到的系统输出值,计算所选择系统的输入变量。
(2)将输入变量的精确值变为模糊量。
(3)根据输入变量(模糊量)和模糊控制规则,按模糊推理合成模糊控制规则计算控制量(模糊量)。
(4)由上述得到的控制变量(模糊量)计算精确的控制量。
1.4.4模糊逻辑控制的设计
模糊逻辑系统构建可以分为五个过程[3]:
输入模糊化、输入模糊集合的合成运算、模糊蕴涵方法、输出的合成、去模糊化。
而图1-4-3给出更加详细的说明。
D0、D1和D2表示输入的参数,VL和VR表示输出。
即三输入两输出的过程[4]。
(1)输入模糊化
一般来说,实际问题输入的模糊化是建立模糊推理系统的第一步,也就是选择系统的输入变量,并根据其相应的隶属函数来确定这些输入分别归属于恰当的模糊集合。
模糊化过程中的输入必须是一个确定的数值,也就是对输入变量的广泛性起了一个限制作用。
输入的模糊化相当于一个对应的查表或函数计算。
(2)输入模糊集合的合成运算
当输入已经被模糊化以后,我们就可以知道这些输入满足相应的模糊推理规则的程度。
但是如果给定的模糊规则的条件不是单一输入,而是多输入,就需要运用模糊合成运算对这些多输入进行综合考虑和分析。
而经过模糊合成运算,这些多输入可以得到一个数值来表示对多输入规则的综合满足程度,继而被用于输出函数中去,模糊合成运算的输入对象是两个或多个经过模糊化后的输入变量的隶属函数,因而输入是一个唯一确定的数值。
任何完善合理的模糊合成方法都可以用“与操作AND”和“或操作OR”来实现。
(3)模糊蕴涵方法
在进行模糊推理之前,还必须考虑不同模糊规则的权重问题,对于多规则系统,可能各条规则的重要程度是不同的。
因此,每一条规则赋有一个0-1之间的权重值,这个权重与每条规则的输入发生作用。
通常权重相同且为1,所以它对推理的结果不产生影响,但是在某些情况下则可能不断修改各条模糊规则的相应的权重,而不是简单地为1。
一旦给各条规则分配了恰当的权重,就可以进行模糊蕴涵计算了。
模糊蕴涵计算过程的输入是由前面输入模糊集合的合成运算得到的单一数值即模糊集合,输出为根据模糊规则推导出的结论模糊集合。
(4)输出的合成
由于在模糊推理系统中决策的生成取决于所有的模糊规则,因而上一步所计算出的模糊输出必须用某种方式组合起来得出结果。
输出的合成就是对所有模糊规则输出的模糊集合进行综合的过程。
对于每一个输出变量,合成只进行一次。
最终,对于每个输出变量仅得到一个模糊输出集合。
合成的方法应当是与顺序无关的,各条规则的结果合成顺序并不影响结果。
(5)去模糊化
模糊控制器的输出是一个模糊集,它包含控制器的各种信息,但被控对象仅能接受一个精确的控制量。
可是应该从中选择哪一个控制量施加到被控对象中去呢?
这就要进行模糊判决即模糊决策,把模糊量转化为精确量。
把模糊化转化为精确量的过程称为去模糊化,或称为模糊判决。
模糊判决有好多种方法,在此仅介绍模糊自动控制中常用的三种模糊判决方法[5]。
1.隶属度法
对于模糊控制器的输出模糊集U,其对应的论域为:
(1-2)
模糊判决的最大隶属度原则就是选择模糊集U中隶属度最大的那个元素
作为判决结果,
应满足:
(1-3)
这种判决方法的优点是简单易行,缺点是它概括的信息量较少,因为这样做完全排除了其他一切隶属度较小的元素的影响和作用,并且为了判决得以实施必须避免控制器输出过程中出现隶属函数曲线为双峰和所有元素的隶属度值都非常小的那种模糊集。
2.中位数判决法
为了充分利用控制器输出模糊集U所有信息。
我们可以采用中位数判决法,即将隶属函数曲线与横坐标所围成的面积平分为两部分所对应论域元素
作为判决输出,即
应满足:
(1-4)
这种判决方法虽然可概括更多的信息,但主要信息没有突出。
3.加权平均判决法
加权平均判决法的关键是在于权系数的选择。
一般讲,权系数的决定与系统的响应特性有关,因此可根据系统的设计要求或经验来选择适当的加权系数,当权系数
已确定时,模糊量的判决输出
可由式给出:
(1-5)
在实际模糊控制系统设计中,到底采用哪一种判决方法好,不能一概而论。
每一种方法都有各自的优缺点,需视具体问题的特征来选择判决方法。
1.4.5虚拟力场栅格法的组成原理
实时避障是反映移动机器人自主能力的关键问题之一,较为困难的问题是要求有充分的环境信息,另一个就是处理避障的速度要求较快,满足实时性的要求。
最常使用的虚拟力场法是梯度虚拟力场。
取机器人在环境中受到的势力场的负梯度为作用在机器人上的虚拟力,障碍物对机器人产生斥力,目标点对机器人产生引力,引力和斥力的合力为机器人的加速力。
传统虚拟力场的定义如下:
对于机器人在环境中受到的吸引势场和排斥势场有多种定义方式,最常用的定义为静电场势场模型[6]。
如图1-4-4所示:
图1-4-4虚拟力场法示意图
根据空间动力学,可知:
,如图1-4-5所示:
图1-4-5虚拟力场法力的合成示意图
而栅格表示法是较为理想的环境建模方法[7],特别适合传感器类型的数据进行描述。
栅格表示法就是在世界坐标系下,将机器人的作业空间分成若干栅格,利用传感器测得的信息,确定障碍物位置并映射到相应栅格上。
而在实现上,使用一个二维数组表示被分割的栅格,其中数组内的每个元素代表一个栅格,每个栅格具有一个可信度值,用于表示在该区域内障碍物的分布情况,该可信度值由一个考虑了传感器特性的概率函数来更新。
可信度值高,表示存在障碍物的可能性高,反之,在没有障碍物的区域内,该可信度值为0。
如图1-4-6所示:
图1-4-6栅格表示法的示意图
虚拟力场栅格法综合了虚拟力场法和栅格表示法的特点,充分利用超声波传感器检测数据从而感知环境模型中存在的障碍物,采用栅格法表示环境中的障碍物。
MOBOTSIM仿真软件介绍
MOBOTSIM是一个差动驱动式移动机器人的二维仿真软件[8],它提供了一个很好的描述用户环境的图形界面,在这里可以方便地构造、设置、编辑机器人和目标。
此外,选择这款仿真软件的主要原因是,该软件提供了完成栅格表示法的有力条件。
该仿真软件支持将世界地图划分为栅格地图,并提供相关栅格函数的支持,以下会解释这些函数的具体运用。
1.5主界面及机器人相关介绍
MOBOTSIM提供可视化的图形界面来设计复杂多变的环境,它可以提供包括机器人、障碍物、目标点等的设定。
该软件的主界面如图2-1-1所示:
图2-1-1MOBOTSIM仿真软件主界面
其中该软件的二次开发为SaxBasic。
SaxBasic语言实际上是类似于WordBasic,AccessBasic等应用程序中的Basic语言的一种客体语言——VBA(VisualBasicforApplication)。
利用它,结合VisualBasic,VisualC++等语言,可以编写出界面友好,集数据准备、统计分析和图表生成为一体的实用程序,使重复性的工作得以快速、高效率地完成。
该软件的编辑界面如图2-1-2所示:
图2-1-2MOBOTSIM仿真软件的编辑界面
机器人的具体规格如下:
机器人有12个传感器,每个传感器之间的角度为30°
,所以每个机器人的12个传感器都打开的话,就可以探测到周围360°
的环境(在该软件中,可以自由设定相关传感器的开关),如图2-1-3所示。
图2-1-3MOBOTSIM仿真软件传感器探测图
而机器人本身的设计遵循一定的规则,比如在该仿真软件中,机器人有目标角度(Rotationaldifference),
角的定义等等,这需要进一步熟悉该软件的相关知识。
如图2-1-2所示:
图2-1-2MOBOTSIM仿真机器人角度图
在上图中
表示目标点的坐标。
1.6软件提供的函数介绍
该软件提供了一个BASIC编辑器,可以利用软件内部提供的一些特定函数来获取机器人外部的环境信息以及机器人的位置坐标等,并赋给机器人的驱动速度,从而可以使机器人在环境中实现合理的避障路径规划。
其中有一些较为重要的函数如下:
(1)属性函数
主要用来设置移动机器人的属性,比如设置移动机器人的名称、颜色、传感器的测距范围等。
例:
GetMobotName/SetMobotName//获得/设置机器人名称
GetMobotColor/SetMobotColor//获得/设置机器人颜色
SetSensorRange//设置传感器的测距范围
(2)位置函数
主要是设置机器人在平台中的坐标位置、获得目标点的坐标、转弯角度和目标角度等。
移动机器人相关角度如图2-1-2所示。
SetMobotPosition//设置机器人在平台中的坐标位置
GetMobotX//获得机器人当前的X坐标
GetMobotY//获得机器人当前的Y坐标
GetMobotTheta//获得机器人转弯角度
RotationalDiff//设置机器人目标角度