当前位置:文档之家› 机器人避障问题的最短路径分析

机器人避障问题的最短路径分析

机器人避障问题的最短路径分析摘要本论文研究了机器人避障最短路径和最短时间路径的问题。

主要讨论了在一个区域中存在12个障碍物,由出发点到达目标点以及由出发点经过若干目标点最终到达出发点的两种情况。

采用传统的避障方法——切线图法。

建立了线圆结构,这样任何路径,我们都可以将路径划分为若干个这种线圆结构来求解。

对于途中经过节点再到达目标点的状况,我们采用在转弯点和节点都采用最小转弯半径,以节点为切点的形式。

然后建立了最优化模型,利用MATLAB软件对方案进行求解。

问题一:把路径分解成若干个线圆结构来求解,然后把可能的最短路径采用穷举法列举出来,最终得出最短路径:AO→最短路径为:471.0O→最短路径为:869.5BO→最短路径为:1093.3C对于O→→→我们将A、B、C看作切点,同样采用线圆结构CBAO→计算。

O→→→→最短路径为:2827.1AOCB问题二:考虑避障路径和转弯速度,我们建立时间与路径之间的模型,用MATLAB软件求出最优解。

当转弯半径为11.5的时候,可以得出最短时间为:T=94.3关键词最优化模型避障路径线圆结构切线图法一、问题重述本文是求一个机器人在800×800的平面场景图中避开障碍物,建立从原点O(0, 0)点处出发达到终点的最短路径和最短时间路径的模型。

即求:1、O→A 、O→B 、O→C 和O→A→B→C→O 的最短路径。

2、O →A 的最短时间路径。

机器人在行走时的要求是:1、它只能在该平面场景范围内活动2、图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物(障碍物的分布如图1)3、障碍物外指定一点为机器人要到达的目标点(要求目标点与障碍物的距离至少超过10个单位)。

4、规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。

机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。

5、为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞。

机器人直线行走的最大速度为50=v 个单位/秒。

机器人转弯时,最大转弯速度为21.0100e1)(ρρ-+==v v v ,其中ρ是转弯半径。

已知场景图中4个点O(0, 0),A(300, 300),B(100, 700),C(700, 640)。

图中各个点 的坐标见下表。

图1编号 障碍物名称 左下顶点坐标 其它特性描述 1 正方形 (300, 400) 边长200 2 圆形 圆心坐标(550, 450),半径70 3 平行四边形 (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,宽120 10 正方形 (540, 600) 边长130 11 正方形 (640, 520) 边长8012长方形 (500, 140) 长300,宽60二、模型假设1、把机器人抽象成质点。

2、机器人直线行走都是以最大速度做匀速运动。

3、机器人转弯时同样以最大允许速度做匀速运动。

三、符号说明符号符号说明i a 每一个线圆结构起点到终点的长度i b 每一个线圆结构起点到圆心的长度 i c每一个线圆结构终点到圆心的长度r转弯半径(即题上的ρ)i θ转弯圆心角 )y ,x (O i i i转弯圆心坐标 A 到Z )y ,x (i i 各个切点,节点的坐标 i l每个弧长的长度L i第i 段直线段的长度 K j 第j 段圆弧的长度 t i第i 段直线段所用的时间 p j 第j 段圆弧所用的时间d 障碍物上的任意点与行走路径之间的最短距离四、模型分析与准备一、最短路径和最短时间路径的分析(1)问题一:要求从)0,0(O 出发,沿A O →,B O →,CO →和O C B A O →→→→的行走路线按照一定规则,绕过障碍物到达目标点的最短路径。

在求A O →,B O →,C O →时。

我们将所有的障碍物扩大10个单位,在障碍物的顶点处,就是以10为半径圆弧。

我们采用拉绳子的方法寻找所有可能的最短路径。

然后利用线圆结构的方式求解。

即列举法。

(例如求解O 到A 的最短路径,我们就可以连接O 和A 之间的一段绳子,以障碍5左上角的拐角处的圆弧为支撑拉紧,那么这段绳子的长度便是O 到A 的一条可能的最短路径)。

在求O C B A O →→→→时,在过点A 、B 、C 处我们采用最小半转弯的方式,使机器人经过这些过点时,都是按圆弧通过。

其他情况就是按线圆结构的方式进行求解。

(2)问题二、要求从O 点出发到达A 点的最短时间路径问题,采用穷举法和CAD 画图可以得出最短时间路径。

二、在模型的建立中会大量用到线圆结构来计算,证明起点到终点之间最短的路径就是我们所用的线圆结构。

证明:如图所示的线圆结构CA ,OB 和圆弧BC 之和为最短避障路径。

假设在平面中有)0,a (A 和)0,b (O 两点,中间有一个半圆形的障碍物,证明从O 到B 的最路径为圆弧BC 和线段OB 、AC 的和。

图2平面上连接两点最短的路径是通过这两点的直线段,但是连接两点的线段被障碍物遮挡,所以设法尝试绕过障碍物的折线路径。

在y 轴上取一点)y ,0(P ,若y 适当大,当折线OPA 与障碍物相切时,OPA 是这种折线路径中最短的。

由于满足2/0π<θ<的角满足θ<θtan ,所以易知弧度BC 小于BPC 的长,即证明到了线圆结构为最短避障路径。

线圆结构的长度:设r CD =,)y ,x (O 11 为起始点,)y ,x (A 22为目标点,)y ,x (D 33。

求O B C ~~A ,设为L 。

a AO = 2211))22((a =+x x y y -- b OD = 2211))33((b =+x x y y --c AD = ()()y y x x c 232322--+=α=∠ADO)bc2ac b arccos(222-+=α β=∠CDO :)a r c c o s (br=βγ=∠BDA :)cra r c c o s (=γ因为θ=∠BDC 所以:γ+θ+α+β=π2从而可得: 2222L =-+-+r*s b c r r六、模型的建立与求解假设机器人从起点R 到到目标点0M ,由图2知路径一定是由圆弧和线段组成,设有m 条线段,n 条圆弧。

那么最短路程:11min mni j i j S L l ===+∑∑1010.r d s t ≥⎧⎨≥⎩=用此模型就可以对起点到目标点之间的路径进行优化求解。

时间模型:∑∑==+=nj jm i i pt T 11min1010.ii ojj r L t v l p v d s t ≥⎧⎪⎪=⎪⎨⎪=⎪⎪≥⎩=问题一:1、由以上模型采用穷举法知从A O →的路径线路通过简化有如下两种情况,分别为,如图3:已知O(0,0),D(80,210),A(300,300)图3用MATLAB 软件算得:O →A 的路径为:471.0372 所以:O →A 的最短路径为图3其结果为:471.03722、通过穷举法分析知采用如下图6所示路线可以可以算出O →B 的长度。

设D 到M 点的坐标分别为(,i i x y )i= 1...10;Q1到Q5表示为绕过的各个障碍物的圆心设坐标为(y ,x j1j1)j=11...15;n jk 表示各直线相交的夹角; )y ,x (p 1616 )y ,x (B 1717 )y ,x (q 1818类似的采用以上的算法可以得到如下直线的长度: F a 1= J b 1= F G c -=1 E p a 2-=E Q b-=22P Q c-=22J P a 3-= J Q b -=33 P Q c-=33q I a-=4I Q b-=44q Q c -=44q B a 5-= q Q 55b -=B Q c-=55图6则:夹角为222+-bj cj aj =arccos()n j12bjcjr=arccos()n j2bjr=arccos()n j3cjπ24321=+++n n nn j j j j所以O →B 所走路线的,弧线长度为:r n Lj j4=每个线圆结构起点到终点,起点到圆心,圆心到终点的距离: L r c r b s j j j j +-+-=2222 (j=1,2,3,4,5)故,O →B 的最短路径的目标函数为:5minZ =s j j =1∑通过软件计算知 :B O →的最短路径是869.43323、在通过分析知O →C 的最短路径为图5所示,通过visio 画图得到如下图所示:设()y x jjiO ,其中j 为1到4的整数,1717O ,)(xy 。

A.B.J.I.D.K.E.F.G.H的坐标分别为(y x ii ,)其中i 为5到14的整数,M(y x 1616,).各个点之间的关系:J 点坐标22217217yy yxx x +=+= K 点坐标2232103210yy yxx x +=+=G 点坐标 yyx x r 413413=+= F 点坐标yy x x r =+=312312 我们将O 到C 分成五个线圆结构,根据上述模型分析可以得到:A O →:52255r r b L θ+-=Q M →:111r r 2c 2L θ⨯+-=K Q →:2222r r 2c 2r 2b 2L θ⨯+-+-= G K →:3333r r 2c 2r 2b 2L θ⨯+-+-= C F →:444r r 2c 2L θ⨯+-=所以:54321L L L L L L min ++++=所以通过MATIAB 软件编程可以算出:O →C 的最短路径为:1093.301图54、通过分析可知O →A →B →C →O 的最短路径为如下图7所示:图7因为O →A →B →C →O 的路线简化成由16个线圆结构组成的H G →: θ12212211r r c r b l +-+-=F →L :θ22222r C r l +-= L →B :θ32232233r r c r b l +-+-=K →N :θ42244r r c l +-= M →Q :θ52255r r c l +-=Q →t :θ62262266r r c r b l +-+-=S →V :θ72277r r c l +-=V →Y :θ82282288r r c r b l +-+-=X →T :92299θr r c l +-= T →q :θ10221010r r c l +-=为了简化模型,我们假设A 、B 、C 点为切点。

相关主题