收藏 分享(赏)

D044机器人避障问题.doc

上传人:工建设计 文档编号:21753745 上传时间:2024-04-21 格式:DOC 页数:30 大小:5.25MB
下载 相关 举报
D044机器人避障问题.doc_第1页
第1页 / 共30页
D044机器人避障问题.doc_第2页
第2页 / 共30页
D044机器人避障问题.doc_第3页
第3页 / 共30页
D044机器人避障问题.doc_第4页
第4页 / 共30页
D044机器人避障问题.doc_第5页
第5页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、机器人避障问题摘要针对机器人避障问题,本文分别建立了机器人从区域中一点到达另一点的避障的最短路径、最短时间路径的非线性0-1整数规划模型。同时,本文为求带有NP属性的非线性0-1整数规划模型,构建了有效启发式算法,利用MATLAB软件编程,求得了OA、OB、OC、OABAC的最短路径,同时得到了OA的最短时间路径,求得的各类最短路径均是全局最优。针对区域中一点到达另一点的避障的最短路径问题,首先,本文证明了圆弧位置设定在需要绕过障碍物的顶角上,且圆弧半径为10个单位时,能够使得机器人从区域中一点到达另一点的行进路径最短;其次,本文将最短路径选择问题转化成了最短路径的优选问题,根据避障条件,建立

2、了具有较高普适性的避障最短路径的优化模型。为便于求解,本文巧妙地将此优化模型转化成了以可行路径不与障碍物边界相交、不与圆弧相交为约束条件,以机器人从区域中一点达到另一点避障路径最短为目标的0-1规划模型;再次,本文构建了两种有效的启发式算法,利用MATLAB软件编程求得了OA、OB、OC、OABAC的最短路径,最短路径长分别为471.0372、853.7001、1088.1952、2725.1596,其中O-A的最短路径为(0,0)(70.5063,213.1405) (75.975,219.1542)(300,300),对应圆弧的圆心坐标为(80,210),OB的最短路径,对应圆弧的圆心坐标

3、:(60,300)、(150,435)、(220、470)、(220,530)、(150,600), OC经过的圆心:(410,100)、(230,60)、(720,520),(720,600),(500,200), OABCO经过的圆心:(410,100),(230,60), (80,210),(220,530),(150,600),(270,680),(370,680), (430,680),(670,730),(540,730),(720,520),(720,600),(500,200)。针对最短时间路径问题,我们建立了从o点出发到任意目标点的0-1非线性整数规划模型,同时针对题意要求,

4、具体构建了从o点出发到A的最短时间路径的0-1非线性整数规划模型,利用LINGO软件求解,获得了机器人从o点出发,到达A的最短时间路径,求得最短时间路径下转弯半径为12.9885 ,同时最短时间路径时间长为94.2283个单位。相应圆弧的圆心坐标为(82.1414,207.9153),两切点坐标分别为(69.8045,211.9779)、(77.7492,220.1387)。关键字:机器人避障 启发式算法 0-1规划模型 一、问题重述在一个800800的平面场景图,在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物,障

5、碍物的数学描述如下表:编号障碍物名称左下顶点坐标其它特性描述1正方形(300, 400)边长2002圆形圆心坐标(550, 450),半径703平行四边形(360, 240)底边长140,左上顶点坐标(400, 330)4三角形(280, 100)上顶点坐标(345, 210),右下顶点坐标(410, 100)5正方形(80, 60)边长1506三角形(60, 300)上顶点坐标(150, 435),右下顶点坐标(235, 300)7长方形(0, 470)长220,宽608平行四边形(150, 600)底边长90,左上顶点坐标(180, 680)9长方形(370, 680)长60,宽12010

6、正方形(540, 600)边长13011正方形(640, 520)边长8012长方形(500, 140)长300,宽60在图1的平面场景中,障碍物外指定一点为机器人要到达的目标点(要求目标点与障碍物的距离至少超过10个单位)。规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。机器人直线行走的最大速度为个单位/秒。机器人转

7、弯时,最大转弯速度为,其中是转弯半径。如果超过该速度,机器人将发生侧翻,无法完成行走。请建立机器人从区域中一点到达另一点的避障最短路径和最短时间路径的数学模型。对场景图中4个点O(0, 0),A(300, 300),B(100, 700),C(700, 640),具体计算:(1) 机器人从O(0, 0)出发,OA、OB、OC和OABCO的最短路径。(2) 机器人从O (0, 0)出发,到达A的最短时间路径。注:要给出路径中每段直线段或圆弧的起点和终点坐标、圆弧的圆心坐标以及机器人行走的总距离和总时间。二、问题分析2.1求取最短路径的分析本问题要求机器人从区域中一点到达另一点的避障最短路径。机器

8、人只要做到转弯时的圆弧半径最小为10个单位、与障碍物最近距离单时刻保持大于10个单位,那么可行走的路径就有无数条,若想求得机器人从区域中一点到达另一点的避障最短路径,则需要建立避障的最短路径模型,而建立避障的最短路径模型有一定难度。根据对问题的分析,我们认为可以从简单做起,先确定小范围内最短路径条件,如圆弧位置的影响,圆弧半径的大小,避免与障碍物碰撞条件等,通过确定最短路径条件来建立避障的最短路径模型。对于最短路径的求取,我们可以通过确定穷举原则,利用穷举法来求解,当然也可以通过构建启发式算法的进行求解。2.2最短时间路径的分析对于要建立最短时间路径模型来说,我们容易知道影响的因素有直线行走速

9、度、转弯速度,同时还需要考虑使得最短时间路径条件,如圆弧位置(坐标)的影响,圆弧半径的大小,避免与障碍物碰撞条件等。对于直线行进,我们希望行进速度越大越好,对于机器人转弯时,转弯速度要有约束,要保证机器人不能发生侧翻。我们发现圆弧半径的大小与转弯速度紧密相连,从转弯速度公式来分析,当转弯半径增大时,最大转弯速度也增大,为在更短时间内行进到目标点,我们希望转弯速度为机器人的最大转弯速度较好,但有很大的可能是行进的路径不是最短的,即行进路径有很大可能在增加。于是,我们需要做的工作是,在满足最短时间路径条件时,找到一个圆弧的坐标位置,同时确定半径的大小,以求得最短时间路径。三、模型假设1.将机器人看

10、成一个质点;2.半径不变时,机器人在行进、转弯过程中能一直保持最大的速度;3.四、符号说明:避障最短路径;:圆弧切点到圆弧切点的直线距离,即机器人从圆弧切点到圆弧切点的直线路径,;:机器人从圆弧行进至圆弧切点时的转弯路径,;:圆弧的横坐标,;:圆弧的纵坐标,:圆弧对应圆心角;:圆弧的半径;五、最短路径模型建立与求解5.1模型准备5.1.1确定圆弧位置与转弯半径在建立机器人从区域中一点到达另一点的避障最短路径数学模型之前,我们需要考虑两个问题:问题一:机器人从区域中一点到达另一点过程中,若中间有障碍物,则需要通过转弯来绕过障碍物,那么,在转弯半径一定的情况下,怎样设定最佳圆弧位置,使得绕行路径最

11、短?问题二:绕行路径是最短时,转弯半径的大小为多少?针对考虑的问题一,我们取机器人从到点的行走过程来说明问题。在行走过程中要求机器人行走线路与障碍物的最短距离为10个单位,圆弧(转弯)半径最小为10个单位。我们先令机器人转弯半径为10个单位,根据机器人行走过程中的要求,我们易得两条极端的行走路径,如图1。将路线II中圆弧3两切点线延长,两延长交路线I,两交点处分别作半径为10个单位的圆弧,由此我们可得机器人从到点的行走时转弯中心坐标的范围,如图2中四边形。 图1 两条极端路径 图2 转弯中心坐标的范围图1中路线I是理想化路线,机器人不能沿平面区域边界行走,平面区域边界也可以看成是一个障碍物,且

12、有要求机器人行走线路与障碍物的最短距离为10个单位,实际上作这样的处理并不会影响我们说明问题。我们假设在平面中有和两点,中间有一正方形的障碍物,将图2进行转化,如图3.图3 最短路径证明图图3中,为切点,为圆弧圆心,四边形为圆弧中心点的范围。对于最佳圆弧位置确定,我们采用“覆盖法”。我们容易知道,若路线II与构成的区域II能够完整覆盖线I与构成的区域I,即区域I属于区域II,那么区域II的周长一定大于区域I,否则。图3中路线I与构成的区域I周长为直线段长度、圆弧长、长之和,区域I周长为机器人沿路线I的路径长可表示为路线II与OA构成的区域II周长为直线段长度、圆弧长、长之和,区域II周长为机器

13、人沿路线II的路径长可表示为显然我们知道区域II能够覆盖区域I,即可得,进而可得到 同理,在圆弧中心点的范围任意取一点作为机器人转弯圆弧中点,并作路线,再将路线与路线I做比较,可得到由此,我们可得出结论:机器人从区域中一点到达另一点过程中,当圆弧位置设定障碍物顶角上时,绕行路径最短,此时圆弧中心点坐标为障碍物顶角坐标。针对考虑的问题二,为了更清晰说明绕行路径是最短时,转弯半径的大小为多少,我们基于最小圆弧半径条件下使圆弧半径增大。为了保证机器人与障碍物不发生碰撞,所以,需要保证大圆弧能够覆盖小圆弧对应圆的1/4圆弧。在设定好最佳圆弧位置情况下,增加圆弧半径,比较最短路径的变化。假设圆弧半径为(

14、),对应最短路线如图4。(1) (2)图4 圆弧半径为R最短路径图4(1)中为两圆弧公共切点,为小圆弧切点(),为大圆弧切点。图4(2)中、为大圆弧切点,、为小圆弧切点。针对图4(1)(2),根据“覆盖”思想与得出的结论,我们容易发现,当圆弧半径为()时,行进路线与构成的区域显然是能够完全覆盖圆弧半径为时构成的区域,由此,可说明在圆弧位置设定为最佳的条件下,圆弧半径越小行进路径越短,而圆弧半径最小为10个单位,进而说明圆弧的半径为10个单位时,绕行路径最短。根据考虑的两个问题与证明结果,我们可得出结论:要使得机器人从区域中一点到达另一点的行进路径最短,应使圆弧位置设定在需要绕过障碍物的顶角上最

15、佳,此时圆弧中心点坐标为障碍物顶角坐标,并且此时圆弧的半径为10个单位。5.1.2问题的转化在模型准备中我们已得出要使得机器人从区域中一点到达另一点的行进路径最短,应使圆弧位置设定在需要绕过障碍物的顶角上最佳,此时圆弧中心点坐标为障碍物顶角坐标,并且此时圆弧的半径为10个单位。因此,我们将的平面场景图进行处理,处理原则有:1. 每个障碍物的顶角都设定一个圆弧;2.圆弧坐标为障碍物顶点坐标;3.圆弧的半径设定为10个单位;4.给每一段圆弧从2.标号,O点标记为1、36。根据处理原则,得图5。图5 处理后的平面场景图在原问题中,若没进行确定圆弧位置与转弯半径以及平面场景的处理,原问题求解将会很难,

16、并且所有的转弯点均是未知,经处理后,我们将问题转化为在已知转弯点,寻找合适的转弯点,使得路径最短,即我们将问题转化为了最短路径的优化问题。 5.2避障最短路径模型的建立问题转化为最短路径的优化问题后,我们易知优化的目标函数为机器人在行进过程中最短路径,通过0-1变量来选取经过的转弯点,因此可建立0-1规划模型。 5.2.1目标函数目标函数为机器人出区域中一点到达另一点的避障最短路径,避障最短路径为行进过程中直线路径与转弯路径之和,于是有 (1)其中,为圆弧切点到圆弧切点的直线距离,即机器人从圆弧切点到圆弧切点的直线路径;为机器人从圆弧行进至圆弧切点时的转弯路径;为0-1变量,表示若选择行走圆弧

17、后行走圆弧,为1,否则为0,。我们设为圆弧的切点坐标,为各圆弧的编码,为切点的次序,如表示为圆弧的第一个切点坐标。机器人从圆弧切点到圆弧切点的直线路径为 (2)机器人从圆弧行进至圆弧切点时的为 其中(3)为转弯半径,。5.2.2约束条件1.避障条件的约束在本问题中,障碍物边界可分为直线段与圆弧两种情况,针对障碍物边界不同的两种情况,我们列出避障条件的约束:(1)避障约束条件1任意一条可行路径与所有障碍物的边界线段间的最短距离大于10个单位. 设平面内有两条线段和,点的坐标为 ,点的坐标为 ,点的坐标为,点的坐标为,其中、可视为圆弧的切点坐标,、为圆弧的切点坐标线段两圆弧的切点的连线,视为障碍物

18、的某一条边界线段。 设是直线上的一点,点的坐标可以表示为当参数时,是线段 上的点;当参数时,是延长线上的点;当参数时,是延长线上的点。设是直线上的一点,点的坐标 可以表示为 当参数时,是线段上的点;当参数时,是延长线上的点;当参数 时,是延长线上的点。,两点之间的距离为 距离的平方为要求直线,之间的最短距离,也就是要求函数的最小值。对分别求关于,的偏导数,并令偏导数为零:展开并整理后,得到下列方程组:如果从这个方程组求出的参数,的值满足,说明点落在线段上,点落在线段上,这时的长度为此时就是线段与的最短距离。如果从方程组求出的参数,的值不满足,说明不可能在线段 内部找到一点,在线段内部找到一点,

19、使得的长度就是线段与 的最短距离。这时,还需要进行考虑的是:平面中一个点到一条线段的最短距离。设编号为的障碍物的圆心坐标和一条线段,设点的坐标为,点的坐标为,点的坐标为。此时,直线的参数形式的方程为 直线上的点,当参数时,是线段上的点;当参数时,是延长线上的点;当参数 时,是延长线上的点。 通过点,与直线垂直的平面方程为下面求这个平面与直线的交点。显然,所以点也是从点向直线作垂线的垂足点。将代入平面方程,化简后解得 然后,将上面得到的的值代入直线方程,得到其中,为垂足点的坐标。 此时线段的长度,也就是点到直线的垂直距离为 如果前面求出的参数的值满足,说明垂足点落在线段上,这时 的长度就是点到线

20、段的最短距离。如果前面求出的参数的值满足,说明垂足点不落在线段上,而是落在的延长线上,这时点到线段的最短距离,就是点到点的距离,即 。如果前面求出的参数的值满足,说明垂足点不落在线段上,而是落在的延长线上,这时,点到线段的最短距离,就是点到点的距离,即 。综上所述,即有平面内有两条线段最短距离为因此,我们可得到任意一条可行路径与所有障碍物的边界线段间的最短距离大于10个单位的约束条件(4)其中,(2)避障约束条件2对于标号为2的圆形障碍物,它与机器人行走路线的最近距离为10个单位,为使满足与机器人行走路线的最近距离为10个单位要求,我们可以转化为圆形的圆心与障碍物间的最近为80个单位的问题,即

21、把圆形与直线线段的最短路径问题转化为点到直线线段的的问题。已知编号为2半径为()的圆形障碍物,边界并不是直线段,且该圆形障碍物的圆形为。根据平面中一定点到一条线段的最短距离计算办法,我们可得 (5)因此,我们可得到圆形障碍物与平面内最近约束条件为2.各坐标点的约束所有假设的坐标点都应在平面场景内,于是有3.各圆弧点行进先后次序的约束机器人从某个圆弧出发行至下一圆弧,先后次序的约束有 (6)其中,。5.2.3避障最短路径模型综合上述,建立避障最短路径模型:5.3基于避障条件转化下的最短路径简化模型5.3.1避障条件的转化我们将任意一条可行路径与所有障碍物的边界线段间的最短距离大于10个单位转化为

22、两直线不相交、与2号障碍物圆周均不相交、切点范围的的控制。出于简化避障条件的0-1变量取值关系,我们进行符号补充:为0-1变量,表示为表示圆弧与圆弧的圆心()所构成的线段的纵坐标,。表示编号为的区域内一顶点()与相邻顶点(),所构成的线段的纵坐标,。当时,顶点表示以(550,450)为圆点,80个单位为半径的圆上的点,相邻顶点坐标则表示为以圆点对称的点。为0-1变量,表示为, 我们将避障约束条件替换为(7)5.3.2基于避障条件转化下的最短路径简化模型于是,我们可得避障最短路径简化模型5.4避障最短路径简化模型的求解5.4.1基于避障条件转化之下的最短路径的启发算法对于避障最短路径的数学模型,

23、是非线性0-1整数规划,具有NP属性。对于具体的区域与障碍物,通过巧妙地将避障条件转化为相交约束,同时结合任意两点间最短距离的floyd算法,我们构建出了能够对此问题规模求得全局最优解的较好算法。具体算法思想是:针对此模型的NP属性特征,即此问题搜索可行域的规模越发,运行时间倍增的不足,我们采用逐步缩减可行域的办法,将达到避障条件要求的所有可行路径搜索出。同时,通过用两切点标识圆弧路径的办法,将一个圆弧路径扩充为两个切点的表示,建立出具有扩充点的邻接矩阵,于是将问题转化为赋权图上两点的最小距离问题,采用Floyd算法,即可得出避障最短路径。具体算法步骤为:Setp1:得出所有满足避障条件的可行

24、路径,分三步逐步进行。(1)对于个圆弧路径,任意两个圆弧间构造切线段及出发点到各圆弧的切线段,由此形成初始的路径。判断每条路径中的直线段与各障碍物的边界线段是否相交,判断方法为将两线段进行矢量跨立。若相交,去除该条路径中的此直线段。(2)在(1)的基础上去除各条路径中的直线段与各圆弧路径对应圆周及2号圆形障碍物边界相交的部分。判断各条路径中的直线段与圆周是否相关的方法为:判断圆心到直线段的距离是否小于半径,若距离小于半径,则看垂足是否在线段上,垂足在此线段上则相交,否则不相交。若圆心到直线段的距离大于半径,则不相交。(3)依据避障条件,选取各切点在圆弧上的可取点范围,如图所示。切点只能在上选取

25、判断条件为:切点与圆心连线的向量与过圆心的两边界向量的夹角是否大于等于90度,若是,则在允许的取点范围。基于以上(1)(2)(3)的剔除,剩余的路径即为满足避障条件的可行路径,而避障最短路径必是这些可行路径中的一条。Step2:构造扩充的赋权邻接矩阵。将每一个圆弧路径,转化为由两个切点标识,给此两个切点间赋予边权为对应圆弧路径的弧长。对两切点间的是有直线段相连的,直接将直线段长度赋予给此两切点间的边权。由此对所有可行路径,构造有扩充点的赋权图的邻接矩阵。Setp3:利用Floyd算法求扩充赋权图上任意两点间的最短路径,即可转化为任意两点间的避障最短路径。5.4.2避障最短路径简化模型的求解过程

26、与结果根据构建的启发式算法步骤,利用MATLAB软件,我们可求解如下结果:(1)寻找可行路径根据避障约束条件1,任意一条可行路径与所有障碍物的边界线段间均不相交,求得只满足路径线段与边界线段不相交时的可行路径如图6。图6 可行路径图只满足路径中的各直线段与各障碍物边界均不相交的可行路径既满足各直线段与各障碍物边界均不相交的要求,又同时满足与各圆弧路径对应的圆周及第2号障碍物圆周均不相交的条件的可行路径如图7。图7 满足三条件的可行路径图在满足算法step1中(1)(2)的基础上,剔除掉切点不在允许范围之内的路径线段,得出所有可行路径示意图,如图8。图8 所有可行路径示意图(2)对于每条可行路径

27、的直线段和圆弧段,构造扩充点,对任意两点间按要求赋权,则问题转化为在赋权图上求两点之间的最短距离。(3)调用Floyd算法,先后求出O-A的最短路径及相应最短路长,如图9.图9 O-A的最短路径0-A路线序号圆弧起点坐标圆弧终点坐标圆弧圆心坐标最短路长170.5063,213.140575.975,219.154280,210471.0372同理,我们可得到O-B的最短路径及相应最短路长、O-C的最短路径及相应最短路长、O-A-B-C-O的最短路径及相应最短路长.图10 O-B的最短路径O-B的最短路径为:(0,0)-(50.1354,301.6396)-(51.6795,305.547)-(

28、141.6795,440.547)-(147.9621,444.79)-(222.038,460.2096)-(230,470)-(230,530)-(229.9563,530.9242)-(229.5746,532.8954)-(229.2564,533.7791)-(229.1263,534.0782)-(225.4971,538.3544)-(144.5036,591.6465)-(140.6922,596.346)-(100,700)对应圆弧的圆心坐标:(60,300),(150,435), (220,470),(220,530),(150,600)最短路长为:853.7001图11

29、O-C的最短路径图O-C的最短路径为:(0,0)-(232.1147,50.2273)-(232.1694,50.2377)-(412.1695,90.2373)-(418.3435,94.4905)-(491.6536,205.5113)-(492.0569,206.0862)-(727.9298,513.924)-(730,520)-(730,600)-(727.7179,606.359)-(700,640)经过的圆心:(410,100), (230,60), (720,520), 圆心:(720,600),半径:10 圆心:(500,200),半径:10 最短路长为:1088.1952图

30、12 O-A-B-C-O的最短路径图O-A-B-C-O的最短路径为:(0,0)-(70.5063,213.1405)-(75.975,219.1542)-(76.2776,219.2811)-(76.6064,219.4067)-(300,300)-(229.5746,532.8954)-(229.2564,533.7791)-(229.1263,534.0782)-(225.4971,538.3544)-(144.5036,591.6465)-(140.6922,596.346)-(100,700)-(270.5862,689.9828)-(272.0002,689.799)-(368.00

31、03,670.2035)-(370,670)-(430,670)-(434.0793,670.8716)-(435.5886,671.7056)-(534.4132,738.2917)-(540,740)-(670,740)-(679.7741,732.1462)-(700,640)-(727.7179,606.359)-(730,600)-(730,520)-(727.9298,513.924)-(492.0569,206.0862)-(491.6536,205.5113)-(418.3435,94.4905)-(412.1695,90.2373)-(232.1694,50.2377)-(2

32、32.1147,50.2273)-(0,0)经过的圆心:(410,100), (230,60), (80,210), (220,530), (150,600), (270,680), (370,680), (430,680), (670,730), (540,730), (720,520), (720,600), (500,200)最短路长为:2725.1596。本次求解,在搜索可行路径上程序运行时间为10分钟左右。5.5基于数值思想的改进算法对每条路径,直接根据避障条件,判断它是否可行路径的方法基于数值近似的线段间最短距离判别法。线段间最短距离判别法:给定路径端点坐标,所有障碍物边界线段的坐

33、标,分别在路径和某一边界线段上取一系列的点,求得这系列点之间的最短距离即为线段间最短距离的近似值,如果该近似值大于10,则认为路径与该边界线段的距离满足要求,否则不满足。直到该路径与所有的边界线段都满足距离要求,则该路径为可行路径并记录。易知,若线段间的一系列点取值越细密,结果越精确。按照该算法,我们编写MATLAB程序得到的所有可行路径如下图: 对此可行路径集合,仍然使用基于避障条件转化之下的最短路径的启发算法的Step2、Step3步寻找最短路径,最短路径结果完全等同基于避障条件转化之下的最短路径的启发算法的结果,但是求解时间却大大缩减,说明该算法具有一定的有效性。六、最短时间路径模型建立

34、与求解6.1到任意目标点的避障最短时间路径模型的建立基于问题一转化为最短路径的优化问题后,我们易知优化的目标函数为机器人在行进过程中最短时间路径,通过0-1变量来选取经过的转弯点的圆心坐标,两切点坐标及转弯半径,此时将转弯点的圆心坐标,两切点坐标及转弯半径均作为决策变量。因此,可建立0-1规划模型如下。 6.1.1目标函数目标函数为机器人出区域中一点到达另一点的避障最短时间路径,避障最短路径为行进过程中直线路径与转弯路径的时间取和,故有 (8)其中,为切点到切点的直线距离;为机器人从切点行进至切点时的转弯路径;为0-1变量,表示若选择行走切点后行走切点,为1,否则为0,。机器人从切点到切点的直

35、线路径为 (9)机器人从切点行进至切点时的为 其中(10)为转弯半径。 6.1.2约束条件1.避障条件的约束原理与最短路径的避障条件的原理保持一致。2.各坐标点的约束所有假设的坐标点都应在平面场景内,于是有3.各圆弧点行进先后次序的约束机器人从某个圆弧出发行至下一圆弧,先后次序的约束有 (11) 其中,。4.转弯半径、圆心、与切点的坐标关系。转弯半径等于圆心与两个切点,坐标的直线距离。5. 转弯半径取值为:使满足的6.1.3避障最短时间路径模型综合上述,建立避障最短时间路径模型是在:6.2求从0-A的最短时间路径的简化模型针对只求0-A的最短时间路径,我们具体问题具体分析,建立了相应的简化模型

36、。障碍物5左上角的顶点与圆弧的距离大于等于10的避障约束可以表述如下:于是,我们可得一条路径时间最短下的最优的简化模型针对每一条可行路径,求出各路径对应的最优转弯半径则,最短时间路径的优化模型为:6.3求从0-A的最短时间路径的模型求解根据0-A的最短时间路径的模型,利用LINGO软件编程,比较两条可行路径对应的最短时间,我们求得最短时间路径下转弯半径为12.9885 ,同时最短时间路径时间长为94.2283个单位。相应圆弧的圆心坐标为(82.1414,207.9153),两切点坐标分别为(69.8045,211.9779)、(77.7492,220.1387)。七、模型评价7.1模型优点(1

37、)确定路线思路循序渐进,本文先建立了有计算避障约束公式的普适性模型,再建立了以不取相交点来简化0-1变量取值关系的简化模型;(2)给出了二种启发式算法,最短路径即最短时间路径具有一定可信度。同时第一个启发算法可以求得全局最优解,第二个启发算法是针对问题的NP属性减少求解时间而构建的,两个算法都具有较重要的意义。7.2模型缺点(1)本文将机器人看成一个质点,这将使机器人出现走区域边界的可能,可能会出现与实际不符合的情况;(2)模型将假设机器人在行进、转弯过程中能一直保持最大的速度,诚然,现实并非如此,所以我们得到的问题二的结果与实际最短时间路径会存在一定的误差。参考文献1 吴建国.数学建模案例精

38、编M, 北京:中国水电出版社,2006,2102 杨秀月等.系统建模M,北京:国防工业出版社,2006.53 张志涌等.精通MATLAB6.5版M.北京: 北京航空航天大学出版社,2003,3附录MATLAB程序清单:cleardistancebetweenlines.m 计算两线段间近似最短路径function mind=distancebetweenlines(A,B,C,D,M)Ax=A(1);Ay=A(2);Bx=B(1);By=B(2);Cx=C(1);Cy=C(2);Dx=D(1);Dy=D(2);if (A(1)-B(1)=0 k=(By-Ay)/(Bx-Ax); b=By-k*

39、Bx; ABXXL=linspace(A(1),B(1),M); ABYXL=k.*ABXXL+b;else ABXXL=linspace(A(1),B(1),M); ABYXL=linspace(A(2),B(2),M);endif (C(1)-D(1)=0 k=(Dy-Cy)/(Dx-Cx); b=Dy-k*Dx; CDXXL=linspace(C(1),D(1),M); CDYXL=k.*CDXXL+b;else CDXXL=linspace(C(1),D(1),M); CDYXL=linspace(C(2),D(2),M);endmind=100000;for i=1:M for j=

40、1:M if sqrt(ABXXL(i)-CDXXL(j)2+(ABYXL(i)-CDYXL(j)2)=mind mind=sqrt(ABXXL(i)-CDXXL(j)2+(ABYXL(i)-CDYXL(j)2); end endend FLOYD1.m Folyd算法求最短路径和最短路程function L,R=FLOYD1(w,s,t)n=size(w,1);D=w;path=zeros(n,n);%floydfor i=1:n for j=1:n if D(i,j)=inf path(i,j)=j; end endendfor k=1:n for i=1:n for j=1:n if D

41、(i,k)+D(k,j)=r-0.5 z=0;elseif (y-line(4)*(y-line(2)0 z=0;else z=1;endislineIntersect.m 判断两线段是否相交function z=islineIntersect(A,B,C,D)Ax=A(1);Ay=A(2);Bx=B(1);By=B(2);Cx=C(1);Cy=C(2);Dx=D(1);Dy=D(2);if (Bx-Ax)*(Dy-Cy)-(By-Ay)*(Dx-Cx)*(Bx-Ax)*(Dy-Cy)-(By-Ay)*(Dx-Cx)=0 r=(Ay-Cy)*(Dx-Cx)-(Ax-Cx)*(Dy-Cy)/(Bx-Ax)*(Dy-Cy)-(By-Ay)*(Dx-Cx); s=(Ay-Cy)*(Bx-Ax)-(Ax-Cx)*(By-Ay)/(Bx-Ax)*(Dy-Cy)-(By-Ay)*(Dx-Cx); if r0&r0&s=1 z=1; else

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术规范

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报