由表7,表8比较分析可得,在三条备选路径中,路线3是最短的,路径长为1055.063 4)确定过点A、B、C时的圆弧圆心位置和圆弧半径
无论路径多么复杂,我们都可以将路径划分为若干个切线圆结构来求解,目标函数可以表示为:
minL?Li r?i?1n?10 (18)
其中L表示总路径长,Li表示各分段路径中每一段的长度,因此利用该目标函数,
建立优化方程组,再借助LINGO对优化方程进行求解。例如在障碍物5经过A再到障
(x,y)碍物7的路径中,设经过A的转弯圆弧的圆心坐标为,经过障碍5和障碍7的转
弯圆心坐标为(80,210),(220,530),根据关系建立优化方程为:
minL?L1?L2?EF (19)
?L?(x?80)2?(y?210)2?122??L2?(x?220)?(y?2530)2 (20) ??L1?L22?BC)?EF?r*(??arccos2*L*L12???x?300利用LINGO软件编程求解:
min=l1+l2+EF;
l1=@sqrt((x-80)^2+(@sqrt(100-(x-300)^2)+300-210)^2); l2=@sqrt((x-220)^2+(@sqrt(100-(x-300)^2)+300-530)^2);
EF=10*(3.1415926-@acos((l1^2+l2^2-140^2-320^2)/(2*l1*l2))); x<300;
y=@sqrt(100-(x-300)^2)+300;
?
解得圆心坐标为(290.8854,304.1140),半径长度为10。
绘制过A点的线路图,如图9所示
图9
12
同理可证,过点B的圆弧圆心为(108.1715,694.0966);过点C的圆弧圆心为(709.7939,642.0198),圆弧半径均为10。
5)根据所确定的过点A,B,C圆弧圆心坐标,求解最短路径(O→A→B→C→O)
1、先求从O到A的最短路径,可能成为O到A的最短路径的有两条路径,如图10:
图10
从O到A的两条路径的距离如下表9所示:
表9 O?A的线路1
路线1 O→T52 圆弧1 T52→A 圆弧2 总距离
距离(弧长) 224.4994 9.25 230.0239 15.707 479.4803 路线2 O→T54 圆弧1 T54→A 圆弧2 总距离 距离(弧长) 237.4868 10.64 251.4854 5.7595 505.3717
所以我们选择路线1:O→T52→A
2、 如图可知从A→B的最短路径只有一条:A→T73→T81→B
3、 由于无法从9号障碍物上方行走,因此从B→C的路径也只有一条:B→T91→T94→T102→T103→C 13
4、上文已求O→C的最短路径,所以C→O的最短路径为C→T113→T114→S2→T32→T54→O
所以从O→A→B→C→O的最短路径为:
O→T52→A→T73→T81→B→T83→T91→T94→T102→T103→C→T113→T114→S2→T32→T54→O 距离及弧长如下表10:
表10 O?A线路2
O→T52 圆弧1 T52→A 圆弧2 A→T73 圆弧3 T73→T81 圆弧4 T81→B 圆弧5 B→T83 圆弧6 T83→T91 圆弧7 T91→T94 圆弧8 T94→T102 圆弧9 T102→T103 圆弧10 T103→C C→T113 圆弧12 T113→T114 圆弧13 T114→S2 圆弧14 S2→T32 圆弧15 T32→T54 圆弧16 T54→O 总路程
14
224.4994 9.2522 230.0239 15.7073 236.5184 6.6986 96.9543 5.4894 103.0155 20.7680 162.3420 1.1451 97.9790 2.0135 60 5.9200 119.163 5.9291 130 13.5462 94.4673 38.3383 7.1911 80 11.8013 196.7232 12.6136 135.6466 13.6802 318.4337 8.5852 237.4861 2701.932
所以,最短路径:
O→T52→A→T73→T81→B→T83→T91→T94→T102→T103→C→T113→T114→S2→T32→T54→O的总长度为2701.932
5.2问题二(求解最短时间路径) 5.2.1 模型的建立
由问题1可知从O→A的最短路径为O→5(左上角)→A,当速度一定时,时间与路程成正比,因此只需先在最短路径上方画出安全行走范围,在安全范围内对转弯半径讨论即可得到行走时间最短的转弯半径。
为了求出安全行走范围,以5号障碍物左上角为圆心,半径R需要满足:(1)最小转弯半径R=10;(2)最大转弯半径必须保证机器人在6号障碍物右下角的安全行走。
通过分析,如图所示,只要保证机器人在酒红色区域行走即可,通过计算可知最大转弯半径为55.0824。所以,机器人以5号障碍物左上角顶点为圆心,在半径为[10,55.0824]区域内行走是安全的,在这个范围内可以找到最短时间路径。
设机器人转弯半径为r,以5号障碍物左上角点F为圆心,设A点与O点与圆F相切与E、D两点,根据几何关系可以求得OD,AE,DE弧的长度分别为:
dOD?(90?
421214r2?r50500?r2)2?(210?r2?r50500?r2)22525505050502525119911r2?r56500?r2)2?(?90?r2?r56500?r2)2825565056502825dAE?(?220?
dDE?r(??arccos(?1?115639((r2?r56500?r2?22853255650211641114r50500?r2)2?(r2?r56500?r2?r50500?r2)2)))505028532528252525
所以
T?因此该问题的模型为: minT s.t10?r?55.0824
其中,直线行走速度 v1?5m/s,转弯速度为
dAD?dOEd?DEv1v2
v2?v11?e10?0.1r
2 15
图11
5.2.2 模型求解
有lingo编程求解该优化模型,程序如下: min=(OE+AF)/5+EF/v;
OE=@sqrt((80-4/2525*r^2-21/5050*r*@sqrt(50500-r^2))^2+(210-21/5050*r^2+4/2525*r*@sqrt(50500-r^2))^2);
AF=@sqrt((-220+11/2825*r^2-9/5650*r*@sqrt(50500-r^2))^2+(-90+9/5650*r^2+11/2825*r*@sqrt(50500-r^2))^2);
EF=r*(3.1415926-@acos(-1+1/2*((1563/285325*r^2-9*r/5650*@sqrt(56500-r^2)+21*r/5050*@sqrt(50500-r^2))^2+(1641/285325*r^2+11*r/2825*@sqrt(56500-r^2)-4*r/2525*@sqrt(50500-r^2))^2)/r^2));
v=5/(1+@exp(10-0.1*r^2)); r>=10;
r<=55.0824; L=OE+AF+EF;
解得O?A的最短时间路径总时间为94.55895(秒),对应的转弯半径为r?11.50617,总距离为472.3807
16
6 模型的评价与改进
本文对机器人避障移动模式进行探讨,并给出了分别基于最小路径以及最小时间规则的优化路径。
本题主要研究机器人的避障行走问题,根据要求的机器人行走的转向方式,分析得出机器人从起点到目标点行走的最短路径的方法基本图形为线性和弧形的组合。在本题中存在的障碍物的不可行走区域为在拐点处的半径为10个单位的圆弧。利用穷举法,以最短路径为目标,将可能的行走路径列出,利用平面几何的知识以及求导原理,建立计算模型最终得出机器人行走路程的距离,在目标路径中选择最短的路径,得到最优解也即是最终求得的最短路径。在此过程中,利用CAD方法求得的路径长度是精确的,减少了工作量,提高了计算速度。
机器人避障问题的研究是人工智能,自动化控制,以及传感技术的多个领域研究成果的综合,在工业,农业,服务业等多个领域得到广泛的应用。本文的机器人避障问题的研究,在进行侦探,军事,搜救,病人监护等特殊场合的运用有着不可忽视的作用,对日后的避障能力在更高层次领域的运用起到了铺垫作用,具有较好推广前景。然而,在所给的12个障碍物,按照绘制最短路径的原则进行穷举是有限的,也是可行的,但是,当障碍物的个数不断增加,求得最短路径的方法可能会随之改变,而且利用穷举法求得最短路径的方法也是不可行的,在经济中也是不具有可行性,因此模型的推广面会受到影响。
参考文献
[1] 邹益民,高阳,高碧悦, 一种基于Dijkstra算法的机器人避障问题路径规划,数学
的实践与认识,第43卷第10期,2013
[2] 钟秋平,机器人避障优化模型,大众科技,第14卷160期,2012.
[3] 谢金星,优化模型与LINGO/LINGO软件[M],北京,清华大学出版社,2005. [4] 李磊,叶涛等.移动机器人技术研究与未来 [J].机器人,2005.24(5):475-477 [4] 霍迎辉,张连明,杨宜民.移动机器人路径规划的最短切线路径算法[J].自动化与信息工程,2003(1):10-12
[5] 邹益民,高阳,高碧悦, 一种基于Dijkstra算法的机器人避障问题路径规划,数学的实践与认识,第43卷第10期,2013
17