版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 机器人避障问题 摘 要:当今科学技术日益发达,高科技产品尤其是机器人在我们日常生活中运用的越来越广泛,它能够代替人类完成许许多多的工作,但如何能让机器人自动化的完成人类交给的任务成为设计机器人的关键。我们做此题就是为了更好的利用机器人为我们提供方便,提高生活质量,若机器人程序设计不当不仅不会给人类带来方便,还很有可能给我们的生活带来更多的麻烦。本题中提出了如何让机器人能够自动识别障碍物,保证机器人能够在合理区域行走,并设计出如何能让机器人自动判断最短路程于最短时间下行走路线的问题。所以解决好本题可以为我们的生活提供帮助。本文通过运用两点之间直线最短理论,优化问题,最短路问题,图论,以及运用m
2、atlab软件编程及作图的方法,阐述了机器人避障问题的相对优化方案的解决办法,即“两点之间直线最好,转弯半径最小”的理论,通过计算中的比较与选择把四条最短路径都求出了相对最优解,论证了转弯速度不会随着r的增加一直增大或减小,而是有一个最小极点的思想。从而求出了r,以及最短的时间。 问题一,通过对最短路问题的分析,我们很容易分解成线圆结构来求解,然后把可能路径的最短路径采用穷举法列举出来,最终得出最短路径:O A 最短路径为:471.0372O B 最短路径为:838.0466O C 最短路径为:1085.7531OABCO 最短路径为:2834.6591问题二,通过建立时间t与r的关系式,得出
3、r在11.504时,从O到A的时间相对最短,最短时间为98.606004。 我们可以利用此篇论文解决生活中实际的问题,在计算时可以节省大量的时间,使机器人又准确又完善的完成我们给定的任务,从而进行拓展,给定区域内任何两个点,我们都可求出其最短路径和走完全程的最快时间。从而可以让机器人帮助我们给家里打扫卫生或设计自动吸尘器等,也可使机器人在最短的时间完成工作,提高效率,延长机器人的使用寿命。关键字:最短路问题 优化问题 matlab 一 问题重述 随着现代科学技术日新月异的发展,机器人越来越多的出现在日常生活中,它既可以通过运行预先编排的程序为人类服务,根据人工智能程序自动处理一些生活中问题,进
4、而协助或者相应地取代人类的工作,可以说机器人的创新与改进正一步步影响着人类的发展。如图1所示,该图是一个800×800的平面场景图,在原点O(0,0)点处有一个机器人,它只能在该平面范围内活动。机器人在活动中不能碰到障碍物及其向外延伸10个单位的区域,障碍物由12个不同形状的图形组成,障碍物的数学描述如下表:编号障碍物名称左下顶点坐标其它特性描述1正方形(300, 400)边长2002圆形圆心坐标(550, 450),半径703平行四边形(360, 240)底边长140,左上顶点坐标(400, 330)4三角形(280, 100)上顶点坐标(345, 210),右下顶点坐标(410,
5、 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正方形(540, 600)边长13011正方形(640, 520)边长8012长方形(500, 140)长300,宽60在图1中,在障碍物外指定一点为机器人要到达的目标点,机器人的行走路线由直线和与直线相切的圆弧组成,也可以由两条及以上圆弧组成。机器人不能折线转弯,必须经过与直线相切的圆弧转弯。每条圆
6、弧的直径不小于10个单位。机器人直线行走的最大速度为个单位/秒。机器人转弯时,最大转弯速度为,其中是转弯半径。如果超过该速度,机器人将发生侧翻,无法完成行走。要解决机器人从区域中一点到达另一点的避障最短路径和最短时间路径,请建立数学模型,以达到最短路径和时间。对场景图中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的最短时间路径。注:要给出路径中每段直线段或圆弧的起点和终点坐标、圆弧的圆心坐标以及机器人行走的总距离和总
7、时间。 图1二 问题分析2.1问题一问题一中要求机器人从O(0,0)出发,按照上述规则求绕过障碍物到达目标点的最短路径,我们可以先设想机器人所走过的路径的各种情况。通过设想然后采用两点之间直线最短的原理寻找可能的最短路径(比如求O和A之间的最短路径,我们就可以连接O和A,发现OA的对角线在OA的下方,所以从OA对角线的上方行走比下方距离短。在第一问求路径最短时尽量少走圆弧,所以在可能的情况下拐弯时最好走10为半径的圆弧)。之后采用穷举法列出O到每个目标点的可能路径的最短路径,最短路径由圆弧和直线组成,求出圆弧和直线的长就能求得路径,通过建立优化模型可求出最短路径。进而联立切线和圆的方程组及运用
8、matlab软件求出各点坐标。 2.2问题二问题二需要求O到A的最短时间,这让我们考虑的就不仅仅是路长的问题,还有了速度的问题。已知公式和得出直线比转弯的速度快且转弯速度与圆弧半径有关。我们可通过建立路程和速度的关系方程 求得时间的最优解。 三 模型假设1、 假设机器人能够抽象成点来处理。 2、 假设机器人能完整的走到终点,中途不会发生故障。3、 假设机器人在离路障10个单位处不会发生故障,可以正常行走。四 符号说明 符号符号解释切 点:表示5号图形包络线上的点. i=1,2,3E:表示6号图形包络线上的点 i=1,2,3,4Fi:表示7号图形包络线上的点 i=1,2,3,4,5Gi:表示8号
9、图形包络线上的点 i=1,2,3,4Hi:表示9号图形包络线上的点 i=1,2,3,4Ii:表示10号图形包络线上的点 i=1,2,3,4Ji:表示11号图形包络线上的点 i=1,2,3,4Ki:表示2号图形包络线上的点 i=1,2Li:表示3号图形包络线上的点 i=1,2五 模型建立5.1证明点到直线距离最短理论在最短路问题中起重要作用通过起点与终点的连线,判断哪边路径离这条连线距离较近,进而选择出最优路径。如果中间有较多路障的话也可采取分步判断的方法,判断由较近路障附近的点决定。如图二,求O到A最短路径。正方形对角线为BC,EE,DD分别为E,D到OA的距离,显然EE< DD,所以从
10、OA的上方通过为最短路径。 5.2基本模型求路径(1题)5.2.1线圆模型已知O(x1,y1)为起点,B(x2,y2)为目标点,D(x3,y3)和E(x4,y4)分别为机器人经过拐点分别于隔离危险线拐角小圆弧的切点,圆心为O1(x5,y5),圆的半径为r,OB的长度为a,OO1的长度为b,BO1的长度为c,角度 ,.通过余弦定理可算出,弧长=圆心角*r,可求出OB的长度。由此解法在matlab编程,可求出已知起点与终点及圆心和半径的所有最短路(见附录10.1) 5.2.2相交切线模型当两圆半径相同时,由于半径已知以及K(x1,y1),M(x2,y2),L(x3,y3)我们很容易求得L点的坐标已
11、知后用上述线圆模型即可求出弧长当两圆半径不同时,根据半径比值可算出斜边比值,斜边端点已知,即可求出H坐标,再利用附录10.1求解可得。5.2.3平行切线模型当两圆半径相同时,其中已知O1(x1,y1)O2(x2,y2),P(x3,y3),半径已知,所以切线方程为再利用matlab运算出弧长(详见附录10.1)当两圆半径不同时,两圆心斜率k可知,=a,切线斜率再利用上述方程式即可求得C,切线方程与圆联立方程即可求得切点(见附录10.2和10.3),再用线圆模型即可求出路径。5.3基本模型求拐点(1题)已知条件为O(x1,y1)O1(x2,y2)DO1=r设D(x,y),由于两直线垂直即有D点在圆
12、上,与圆的方程联立即可求出D点。此处先运用matlab中expand函数将方程式化解成多项式形式,再用solve函数求出方程的根即D点坐标。(详见附录10.2和10.3)5.3时间模型的建立(2题) 根据线圆模型我们可以知道:若一个机器人穿过的圆弧所在圆的半径已知,则机器人行走的路程就是可求得。由于机器人在转弯时的速度是关于半径(r)的函数,再根据“时间(T)=路程(S)/速度(V)”,我们可以求出时间(T)关于半径(r)的函数关系式。已知直线行走的速度和转弯行走速度的关系式,可以建立一个自变量为r的关于时间的函数,通过求导让函数值等于0,可以得出r的解,从而确定最短时间。我们根据对前面路程的
13、求解,可以判断机器人在转弯时所走的弧形路程相对于直线路程是很小的,那么我们可以断定:当机器人以最短的时间走到目标点时,它所经过的路线与它以最短的路程所走的路线大致一样。求函数表达式具体过程:如图:已知O(x1,y1) B=(x2,y2) O1=(x3,y3),点D,点E分别为圆的切点, 设圆的半径为r,求出O-àB的时间。求解过程:L12=(x2-x1)2+(y2-x1)2L22=(x3-x2)2+(y3-y22L32=(x3-x1)2+(y3-y1)2设O, O1,B为a, D,O1,O为b,E,O1,B为c,cos(a) =(L32- L22- L12)/2*L1*L2a=arc
14、cos(L32- L22- L12)/2*L1*L2b=arccos(r/L1)c=arcos(r/L2)弧长DE=r*(2*pi-a-b-c)V=v0/5*(1+e(10-0.12)时间T1=(L12-r2)(1/2)/v0 T2=(L22-r2)(1/2)/v0 T3=弧长DE/VTzong=T1+T2+T3 在求出时间关于半径的方程后,我们可数值解法求解最短时间。我们知道半径的大小影响了时间的长短,半径的长度是大于10的实数,我们可以先让自变量(半径)比较大范围的有序变化(因为自变量的范围不大),求出对应的时间。再观察时间随半径变化的规律,得出最短时间时所对应的时间,就可以确定最短时间就
15、在所得时间点的附件摆动。为了能更精确的求出最短时间,我们继续以比上次取值小的值在所求的点的附近做有序的加减。以此类推,经过多轮对时间的取值,就可以解出比较精确的解。六、模型求解6.1.1 O A的最短距离如图:D1(70.5060,213.1406)D2(76.6064,219.4066)弧OA的长等于两条切线(OD1,D2A)与弧(D1,D2)的和通过用matlab计算可知:l OA的最短距离为471.03726.1.2 O B的最短距离l 如图E1(50.1353,301.6396)E2(52.198,306.252)E3(142.198,441.252)E4(147.709,444.73
16、3)F1(222.29,406.264)F2(230,470)F3(230,530)F4(225.4967,538.3538)G1(144.5033,591.6462)G2(140.6916,596.3458)同理如上,通过用matlab计算可知:O B的最短距离为838.04666.1.3 OC的最短距离 如图D1(70.5060,213.1406) D3(75.736,219.044)L1(395.798,339.055)L2(397.709,339.736)K1(568.331,372.115)K2(600.019,387.588)J1(727.7178,710.2822)J2(730,
17、600)J3(730,520)J4(727.802,606.252)同理如上,通过用matlab计算可知:O_C的最短距离为1085.7531如图G3(270.5862,689.9828)G4(272,689.7980)H1(368.8934,670.0614)H2(370,670)H3(430,670)H4(435.5878,671.7068)I1(534.4122,738.2932)I2(540,740)I3(670,740)I4(679.7673,732.1447)F5(229.4472,533.2789)同理如上,通过用matlab计算可知:A B的最短距离为454.3989 B C的
18、最短距离为823.4609 O A B C O的最短距离为2834.65916.2问题二的求解:如图:已知:坐标点O(0,0),A(300 ,300),O1(80,210)根据上面模型,将三点的坐标分别代入,我们可以得到半径(r)关于时间(t)的方程:根据上面算出的方程,表示如图注:左右下图的均纵轴为5倍的时间t,为了便于比较不同时间下时间的大小。当时间t取值为10,11,12,13,14时,由图可以看到r=12时,时间5*t为最小,故而判断精确值在12的附近。 表图示中在半径r=11.5时,时间最短。图示中r=11 .505时, 时间最短 当半径r=11.5045时,时间最短 上图为给半径r
19、规律性赋值的过程解得:半径(r)=11.504时,最短时间(t)=98606004 。七、模型推广7.1 问题深入分析 在本题中有十二个障碍物,按照线圆结构画出从起点到达目标点的路径是有限的,我们完全可以采用穷举法把这些路径列出来,然后比较大小取最小者即可,但是我们可以设想如果这个区域内有n个障碍物,那么按照线圆结构从起点到达目标点的可能路径就有无数多条,这时我们如果再采用穷举法是不现实的。所以我们必须寻求新的算法来解决这个问题。 由上述分析我们有了这样一个想法:先求出所有的切线,包括出发点和目标点到所有圆弧的切线以及所有圆弧与圆弧之间的切线,然后把这且曲线看成是图6.11中的,给这些定点赋一
20、个等于切线长度的权值,如果某两条切线有一个公切圆弧,则代表这两条曲线的顶点是一条直线的两个端点,边上的权值等于这两条切线之间的劣弧长度。然后在这张图中加一个源点和终点,那么在所有代表出发点与其它圆弧之间切线的顶点与源点连成一条边,权值均为0,同理在所有代表目标点到其它圆弧切线的顶点与终点连成一条边,权值均为0,这样题目就转化成了求源点到达终点之间的最短路径问题了,这里最短路径就是指经过所有顶点与边的权值之和最小。我们可以采用Dijkstra算法进行求解。7.2 模型的进一步求解 根据6.1的分析,在有若干个障碍物的区域中,我们把按照线圆结构画出从出发点到目标点的路径图依据6.1中的想法转换成了
21、下面这张图,图中的A和G点就是添加的源点和终点,其它节点均是出发点和目标点到圆弧的切线和圆弧与圆弧之间的切线转化而成,依据Dijkstra算法求得最短路径。八 模型评价8.1模型优点 (1)在本题中,我们对该模型进行优化是通过一些指标进行评判的,具有相对的客观性和一般性;(2)在构造数学模型时我们给出了客观的理由和数据,避免了过分的主观判断;(3)本文利用枚举和数学编程的方法,将定性问题定量化,运用多个方案对路径进行优化,在相对优化之中取得最优解,最后达到题目所要求的最优解; (4)该模型可以解决日常生活中机器人的基本避障问题,使得机器人在工业,医学,建筑,军事等领域发挥应有的基本作用; 8.
22、2模型缺点(1)由于分析时间限制和能力水平有限,加上计算量大且复杂,得到的不一定是最佳结果。(2)题中所涉及的各项比较、判断直到结果的得出都是粗糙的,不适用于精度要求很高的问题。(3)在障碍物较多时形状不规则时,模型需要进一步改进。(4)不可避免的具有主观性。 九 参考文献1 冯俊, 数据结构, 北京: 清华大学出版社, 20072 邦迪,图论及其应用,西安:西安科学出版社, 19843 刘来福,数学模型与数学建模,北京:北京师范大学出版社, 20115 赵东方,数学模型与计算, 北京:科学出版社, 2007十 附录本题的计算量较大,我们用matlab软件来解决此问题10.1该程序用于解决已知起点,终点,相切圆圆心,可以求得起点到终点的最短
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐院校琴行教师录用协议
- 设计公司美缝施工合同
- 云计算公司高管聘用合同
- 园林景观苗木采购施工合同
- 会计师事务所签约会计协议书
- 地热能开发坑内探矿施工协议
- 转口贸易合同中质量保证条款
- 矿山开采设备招标跟踪
- 电梯安全服务质量准则
- 《卓越机械网站》课件
- DL-T-298-2011发电机定子绕组端部电晕检测与评定导则
- 全球及中国机器人水果采摘机行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告(2024-2030)
- 陕西行政执法资格考试题题库及答案完整
- 咖啡的微观世界智慧树知到期末考试答案章节答案2024年成都师范学院
- DZ/T 0462.9-2023 矿产资源“三率”指标要求 第9部分:盐湖和盐类矿产(正式版)
- 小学生普法教育完整课件
- 60岁以上用工免责协议
- (“双减”作业案例)“鱼米之乡”-一长江三角洲地区(第一课时)
- 湘教版中考地理一轮复习:八年级上、下册知识点考点背诵提纲
- 《化学制药技术》课件-国内外化学制药发展趋势
- 小收纳 大世界-整+理与收纳智慧树知到期末考试答案章节答案2024年黑龙江幼儿师范高等专科学校
评论
0/150
提交评论