?ADO??
222b?c?a) ??arccos(2bc?CDO??:
?BDA??:
r??arccos)(
b 因为?BDC??所以:
r??arccos) (c2?????????
b2-r2+c2-r2+r*s
从而可得: L=
六、模型的建立与求解
假设机器人从起点R到到目标点M0,由图2知路径一定是由圆弧和线段组成,设有m条线段,n条圆弧。那么最短路程:
mnminS??Li??lj
i?1j?1s.t?r?10??
d?10?用此模型就可以对起点到目标点之间的路径进行优化求解。
时间模型:
第 6 页
minT??ti??i?1j?1mnpj
?r?10??ti?Livos.t????p?lj ?jv?d?10?
问题一:
1、由以上模型采用穷举法知从O?A的路径线路通过简化有如下两种情况,分别为,如图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的长度。
第 7 页
设D到M点的坐标分别为(xi,yi)i= 1...10;
Q1到Q5表示为绕过的各个障碍物的圆心设坐标为(x,y)j=11...15;
1j1j njk表示各直线相交的夹角; p(x16,y16) B(x17,y17) q(x18,y18)
类似的采用以上的算法可以得到如下直线的长度: a1?F b1?J a2?p?E
b2?Q2?E a3?P?J b3?Q3?J
a4?I?q
b4?Q4?I a5?B?q b5?Q5?q
图6
则:夹角为
nj1=arccos(bj2+cj2-aj22bjcj)
第 8 页
c1?G?F c2?Q2?P
c3?Q3?P
c4?Q4?q
c5?Q5?B
r=arccos()
nj2bjr=arccos()
nj3cj
n?nj1j2?nj3?nj4?2?
所以O→B所走路线的,弧线长度为:
Lj?nj4r
每个线圆结构起点到终点,起点到圆心,圆心到终点的距离: sj?bj?r?22cj?r?Lj (j=1,2,3,4,5)
22故,O→B的最短路径的目标函数为:
5 minZ=?sj
j=1通过软件计算知 :O?B的最短路径是869.4332
3、在通过分析知O→C的最短路径为图5所示,通过visio画图得到如下图所示:
设Oi?x,y?其中j为1到4的整数,O(xjji17,y)。A.B.J.I.D.K.E.F.G.H
17的坐标分别为(xi,y)其中i为5到14的整数,M(x16,y).各个点之间的关
16系:J点坐标
x7?y7x?x112?1313yy22? K点坐标
2x10?y10x?x223?yy232?
3xG点坐标 y?x4?r?y4?x?rx F点坐标 y?y12123我们将O到C分成五个线圆结构,根据上述模型分析可以得到:
2L?b?r?r?5 O?A:552
第 9 页
M?Q:L1Q?K:L2?c12?r2?r??1
?b22?r2?c22?r2?r??2 ?b32?r2?c32?r2?r??3 ?c42?r2?r??4
K?G:L3F?C:L4所以:minL?L1?L2?L3?L4?L5
所以通过MATIAB软件编程可以算出:O→C的最短路径为:1093.301
图5
第 10 页