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

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

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

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

摘要

本论文研究了机器人避障最短路径和最短时间路径的问题。主要讨论了在一个区域中存在12个障碍物,由出发点到达目标点以及由出发点经过若干目标点最终到达出发点的两种情况。采用传统的避障方法——切线图法。建立了线圆结构,这样任何路径,我们都可以将路径划分为若干个这种线圆结构来求解。对于途中经过节点再到达目标点的状况,我们采用在转弯点和节点都采用最小转弯半径,以节点为切点的形式。然后建立了最优化模型,利用MATLAB软件对方案进行求解。

问题一:把路径分解成若干个线圆结构来求解,然后把可能的最短路径采用穷举法列举出来,最终得出最短路径:

A

O→最短路径为:471.0

O→最短路径为:869.5

B

O→最短路径为:1093.3

C

对于O

→我们将A、B、C看作切点,同样采用线圆结构

C

B

A

O→

计算。

O→

→最短路径为:2827.1

A

O

C

B

问题二:考虑避障路径和转弯速度,我们建立时间与路径之间的模型,用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 个单位/秒。机器人转弯时,最大转弯速

度为2

1.0100

e

1)(ρρ-+==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) 边长150

6 三角形 (60, 300) 上顶点坐标(150, 435),右下顶点坐标(235, 300)

7 长方形 (0, 470) 长220,宽60

8 平行四边形 (150, 600) 底边长90,左上顶点坐标(180, 680) 9 长方形 (370, 680) 长60,宽120 10 正方形 (540, 600) 边长130 11 正方形 (640, 520) 边长80

12

长方形 (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 →,C

O →和

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 = 22

1

1

))

22((a =+x x y y -- b OD = 22

1

1

))

33((b =+x x y y --

c AD = ()()y y x x c 23232

2

--+=

α=∠ADO

)bc

2a

c b arccos(

222-+=α β=∠CDO :

)a r c c o s (b

r

γ=∠BDA :

)c

r

a r c c o s (=γ

因为θ=∠BDC 所以:

γ+θ+α+β=π2

从而可得: 2222L =-+-+r*s b c r r

六、模型的建立与求解

假设机器人从起点R 到到目标点0M ,由图2知路径一定是由圆弧和线段组成,设有m 条线段,n 条圆弧。那么最短路程:

1

1

min m

n

i j i j S L l ===+∑∑

1010.r d s t ≥??≥?

=

用此模型就可以对起点到目标点之间的路径进行优化求解。

时间模型:

∑∑==+=n

j j

m i i p

t T 1

1

min

1010.i

i o

j

j 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.0372

2、通过穷举法分析知采用如下图6所示路线可以可以算出O →B 的长度。

设D 到M 点的坐标分别为(,i i x y )i= 1...10;

Q1到Q5表示为绕过的各个障碍物的圆心设坐标为(y ,x j

1j

1)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

-=22

P Q c

-=22

J P a 3-= J Q b -=33 P Q c

-=33

q I a

-=4

I Q b

-=44

q Q c -=4

4

q B a 5-= q Q 55b -=

B Q c

-=55

图6

则:夹角为

222

+-bj cj aj =arccos(

)n j12bjcj

r

=arccos()n j2bj

r

=arccos()n j3cj

π2432

1

=+++n n n

n j j j j

所以O →B 所走路线的,弧线长度为:

r n L

j j

4=

每个线圆结构起点到终点,起点到圆心,圆心到终点的距离: L r c r b s j j j j +-+

-=

2

2

2

2 (j=1,2,3,4,5)

故,O →B 的最短路径的目标函数为:

5

minZ =s j j =1

通过软件计算知 :B O →的最短路径是869.4332

3、在通过分析知O →C 的最短路径为图5所示,通过visio 画图得到如下图所示:

设()y x j

j

i

O ,其中j 为1到4的整数,17

17

O ,)(x

y 。A.B.J.I.D.K.E.F.G.H

的坐标分别为(y x i

i ,)其中i 为5到14的整数,M(y x 16

16,).各个点之间的关

系:J 点坐标

2

22

1

7

2

1

7y

y y

x

x x +

=

+= K 点坐标

2

23

2

10

3

210y

y y

x

x x +

=

+=

G 点坐标 y

y

x x r 4

13

413=

+= F 点坐标y

y x x r =+=3

12

3

12 我们将O 到C 分成五个线圆结构,根据上述模型分析可以得到:

A O →:52

2

5

5r 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 →:444

r r 2c 2L θ?+-=

所以:54321L L L L L L min ++++=

所以通过MATIAB 软件编程可以算出:O →C 的最短路径为:1093.301

图5

4、通过分析可知O →A →B →C →O 的最短路径为如下图7所示:

图7

因为O →A →B →C →O 的路线简化成由16个线圆结构组成的

H G →: θ12

212

211r r c r b l +-+

-=

F →L :θ22

2

22r C r l +-= L →B :θ32

2

32

233r r c r b l +-+

-=

K →N :θ42

2

44r r c l +-= M →Q :θ52

2

55r r c l +-=

Q →t :θ62

262

266r r c r b l +-+

-=

S →V :θ72

2

77r r c l +-=

V →Y :θ82

282

288r r c r b l +-+

-=

X →T :922

99θr r c l +-= T →q :θ102

2

1010r r c l +-=

为了简化模型,我们假设A 、B 、C 点为切点。 因为O →A 和O →C 在前面已经计算了最短值 所以

OC l l l l l l l l l l OA l +++++++++++=

10987654321min

综上所述可得各个点的坐标: O →C 的坐标为: 圆弧圆心

(230,60) (410,100) (500,200) (720,520) (720,600)

切点

(422,90) (428.7,94.5) (492,206) (727.6,514) (730,520)

(730,600) (727.8,606.3)

O →B 的坐标为: 圆心

(60,300) (150,435) (220,470) (220,530) (150,600) 切点 (50.13,301.06) (51.7,305.5) (141.7,439.6) (230,530)

(150,444.03) (222.1,460.2) (140.7,596.3) (230,470)

(225.5,538.3) (144.5,591.6)

O →A 的坐标为:

圆心 (80,210) 切点

(70.5,213) (76.6,219.4)

O O →的坐标 圆弧切点

(70.5,213.1) (76.6,219) (291.07,297.78)

(297.25,309.08)

(229.25,532.9) (225.5,538.35) (144.5,591.64) (140.7,596.35)

(105.7,685.4) (115.6,699) (270.6,689.9) (272,689.8)

(366.7 ,670.3) (533.9 ,738.3) (699.4 ,642.3) (369.3 ,670)

(539.6 ,740) (429.3, 670) (539.5 ,740) (435.1 ,671.8)

(679.3 ,732.18) 圆心

(80, 210) (287.68 ,306.18) (220 ,530) (150,600)

(115.02,639) (270,680) (369.3 ,680) (429.3 ,680)

(539.5 ,730) (669.5 ,730) (709.2 ,644.5)

问题二:通过分析采用图9的路线可以得出A O →最短时间路径 如图所示:

图9

A B C O

是O 到A 的最短时间路径 其中C ()11,y x 点,B ()22,y x 点分别是直线与圆

弧的两个切点:CB 长度是d 。 ()()212212x x y y d +++=

直线C O 1的斜率为1k ,直线B O 1的斜率为2k 。

所以直线C O 1的方程:()111x x k y y -=- (1)

直线B O 1的方程:()222x x k y y -=-······························(2) 将式子(1)和式子(2)连理求解可以得到圆心坐标()y x O ,1。

圆弧B C

所对的圆心角为θ

由到角公式可知:2

12

11tan k k k k +-=

θ (3)

因为OC C O AB B O ⊥⊥11,,所以有两直线垂直那么其斜率相乘等于零。 因此:2

2

2300300y x k ---

= (4)

1

1

1y x k -

= ··················································(5) 在BC O 1?中显然有d 2

sin

r 2=θ

?····································(6) 将式子(3)、(4)、(5)、(6)连理求解可以得到θ和r

由于转弯的的半径还受到障碍物5和障碍物6的影响,所以切点的半径有限制范围,通过计算可限制切点的半径范围:

290

y 210290x 0290y 80

x 02211≤≤≤≤≤≤≤

又因为D 点必须在两条切线的内侧,所以我们通过 OC 的斜率大于OD ;AB 的斜率小于AD 来限制。 即:

01

1

><>DA DA

BA DA k k k k x y 所以最短时间可以表示为:

()()5

3003001min 2

1

2122221.0102

y x y x e

r T e ++

-+-+

+=

以上式子用MATLAB 求解得到最短时间为:95.4332秒

在上面的模型中是圆心固定算出半径是11.5,如果不固定圆心O1,那么圆心的范围就是一个以O 点为圆心,1.5为半径的小圆内部的点。为了方便起见将圆心O1坐标的取值定在小圆的内切正方形里面。然后利用上面的模型加上(7)式的

约束条件可以在这个小正方形里面找到最优解。

c

b d a b

a d <-=+= (7)

上面式子的程序再加上(7)这个约束条件用MATLAB 求解得到最短时间为:94.3秒.两个切点坐标)6.198,9.85(B )6.212,1.70(C

七、模型评价

(一)优点:1.文章中的计算过程皆运用数学软件求解,且求解过程简洁,使得出的数据更具有说服力;

2.本文通过对问题的充分分析,在合理的假设情况下,建立了具有科学性的方程模型;

3.运用本文模型求解相关问题时结果与实际情况基本相吻合;

(二)缺点:问题(一)中其他几问的算法基本上同O →A 的算法一致,数据较大,在处理时存在一定的误差,但误差在允许的范围内,可以接受。

八、模型检验与推广

本文是利用传统方法——切线图法求解切线图法用障碍物的切线表示弧,此

时移动机器人必须接近障碍物,在有误差的时候可能与障碍物有接触,但解决了障碍物不能是圆形的问题。我们可以采用基于遗传算法与人工神经网络的智能避障算法。

九、参考文献

[1] https://www.sodocs.net/doc/3412535611.html,/view/59fd857aa26925c52cc5bf4c.html ,2012年

[2] 阳明盛,熊西文,林建华,MATLAB 基础及数学软件,大连:大连理工大学出版社,2003年。

[3]《移动机器人避障方法综述》 作者 牢常健, 吴成东, 李斌

科学院沈阳动化研究所机器人学田家重点实验室;中嗣科学院研究生院;东

北大学信息科学与工程学院

十,附录

附录一;为最短路线O→A 的程序,是利用MATIAB求解的

%0:初始点D:转弯圆弧圆心A:到达点r:表示圆弧半径

function result=zongchang1(r)

O(1)=0;O(2)=0;A(1)=300;A(2)=300;

D(1)=80;D(2)=210;

OD = sqrt((O(1)-D(1))^2+(O(2)-D(2))^2);

OA=sqrt((O(1)-A(1))^2+(O(2)-A(2))^2);

AD=sqrt((D(1)-A(1))^2+(D(2)-A(2))^2);

alpha1=acos((OD^2+AD^2-OA^2)/(2*OD*AD));

alpha2 = acos(r/OD);

alpha3 = acos(r/AD);

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

OS1=sqrt(OD^2-r^2);%OS1,AS2均为圆弧切线%

S2A=sqrt(AD^2-r^2);

S1S2hu=r*alpha4;

result=OS1+S1S2hu+S2A;

end

zongchang1(10)

ans =

471.0372

附录二;为最短路线O→B的程序,是利用MATIAB编程的O-F

%求解一次转弯所经路线总长

%0:初始点Q1:转弯圆弧圆心F:到达点r:表示圆弧半径ρfunction result=zongchangob1(r)

O(1)=0;O(2)=0;F(1)=141.675;F(2)=440.55;

Q1(1)=60;Q1(2)=300;

OQ1 = sqrt((O(1)-Q1(1))^2+(O(2)-Q1(2))^2);

OF=sqrt((O(1)-F(1))^2+(O(2)-F(2))^2);

FQ1=sqrt((Q1(1)-F(1))^2+(Q1(2)-F(2))^2);

alpha1=acos((OQ1^2+FQ1^2-OF^2)/(2*OQ1*FQ1));

alpha2 = acos(r/OQ1);

alpha3 = acos(r/FQ1);

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

OD=sqrt(OQ1^2-r^2);%OD,FE均为圆弧切线%

EF=sqrt(FQ1^2-r^2);

DEhu=r*alpha4;

result=OD+DEhu+EF;

end

zongchangob1(10)

F-P

%求解一次转弯所经路线总长

% E:初始点Q2:转弯圆弧圆心P:到达点r:表示圆弧半径ρfunction result=zongchangob1(r)

E(1)=51.675;E(2)=305.5;P(1)=185;P(2)=452.5;

Q2(1)=150;Q2(2)=435;

EQ2 = sqrt((E(1)-Q2(1))^2+(E(2)-Q2(2))^2);

EP=sqrt((E(1)-P(1))^2+(E(2)-P(2))^2);

PQ2=sqrt((Q2(1)-P(1))^2+(Q2(2)-P(2))^2);

alpha1=acos((EQ2^2+PQ2^2-EP^2)/(2*EQ2*PQ2));

alpha2 = acos(r/EQ2);

alpha3 = acos(r/PQ2);

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

EF=sqrt(EQ2^2-r^2);%EF,PG均为圆弧切线%

PG=sqrt(PQ2^2-r^2);

FGhu=r*alpha4;

result=FGhu+PG;

end

P-J

%求解一次转弯所经路线总长

% P:初始点Q3:转弯圆弧圆心J:到达点r:表示圆弧半径ρfunction result=zongchangob1(r)

J(1)=230;J(2)=530;P(1)=185;P(2)=452.5;

Q3(1)=220;Q3(2)=470;

PQ3 = sqrt((P(1)-Q3(1))^2+(P(2)-Q3(2))^2);

JP=sqrt((J(1)-P(1))^2+(J(2)-P(2))^2);

JQ3=sqrt((Q3(1)-J(1))^2+(Q3(2)-J(2))^2);

alpha1=acos((JQ3^2+PQ3^2-JP^2)/(2*JQ3*PQ3));

alpha2 = acos(r/PQ3);

alpha3 = acos(r/JQ3);

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

JI=sqrt(JQ3^2-r^2);%JI,PH均为圆弧切线%

PH=sqrt(PQ3^2-r^2);

HIhu=r*alpha4;

result=PH+HIhu+JI;

end

J-q

%求解一次转弯所经路线总长

% P:初始点Q3:转弯圆弧圆心J:到达点r:表示圆弧半径ρfunction result=zongchangob1(r)

J(1)=230;J(2)=530;P(1)=185;P(2)=452.5;

Q3(1)=220;Q3(2)=470;

PQ3 = sqrt((P(1)-Q3(1))^2+(P(2)-Q3(2))^2);

JP=sqrt((J(1)-P(1))^2+(J(2)-P(2))^2);

JQ3=sqrt((Q3(1)-J(1))^2+(Q3(2)-J(2))^2);

alpha1=acos((JQ3^2+PQ3^2-JP^2)/(2*JQ3*PQ3));

alpha2 = acos(r/PQ3);

alpha3 = acos(r/JQ3);

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

JI=sqrt(JQ3^2-r^2);%JI,PH均为圆弧切线%

PH=sqrt(PQ3^2-r^2);

HIhu=r*alpha4;

result=PH+HIhu+JI;

end

q-B

%求解一次转弯所经路线总长

% q:初始点Q5:转弯圆弧圆心B:到达点r:表示圆弧半径ρfunction result=zongchangob1(r)

B(1)=100;B(2)=700;q(1)=185;q(2)=565;

Q5(1)=150;Q5(2)=600;

BQ5= sqrt((B(1)-Q5(1))^2+(B(2)-Q5(2))^2);

Bq=sqrt((B(1)-q(1))^2+(B(2)-q(2))^2);

qQ5=sqrt((Q5(1)-q(1))^2+(Q5(2)-q(2))^2);

alpha1=acos((BQ5^2+qQ5^2-Bq^2)/(2*BQ5*qQ5));

alpha2 = acos(r/qQ5);

alpha3 = acos(r/BQ5);

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

BM=sqrt(BQ5^2-r^2);%BM,qL均为圆弧切线%

qL=sqrt(qQ5^2-r^2);

LMhu=r*alpha4;

result=qL+LMhu+BM;

end

function oc (a,b,c,d,e);

sum5 = zongchangob0F(10)+zongchangobFP(10)+zongchangobPJ(10)+zongchangobJq(10)+zongchango bqB(10)

869.4896

附录三;为最短时间路线O→A的程序(圆心固定时),是利用MATIAB编程的

f>%是假设圆心固定所得出的模型

%E:初始点F:转弯圆弧圆心G:到达点

for i=1:7000;

r(i)=10+0.01*i;

E(1)=0;E(2)=0;F(1)=80;F(2)=210;G(1)=300;G(2)=300;

EF=sqrt((E(1)-F(1))^2+(E(2)-F(2))^2);%b

EG=sqrt((E(1)-G(1))^2+(E(2)-G(2))^2);%a

FG=sqrt((F(1)-G(1))^2+(F(2)-G(2))^2);%c

alpha1=acos((EF^2+FG^2-EG^2)/(2*EF*FG));% \alpha1为起始点与圆心连线的夹角

alpha2=acos(r(i)/EF);% \alpha2为起点到圆心与切点连线的夹角

alpha3=acos(r(i)/FG);% \alpha3为起点到圆心与切点连线的夹角

alpha4=2*pi-alpha1-alpha2-alpha3;%alpha4为转弯圆心角

ES1=sqrt(EF^2-r(i)^2);%ES1,ES2均为圆弧切线%

S2G=sqrt(FG^2-r(i)^2);

S1S2hu=r(i)*alpha4;

L(i)=ES1+S1S2hu+S2G;%总路程

a(i)=ES1/5+S2G/5+S1S2hu*(1+exp(10-0.1*r(i)^2))/5;%总时间

end

mintime=min(a) %最小时间

k=find(a==mintime)

r(k)%最小时间时候的半径

L(k)%最小时间时候的路程

附录四;为最短时间路线O→A的程序(半径固定时),是利用MATIAB编程的

f>%是假设半径固定所得出的模型

%E:初始点F:转弯圆弧圆心G:到达点

clear

r=11.5;

for i=1:100;

F(1)=80+0.01*i;

for j=1:100;

F(2)=210-0.01*j;

E(1)=0;E(2)=0;G(1)=300;G(2)=300;

EF=sqrt((E(1)-F(1))^2+(E(2)-F(2))^2);%b

EG=sqrt((E(1)-G(1))^2+(E(2)-G(2))^2);%a

FG=sqrt((F(1)-G(1))^2+(F(2)-G(2))^2);%c

alpha1=acos((EF^2+FG^2-EG^2)/(2*EF*FG));% \alpha1为起始点与圆心连线的夹角

alpha2=acos(r/EF);% \alpha2为起点到圆心与切点连线的夹角

alpha3=acos(r/FG);% \alpha3为到达点到圆心与切点连线的夹角

alpha4=2*pi-alpha1-alpha2-alpha3;% \alpha4为转弯圆心角

ES1=sqrt(EF^2-r^2);%ES1,ES2均为圆弧切线%

S2G=sqrt(FG^2-r^2);

S1S2hu=r*alpha4;

L(i,j)=ES1+S1S2hu+S2G;%总路程

a(i,j)=ES1/5+S2G/5+S1S2hu*(1+exp(10-0.1*r^2))/5;%总时间

end

end

m=min(a); %最小时间

mintime=min(m)

[k,l]=find(a==mintime);

F=[80+0.01*k,210-0.01*l] %最小时间时候的圆心坐标

LL=L(k,l) %LL最小时间时候的路程

附录五;为最短时间路线O→A的两个切点C、D,是利用MATIAB编程的

>>

syms x

solve('(300-sqrt(56109.75-(300-x)^2))^2-509*(300-sqrt(56109.75-(300-x)^2))+x^2-381*x+87000' ,'x')

y=300-sqrt(56109.75-(300- 85.922520589325167902358822608471)^2)

> syms x3

solve('50109.75-x3^2-209*sqrt(50109.75-x3^2)-81*x3+x3^2=0','x3')

>> y=sqrt(50109.75-70.078048160753442392122465674524^2)

2012年数学建模机器人避障问题

机器人避障问题 摘要 本文主要运用直线逼近法等规律来解决机器人避障问题.对于问题一:要求最短路径运用直线逼近法证得圆弧角三角形定理,得出结论:若一大圆弧角三角形完全包括另一小圆弧角三角形,则该三角形曲线周长必大于小的三角形周长.那么可知机器人在曲线过弯时,选择最小半径可满足路径最短,即为10个单位半径,通过观察可得可能的所有曲线,通过仅考虑直线段的大致筛选选出总长较小、长度相近(之差小于100)的曲线,然后利用平面几何知识对相关切点,进而求出各直线、曲线的长度,求和可得最段路线.对于问题二:通过对机器人过弯规律2 1.0100 e 1)(ρ ρ-+= =v v v 的分析可知,当过弯 半径13ρ=时,机器人速度达最大速度为50=v 个单位/秒,再大就无变化了,那么可分两种情况考虑:1)当13ρ>时,过弯速度无变化,但由圆弧角三角形定理可知,此时随着ρ的不断变大,其路线总长不断变大,这时ρ越小O A →所用时间最短;2)当13ρ≤时,统计计算ρ分别为10、11、12、13时,过弯速度v 也不断变化,计算所用时间发现随ρ不断变大,O A →所用时间越短,此时当13ρ=时,时间最短.综合上述可知:当 13ρ=时,时间最短. 关键词: 质点机器人 安全范围 直线逼近法 圆弧角三角形定理 10单位半径

1 问题重述 在一个800×800的平面场景中,在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动,其中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物, 物的距离至少超过10个单位).规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径.机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位.为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位. 机器人直线行走的最大速度为50=v 个单位/秒.机器人转弯时,最大转弯速度为 2100.11 0()(1e ) v v v ρρ--==+,其中ρ是转弯半径.如果超过该速度,机器人将发 生侧翻,无法完成行走. 下面建立机器人从区域中一点到达另一点的避障最短路径和最短时间路径的数学模型.对场景图中4个点O(0, 0),A(300, 300),B(100, 700),C(700, 640),具体计算: (1) 机器人从O(0, 0)出发,O→A 、O→B 、O→C 和O→A→B→C→O 的最短路径. (2) 机器人从O (0, 0)出发,到达A 的最短时间路径. 2 问题分析 2.1问题一: 该问题要求路径最短,即不要求速度与时间,则可认为以最小半径10的圆过弯. 如图2.1所示:由圆弧角三角形定理(简单证明见模型准备5.3)可知过弯时,只有采用10单位半径过弯时,才会使得过弯路径最短,因此解决问题一的过弯拐角问题均采用10单位半径过弯路径. 2.2问题二: 由于O→A 过程中,机器人至少要经过一

机器人避障问题的解题分析(建模集训)

机器人避障问题的解题分析 摘要:本文对2012年全国大学生数学建模竞赛D题机器人避障问题进行了全面分析,对最短路的设计进行了理论分析和证明,建立了机器人避障最短路径的几何模型,对最短时间路径问题通过建立非线性规划模型,有效地解决了转弯半径、圆弧圆心位置和行走时间等问题。 关键词:机器人避障;最短路径;Dijkstra算法;几何模型;非线性规划模型 1 引言 随着科学技术的进步和计算机技术的发展,机器人的应用越来越广泛,在机器人的应用中如何使机器人在其工作范围内为完成一项特定的任务寻找一条安全高效的行走路径,是人工智能领域的一个重要问题。本文主要针对在一个场景中的各种静态障碍物,研究机器人绕过障碍物到达指定目的地的最短路径问题和最短时间问题。 本文以2012年“高教社”杯全国大学生数学建模竞赛D题“机器人避障问题”为例进行研究。假设机器人的工作范围为800×800的平面正方形区域(如图1),其中有12个不同形状的静态障碍物,障碍物的数学描述(如表1): 图1 800×800平面场景图

表1 在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动,机器人不能与障碍物发生碰撞,障碍物外指定一点为机器人要到达的目标点。规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。机器人直线行走的最大速度为50=v 个单位/秒。机器人转弯时,最大转弯速度为2 1.0100 e 1)(ρρ-+==v v v (ρ是转弯 半径)。如果超过该速度,机器人将发生侧翻,无法完成行走。 场景图中有4个目标点O(0, 0),A(300, 300),B(100, 700),C(700, 640),下面我们

机器人避障问题——国家一等奖论文 推荐

D题机器人避障问题 摘要 本文综合运用分析法、图论方法、非线性规划方法,讨论了机器人避障最短路径和最短时间路径求解问题。 针对问题一,首先,通过分析,建立了靠近障碍物顶点处转弯得到的路径最短、转弯时圆弧的半径最小时和转弯圆弧的圆心为障碍物的顶点时路径最短、转弯在中间目标点附近时,中间目标点位于弧段中点有最短路径的三个原理,基于三个原理,其次对模型进行变换,对障碍物进行加工,扩充为符合条件的新的区域并在转弯处圆角化构成障碍图,并通过扩充的跨立实验,得到切线和圆弧是否在可避障区的算法,第三,计算起点、中间目标点和最终目标点和各圆弧及圆弧之间的所有可避障切线和圆弧路径,最后给这些定点赋一个等于切线长度或弧度的权值构成一个网络图,然后利用Dijkstra算法求出了O-A、O-B,O-C的最短路径为O-A:471.0372个单位,O-B:853.7001个单位,O-C:1086.0677个单位;对于需要经中间目标点的路径,可运用启发规则分别以相邻的目标点作为起点和终点计算,确定路径的大致情况,在进一步调整可得到O-A-B-C-O的最短路径为2748.699个单位。 针对问题二,主要研究的是由出发点到达目标点A点的最短时间路径,我们在第一问的基础上考虑路径尽可能短且圆弧转弯时的圆弧尽量靠近障碍物的顶点,即确定了圆弧半径最小时的圆弧内切于要确定的圆弧时存在最小时间路径,建立以总时间最短为目标函数,采用非线性规划模型通过Matlab编程求解出最短时间路径为最短时间路程为472.4822个单位,其中圆弧的圆心坐标为(81.430,209.41),最短时间为94.3332秒。圆弧两切点的坐标分别为(70.88,212.92)、(77.66,219.87)。 关键字:Dijkstra算法跨立实验分析法非线性规划模型

高教社杯数学建模D题机器人避障问题论文

机器人避 障问题 摘要 本文研究了机器人避障最短路径和最短时间路径的问题。主要研究了在一个区域中存在12个不同形状障碍物,由出发点到达目标点以及由出发点经过途中的若干目标点到达最终目标点的多种情形,寻找出一条恰当的从给出发点到目标点的运动路径使机器人在运动中能安全、无碰撞的绕过障碍物而使用的路径和时间最短。由于规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径,机器人不能折线转弯。所以只要给定的出发点到目标点存在至少一个障碍物,我们都可以认为最短路径一定是由线和圆弧所组成,因此我们建立了切线圆结构,这样无论路径多么复杂,我们都可以将路径划分为若干个这种切线圆结构来求解。在没有危险碰撞的情况下,圆弧的半径越小,路径应该越短,因此我们尽量选择最小的圆弧半径以达到最优。对于途中经过节点的再到达目标点的状况,我们采用了两种方案,一种是在拐点和节点都采用最小转弯半径的形式,另一种是适当扩大拐点处的转弯半径,使得机器人能够沿直线通过途中的目标点。然后建立了最优化模型对两种方案分别进行求解,把可能路径的最短路径采用穷举法列举出来,用lingo 工具箱求解得出了机器人从O(0,0)出发,O→A、O→B、O→C 和O→A→B→C→O 的最短路径;利用matlab 中的fminbnd 函数求极值的方法求出了机器人从O(0,0)出发,到达A 的最短时间路径。本文提出一种最短切线圆路径的规划方法,其涉及的理论并不高深,只是应用了几何知识和计算机程序、数学工具计算,计算简易,便于实现,能搞提高运行效率。 问题一 O→A 最短路径为:OA L =471.0372 O→B 最短路径为:=1OB L 853.8014 O→C 最短路径为:4OC L =1054.0 O→A→B→C→O 最短路径为: 问题二机器人从O(0,0)出发,到达A 的最短时间路径: 最短时间是94.5649,圆弧的半径是11.5035,路径长4078 .472=OA L 关键词最短路径;避障路径;最优化模型;解析几何;数学工具 一、问题重述 图1是一个800×800的平面场景图,在原点O(0,0)点处有一个机器人,它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍

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

机器人避障问题的最短路径分析 摘要 本论文研究了机器人避障最短路径和最短时间路径的问题。主要讨论了在一个区域中存在12个障碍物,由出发点到达目标点以及由出发点经过若干目标点最终到达出发点的两种情况。采用传统的避障方法——切线图法。建立了线圆结构,这样任何路径,我们都可以将路径划分为若干个这种线圆结构来求解。对于途中经过节点再到达目标点的状况,我们采用在转弯点和节点都采用最小转弯半径,以节点为切点的形式。然后建立了最优化模型,利用MATLAB软件对方案进行求解。 问题一:把路径分解成若干个线圆结构来求解,然后把可能的最短路径采用穷举法列举出来,最终得出最短路径: A O→最短路径为:471.0 O→最短路径为:869.5 B O→最短路径为:1093.3 C 对于O → → →我们将A、B、C看作切点,同样采用线圆结构 C B A O→ 计算。 O→ → → →最短路径为:2827.1 A O C B 问题二:考虑避障路径和转弯速度,我们建立时间与路径之间的模型,用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 个单位/秒。机器人转弯时,最大转弯速 度为2 1.0100 e 1)(ρρ-+==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)

机器人避障问题

精心整理 机器人避障问题 摘要 本文研究了在一个800800?平面场景里,机器人通过直线和圆弧转弯,绕过障碍物,到达目标点的问题,解决了到达目标点路径最短,以及到达A 点时间最短的问题。文章将路径划分为若干个这种线圆结构来求解。对于途中经过节点的再到达目标点的状况,我们采用了在拐点和节点最小转弯半径的形式. O A →O →B O →C O →A →B 10个单位为50=v 对场景图中4(1)(2)1.出发,分别做圆的切线,直到终点。对于经过路径中的目标点的问题,我们采用最小转弯模式,建立优化模型,最终求的最短路径。 2.问题二要求从起始点到达A 点所用的时间最短,从题意以及生活经验可得,拐弯半径越大,所用时间越短,拐弯半径越小,所用时间越大。半径最小不低于10,取最大值时机器人应刚好未碰到4、6三角形,可通过几何解法计算出来,并对时间进行优化处理。 三、模型假设 假设机器人可以抽象成点来处理 假设机器人的能源充足,且在整个行走过程中无故障发生 四,符号说明

】 5(为起点,,OA 圆弧的切点,角度 1OO A ∠=,11OO M ∠=,11AO N ∠=,111M O N θ∠=.设这段路程机器人的总路程为L. 解法如下: 如上图可得有以下关系: 1 AOO ?在中: 在11Rt OO M ?: 222arccos(2b c a bc α+-=

在11Rt AO N 中: 所以: 从而可得: 结果如下: 机器人行走路线 1OM =1N A 弧11M N = 224.7221; b= 237.6973 c= O 同理了解 比较可得, O 从上面绕到到目标点A 的距离最短,最短路径为471.0372。

本科毕业论文-—基于向量场直方图的移动机器人避障方法研究

本科毕业设计(论文) 题目:(中文)基于向量场直方图的移动机器人避 障方法研究 (英文)STUDY OF OBSTACLE AVOIDANCE FOR THE MOBILE ROBOT BASED ON VECTOR FIELD HISTOGRAM

诚信承诺 我谨在此承诺:本人所写的毕业论文《基于向量场直方图的移动机器人避障方法研究》均系本人独立完成,没有抄袭行为,凡涉及其他作者的观点和材料,均作了注释,若有不实,后果由本人承担。 承诺人(签名): 年月日

基于向量场直方图的移动机器人避障方法研究 摘要 【摘要】移动机器人广泛应用于工业生产加工制造中,尤其在危险和恶劣的环境中可以用机器人代替人工操作减少损失。避障技术在移动机器人的发展中起着至关重要的作用,避障方法有很多种,本文是基于向量场直方图的移动机器人避障方法。由于传统的向量场直方图法在给定值太大或太小时都无法安全避障,本文在此基础上,利用激光测距仪所或得的数据首先确定一个可以安全行驶的范围,然后通过算法自动的改变给定值的大小,最终选择最优给定值,通过差分驱动控制使机器人安全避障。并在Robotic Studio仿真系统中建立场景和编程来实现。 【关键词】移动机器人;激光测距仪;向量场直方图;差分驱动;避障

STUDY OF OBSTACLE A VOIDANCE FOR THE MOBILE ROBOT BASED ON VECTOR FIELD HISTOGRAM Abstract 【ABSTRACT】Mobile robots are widely used in industrial production and manufacturing,especially in dangerous and harsh environments they can replace manual operations to reduce losses. Obstacle avoidance technology plays a vital role in the development of mobile robot , There are many ways about obstacle avoidance, this article is the obstacle avoidance method for mobile robot based on the vector field histogram.If the given value is too large or too small the robot can not go through obstacles safely using traditional vector field histogram method. Basing on the VFH, firstly ,determining a range of safe driving use the data from laser range finders.Then changing the given value automatically and choosing the optimal value , finally using the differential drive control method make the robot avoid obstacles successfully.And make it come ture in the Robotic Studio simulated system. 【KEYWORDS】mobile robot;LRF;VFH ; differential drive; obstacle avoidance

机器人避障问题论文

机器人避障问题 【摘要】 本文主要是对机器人在一个平面区域内通过不同障碍物到指定目标点进行研究,通过建立机器人与障碍物的最小安全距离的禁区模型,进而建立从区域一点到另一点的最短距离、最短时间的数学模型。在最优转弯顶点为障碍物,最优转弯半径为安全距离10的基础上,把路径概括为基本的三种数学模型。利用穷举的算法找出最短路径和最短时间。 针对区域中从一点到另一点避障的最优路径问题,把障碍物划分为有顶点和无顶点两大类。首先本文证明对于有顶点障碍物,机器人以障碍物顶点为圆心且转弯的圆弧半径为10时路径最优,我们还注意到在某些路径中适当增加圆的半径可以把曲线路线转换为直线路径,进一步优化行进路径;对于无顶点障碍物通过论证找出以障碍物圆心为转弯圆心,以障碍物半径与安全距离的和为转弯半径的最优转弯圆弧。其次本文将寻找最短路径的的问题转换为最短路径的优选问题。本文巧妙的将优化模型转变为研究不与障碍物边界相交、不与圆弧相交的路线中的最优解的问题。在这个数学模型的基础上进行相应的改善并且使用穷举的算法找出最优路径。 针对不同的目标点,我们将机器人的行进分为单目标点和多目标点两种情况针对多目标点问题,由于机器人不能直线转向,所以在经过目标点时,应该提前转向,且中间目标点应该在转弯弧上。因此先建立优化模型(模型三)对行进时中间目标点处转弯圆弧圆心搜索求解。求出中间目标点转弯圆心后,用把中间目标点的圆心看做“障碍物”的办法把问题转化为单目标点问题。然后根据模型二和模型一利用MATLAB软件编程求得了O→A、O→B、O→C、O→A→B→A→C的最短路径,最短路径长分别为 471.0372、857.6778、1094.5、2799.0121,其中O-->A的最短路径对应圆弧的圆心坐标为(80,210);O→B的最短路径对应圆弧的圆心坐标:(60,300)、(150,435)、(220、470)、(220,530)、(150,600);O→C经过的圆心:(230,60)、(410,100)、(500,200)、(720,520), (720,600);对于多目标点问题利用模型三进行分割求解得到O→A→B→C→O最短路径对应圆心坐标(80,210)、(307.7715)、(306.2932)、(220,530)、(150,600)、(109.8478,701.7379)、(270,680)、(370,680)、(430,680)、(540,730)、(670,730)、(709.7933)、(642.0227)、(720,600)、(720,520)(500,200),(410,100),(230,60)。对于最短时间路径问题,根据转弯半径和速度的关系,在问题一求出的最短路径的模型的基础上,进行路线优化,建立以最短时间为目标的非线性规划模型,利用lingo 求解最短时间获得了机器人从O点出发,到达A的最短时间路径,求得最短时间路径下转弯半径为12.9885 ,同时最短时间路径时间长为94.2283个单位,路径长为471.129个单位。相应圆弧的圆心坐标为(82.1414,207.9153)。 关键词:机器人避障覆盖法穷举法非线性规划

数学建模机器人避障论文

承诺书 我们仔细阅读了中国大学生数学建模竞赛的竞赛规则. 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): 我们的参赛报名号为(如果赛区设置报名号的话): 所属学校(请填写完整的全名): 参赛队员(打印并签名) :1. 2. 3. 指导教师或指导教师组负责人(打印并签名): 日期:年月日

编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 赛区评阅记录(可供赛区评阅时使用): 评 阅 人 评 分 备 注 全国统一编号(由赛区组委会送交全国前编号): 全国评阅编号(由全国组委会评阅前进行编号):

机器人避障问题 摘要 针对题中机器人避障最短路径问题,文章使用简化后建立的最短路径的数学模型来解决此类问题。 对于问题1,我们matlab中自带函数graphshortestpath函数求解最短路径的数学模型。其主要思想是:首先先证明出两点之间的最短路径是由两条线段和以中间点为圆心的圆的一段圆弧组成,然后证明圆弧的半径为定值10。然后对模型简化使模型化为标准的最短路径模型,最后用graphshortestpath函数对模型求解。 针对问题2,我们建立了优化模型。在问题1的基础上,我们对两种行走方案进行分析,根据转弯弧的半径变化对速度的影响我们锁定到一条路径,然后利用lingo对优化模型进行求解。 关键词:graphshortestpath函数、最短路径、避障问题

移动机器人常用传感器及相关避障技术介绍

移动机器人常用传感器及相关避障技术介绍 移动机器人是机器人的重要研究领域,人们很早就开始移动机器人的研究。世界上第一台真正意义上的移动机器人是斯坦福研究院(SRI)的人工智能中心于1966年到1972年研制的,名叫Shakey,它装备了电视摄像机、三角测距仪、碰撞传感器、驱动电机以及编码器,并通过无线通讯系统由二台计算机控制,可以进行简单的自主导航。Shakey的研制过程中还诞生了两种经典的导航算法:A*算法(the A* search algorithm)和可视图法(the visibility graph method)。虽然Shakey只能解决简单的感知、运动规划和控制问题,但它却是当时将AI应用于机器人的最为成功的研究平台,它证实了许多通常属于人工智能(AriTIficial Intelligence,AI)领域的严肃的科学结论。从20世纪70年代末开始,随着计算机的应用和传感技术的发展,以及新的机器人导航算法的不断推出,移动机器人研究开始进入快车道。 移动机器人智能的一个重要标志就是自主导航,而实现机器人自主导航有个基本要求避障。下面让我们来了解一下移动机器人的避障,避障是指移动机器人根据采集的障碍物的状态信息,在行走过程中通过传感器感知到妨碍其通行的静态和动态物体时,按照一定的方法进行有效地避障,最后达到目标点。 实现避障与导航的必要条件是环境感知,在未知或者是部分未知的环境下避障需要通过传感器获取周围环境信息,包括障碍物的尺寸、形状和位置等信息,因此传感器技术在移动机器人避障中起着十分重要的作用。避障使用的传感器主要有超声传感器、视觉传感器、红外传感器、激光传感器等。 移动机器人避障常用的传感器 1、激光传感器 激光测距传感器利用激光来测量到被测物体的距离或者被测物体的位移等参数。比较常用的测距方法是由脉冲激光器发出持续时间极短的脉冲激光,经过待测距离后射到被测目标,回波返回,由光电探测器接收。根据主波信号和回波信号之间的间隔,即激光脉冲从

机器人避障问题的MATLAB解法探析

机器人避障问题的MATLAB解法探析 摘要:本文对2012年全国大学生数学建模竞赛D题“机器人行走避障问题”,给出了利用matlab这一数学软件进行求解的方法,并对该方法的优缺点进行了分析。 关键词:机器人避障matlab 2012年全国大学生数学建模竞赛D题“机器人行走避障问题”如下: 在一个800×800的平面场景图中,原点O(0,0)点处有一个机器人,它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物。规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的圆弧组成,每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位。计算机器人从O(0,0)出发,O→A、O→B、O→C和O→A→B→C→O的最短路径。 一、问题的分析 为达到要求,我们按照以下原则选择路径: (1)在障碍物拐点处的圆弧半径为临界半径个单位; (2)因为直线速度大于转弯速度,所以在不转弯的地方尽可能走直线; 按照上述原则,我们选取以下步骤求最短路径: (1)穷举出起始点与目标点的所有可能直线路径,判断出最短直线路径; (2)针对上述最短直线路径,在障碍物拐点处加入弧线转弯,然后计算实际最短行走路径。 二、问题的求解 按照上述步骤,逐步求最短路径: (1)首先画出O到A允许行走所有直线路线,如图所示。 (2)计算出各节点到下一节点的距离作为权值给各条边赋权,可以求解出最优直线路径。用MATLAB软件,程序如下: sets: cities/O,B1,B2,C1,C2,A/; roads(cities,cities)/O,B1 O,B2 O,C1 B1,A B1,C2 C1,B1 C1,B2 B2,C2 B2,A C2,A /:w,x; data: w= 224.7 237.7 100 237.7 150 150 150 150 250 114; n=@size(cities); min=@sum(roads:w*x); @for(cities(i)|i #ne# 1 #and# i #ne# n: @sum(roads(i,j):x(i,j))=@sum(roads(j,i):x(j,i))); @sum(roads(i,j)|i #eq# 1:x(i,j))=1; end 计算出结果(只列出有用部分): Global optimal solution found. Total solver iterations:0 Variable Value Reduced Cost

行走机器人避障问题

机器人行走问题 摘要 本文研究了机器人避障最短路径的问题。主要研究了在一个区域中存在四个障碍物,由出发点到达目标点以及由出发点经过途中的若干目标点到达最终目标点的两种情形。我们通过证明具有圆形限定区域的最短路径是由两部分组成的:一部分是平面上的自然最短路径(即直线段),另一部分是限定区域的部分边界,这两部分是相切的,互相连接的。依据这个结果,我们可以认为最短路径一定是由线和圆弧做组成,因此我们建立了线圆结构,这样无论路径多么复杂,我们都可以将路径划分为若干个这种线圆结构来求解。对于途中经过节点的再到达目标点的状况,我们采用了两种方案,一种是在拐点和节点都采用最小转弯半径的形式,另一种是适当扩大拐点处的转弯半径,使得机器人能够沿直线通过途中的目标点。然后建立了最优化模型对两种方案分别进行求解。 问题一,我们很容易分解成线圆结构来求解,然后把可能路径的最短路径采用穷举法列举出来,最终得出最短路径: R→A 最短路径为:70.5076 R→B 最短路径为:107.9587 R→C 最短路径为:102.0514 问题二,我们方案都进行优化,求得最终结果: 第一种方案最短路径为:156.471 第二种方案最短路径为:157.752 关键词最短路径最优化模型避障路径解析几何

一、问题重述 下图是一个100×80的平面场景图,在R(0,0)点处有一个机器人,机器人只能在该100×80的范围内活动,图中四个矩形区域是机器人不能与之发生碰撞的障碍物,障碍物的数学描述分别为B1(20,40;5,10)、B2(30,30;10,15)、B3(70,50;15,5)、B4(85,15;5,10),其中B1(20,40;5,10)表示一个矩形障碍物,其中心坐标为(20,40),5表示从中心沿横轴方向左右各5个单位,即矩形沿横轴方向长5×2=10个单位,10表示从中心沿纵轴方向上下各10个单位,即矩形沿纵轴方向长10×2=20个单位,所以,障碍物B1的中心在(20,40),大小为10×20个单位的矩形,其它三个障碍物的描述完全类似。 在平面场景中、障碍物外指定一点为机器人要到达的目标点(要求目标点与障碍物的距离至少超过1个单位),为此,须要确定机器人的最优行走路线——由直线段和圆弧线段组成的光滑曲线,其中圆弧线段是机器人转弯路线,机器人不能折线转弯,转弯路径是与直线相切的一圆形曲线段,也可以是两个或多个相切的圆弧曲线段组成,但每个圆形路线的半径都必须大于某个最小转弯半径,假设为1个单位。另外,为了不与障碍物发生碰撞,要求机器人行走线路与障碍物间的最短距离为1个单位,越远越安全,否则将发生碰撞,若碰撞发生,则机器人无法到达目标点,行走失败。请回答如下问题: 1.场景图中有三个目标点A(50,40)、B(75,60)、C(95,20),请用数学建 模的方法给出机器人从R(0,0)出发安全到达每个目标点的最短路线。 2.求机器人从R(0,0)出发,依次安全通过A、B到达C的最短路线。

基于弹性绳索拉伸的机器人避障问题

基于弹性绳索拉伸的机器人避障问题 摘要 本文研究了机器人避障的相关问题。在一个已知区域中存在12个障碍物,使用基于弹性绳索拉伸的方法,求解了由出发点到目标点的最短路径和最短时间路径。我们在禁区顶点以最小转弯半径转向为最优的前提下,对障碍物进行了加工,即将限定区域向外扩展并将顶点圆角化。那么最短路径就由两部分组成:一部分是平面上的直线段,另一部分是限定区域上部分弧构成。由于最短路径一定是由直线线段和圆弧做组成,而弹性绳索紧贴障碍物时,弹性绳索与直线线段和圆弧重合,并且弹性绳索有自然缩短的趋势,弹性绳处于紧绷状态,此时弹性绳长就是最短路径。 问题一,将绳索系与起点和终点,使用拉伸弹性绳索的方法,找到所有符合要求的绳索连结成的路径并计算路径长度,最终最短的绳长即为所求。由于符合要求的路径可能比较多,我们又使用了尺规作图进行简化了以及一般情况下的Dijkstra求解最短路径的方法。 最终求得: O→A最短路径长度为471.037 O→B最短路径长度为 853.13 O→C最短路径长度为1092.82 O→A→B→C→O最短路径长度为2714.31 问题二,由于机器人转弯时所行走的速度和转弯半径有关。而当转弯半径最小时相应的速度也最小。就必须平衡转弯半径和转弯时速度的这一对矛盾。本文通过极限状态的求解,计算出可能的最短时间路径。 关键字:最短路径切线长弧长

一、问题的重述 图1是一个800×800的平面场景图,在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物,障碍物的数学描述如下表: 编号 障碍物名称 左下顶点坐标 其它特性描述 1 正方形 (300, 400) 边长200 2 圆形 圆心坐标(550, 450),半径70 3 平行四边形 (360, 240) 底边长140,左上顶点坐标(400, 330) 4 三角形 (280, 100) 上顶点坐标(345, 210),右下顶点坐标(410, 100) 5 正方形 (80, 60) 边长150 6 三角形 (60, 300) 上顶点坐标(150, 435),右下顶点坐标(235, 300) 7 长方形 (0, 470) 长220,宽60 8 平行四边形 (150, 600) 底边长90,左上顶点坐标(180, 680) 9 长方形 (370, 680) 长60,宽120 10 正方形 (540, 600) 边长130 11 正方形 (640, 520) 边长80 12 长方形 (500, 140) 长300,宽60 在图1的平面场景中,障碍物外指定一点为机器人要到达的目标点(要求目标点与障碍物的距离至少超过10个单位)。规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。 机器人直线行走的最大速度为50=v 个单位/秒。机器人转弯时,最大转弯速度为 2 1.0100 e 1)(ρρ-+==v v v ,其中ρ是转弯半径。如果超过该速度,机器人将发生侧 翻,无法完成行走。 请建立机器人从区域中一点到达另一点的避障最短路径和最短时间路径的数学模型。对场景图中4个点O(0, 0),A(300, 300),B(100, 700),C(700, 640),具体计算: (1) 机器人从O(0, 0)出发,O→A 、O→B 、O→C 和O→A→B→C→O 的最短路径。 (2) 机器人从O (0, 0)出发,到达A 的最短时间路径。 注:要给出路径中每段直线段或圆弧的起点和终点坐标、圆弧的圆心坐标以及机器人行走的总距离和总时间。

2012全国大学生数学建模机器人避障问题优秀论文模型

承诺书 我们仔细阅读了《全国大学生数学建模竞赛章程》和《全国大学生数学建模竞赛参赛规则》(以下简称为“竞赛章程和参赛规则”,可从全国大学生数学建模竞赛网站下载)。 我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。 我们知道,抄袭别人的成果是违反竞赛章程和参赛规则的,如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。 我们郑重承诺,严格遵守竞赛章程和参赛规则,以保证竞赛的公正、公平性。如有违反竞赛章程和参赛规则的行为,我们将受到严肃处理。 我们授权全国大学生数学建模竞赛组委会,可将我们的论文以任何形式进行公开展示(包括进行网上公示,在书籍、期刊和其他媒体进行正式或非正式发表等)。 我们参赛选择的题号是(从A/B/C/D中选择一项填写): D 我们的参赛报名号为(如果赛区设置报名号的话):2418 所属学校(请填写完整的全名): 参赛队员(打印并签名) :1.黎仕东 2.李兆海 3.赵甜森 指导教师或指导教师组负责人(打印并签名): (论文纸质版与电子版中的以上信息必须一致,只是电子版中无需签名。以上内容请仔细核对,提交后将不再允许做任何修改。如填写错误,论文可能被取消评奖资格。) 日期:年 8 月25 日赛区评阅编号(由赛区组委会评阅前进行编号):

编号专用页 赛区评阅编号(由赛区组委会评阅前进行编号): 全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):

2012年高教社杯数学建模D题--机器人避障问题论文设计

机器人避障问题 摘要 本文研究了机器人避障最短路径和最短时间路径的问题。主要研究了在一个区域中存在12个不同形状障碍物,由出发点到达目标点以及由出发点经过途中的若干目标点到达最终目标点的多种情形,寻找出一条恰当的从给出发点到目标点的运动路径使机器人在运动中能安全、无碰撞的绕过障碍物而使用的路径和时间最短。由于规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径,机器人不能折线转弯。所以只要给定的出发点到目标点存在至少一个障碍物,我们都可以认为最短路径一定是由线和圆弧所组成,因此我们建立了切线圆结构,这样无论路径多么复杂,我们都可以将路径划分为若干个这种切线圆结构来求解。在没有危险碰撞的情况下,圆弧的半径越小,路径应该越短,因此我们尽量选择最小的圆弧半径以达到最优。对于途中经过节点的再到达目标点的状况,我们采用了两种方案,一种是在拐点和节点都采用最小转弯半径的形式,另一种是适当扩大拐点处的转弯半径,使得机器人能够沿直线通过途中的目标点。然后建立了最优化模型对两种方案分别进行求解,把可能路径的最短路径采用穷举法列举出来,用lingo 工具箱求解得出了机器人从O(0, 0)出发,O →A 、O →B 、O →C 和O →A →B →C →O 的最短路径;利用matlab 中的fminbnd 函数求极值的方法求出了机器人从O (0, 0)出发,到达A 的最短时间路径。本文提出一种最短切线圆路径的规划方法,其涉及的理论并不高深,只是应用了几何知识和计算机程序、数学工具计算,计算简易,便于实现,能搞提高运行效率。 问题一 O →A 最短路径为:OA L =471.0372 O →B 最短路径为:=1OB L 853.8014 O →C 最短路径为:4OC L =1054.0 O →A →B →C →O 最短路径为: 问题二机器人从O (0, 0)出发,到达A 的最短时间路径: 最短时间是94.5649,圆弧的半径是11.5035,路径长4078.472=OA L 关键词 最短路径;避障路径;最优化模型;解析几何;数学工具

数学建模 机器人避障问题

机器人避障问题 一、摘要 本文讨论了机器人在平面场景中避障行走的问题,已知机器人的行走模式(直线与相切圆弧)以及场景障碍物的分布,计算出到平面各个给定点的最短路径,以及到A 点的最短时间。 文中,首先,考虑到机器人与障碍物之间有10个单位的碰撞距离,故用CAD 软件将平面场景图进行改进,再用CAD 设计可能的最短路径。接着,对每条具体路径进行分解,得到三种基本线圆形模型(点圆模型,双圆异侧模型,双圆同侧模型),对这三种模型进行求解,得到各个模型直线长度以及转弯圆弧圆形角的表达公式。之后,参照具体的行走路径,构造合适的行走矩阵,用以判断每段路径所属的基本模型。路径总的长度可用如下公式表达: 12 ,1,1,2 1 1 N N i i i i i i i s m r θ--+++===+?∑∑ 最后,通过计算设计的集中可能的最短路径,我们得到每段的最短路径的长度分别为: O ——A 路段:471.0372(单位); O ——B 路段: 853.7001(单位); O ——C 路段: 3100915.1?(单位); O ——A ——B ——C ——O 路段: 3 2.677810?(单位)。 对于问题二,我们在问题一的基础上分别利用直线最大速度和转弯最大速度计算出时间的表达式。为了方便计算,我们将转弯圆弧的圆心定在P (80,210)(场景中正方形5的左上角),这样得到时间T 与转弯半径ρ的函数关系式: 2 100.10 (1)(2arccos arccos ) e a b T v ρρ ρ πα-?+?---= 通过MATLAB 编程,画出其图像,求解得出:当半径ρ=11.435时,时间T 最小,其大小为94.5649(秒)。 关键词:最短路径 线圆模型 行走矩阵 MATLAB 二、问题重述 在一个800×800的平面场景图(见附录一),在原点O(0, 0)点处有一个机器人,它只能在该平

机器人避障模型毕业设计论文

毕业论文设计机器人避障模型

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

机器人避障问题

机器人避障问题 摘 要 本文讨论的是机器人避障问题,运用改良的橡皮筋算法思想,对最优路径逐步探索,并进行了大胆猜想.通过分析,利用几何关系证明了猜想的正确性,以此得到判断最短路径的三个原则:一、所走路线应尽可能接近两目标点与目的地连线;二、目标点转弯半径越小越好;三、找不到两圆间的公切线时,机器人应尽可能沿障碍物边界运动. 对于问题一,依据路径最优原则,确定转弯半径为10个单位,建立了机器人从区域中一点到达另一点的避障最短路径的优化模型.利用MATLAB 求解得到结果如下:A O →:总时间为:96.00826秒,总路程为471.0372个单位;B O →:总时间为179.09982秒,总长度为853.7113单位;C O →:总时间为239.72602秒,总路程为1100.19单位; O C B A O →→→→:总路程:2794.512单位 ,最终总时间为598.5477秒. 对于问题二,要使机器人行走时间最短,需在尽可能保证最短路径的基础上适当增加转弯半径.利用几何知识推导出机器人行走时间与转弯半径的关系,时间对半径求导,并令导数为零,得出最短时间所对应的半径5055.11=r ,进而建立最短时间路径的优化模型.利用MATLAB 软件求解得,当机器人从)0,0(O 出发到达A 时,所用最短时间为 2130.94秒,总距离为470.8301个单位. 关键词:导数;橡皮筋算法;优化模型

一、问题的重述 图1是一个800?800的平面场景图,在原点)0,0(O 点处有一个机器人,它只能在该平面场景范围活动.图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物,障碍物单位数学描述如下表: 表1.12个不同形状区域的特性 障碍物的距离至少超过10个单位).规定机器人的行走路线有直线段和圆弧组成,其中圆弧是机器人的转弯路径.机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位.为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若发生碰撞,则机器人无法完成行走. 机器人直线行走的最大速度为50=v 个单位/秒.机器人转弯时,最大转弯速度为 2 1.01001)(ρρ-+= =e v v v ,其中ρ是转弯半径.如果超过该速度,机器人将发生侧翻,无 法完成行走. 请建立机器人从区域中一点到达另一点的避障最短路径和最短时间路径的数学模型.对场景图中4个点)0,0(O ,)300,300(A ,)700,100(B ,)640,700(C ,具体计算: (1)机器人从)0,0(O 出发,A O →、B O →、C O →和O C B A O →→→→的最短路径.

相关主题