数学建模机器人避障论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
承诺书
我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.
我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。
我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。
我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。如有违反竞赛规则的行为,我们将受到严肃处理。
我们参赛选择的题号是(从A/B/C/D中选择一项填写):
我们的参赛报名号为(如果赛区设置报名号的话):
所属学校(请填写完整的全名):
参赛队员(打印并签名) :1.
2.
3.
指导教师或指导教师组负责人(打印并签名):
日期:年月日
编号专用页
赛区评阅编号(由赛区组委会评阅前进行编号):
赛区评阅记录(可供赛区评阅时使用):
评
阅
人
评
分
备
注
全国统一编号(由赛区组委会送交全国前编号):
全国评阅编号(由全国组委会评阅前进行编号):
机器人避障问题
摘要
针对题中机器人避障最短路径问题,文章使用简化后建立的最短路径的数学模型来解决此类问题。
对于问题1,我们matlab中自带函数graphshortestpath函数求解最短路径的数学模型。其主要思想是:首先先证明出两点之间的最短路径是由两条线段和以中间点为圆心的圆的一段圆弧组成,然后证明圆弧的半径为定值10。然后对模型简化使模型化为标准的最短路径模型,最后用graphshortestpath函数对模型求解。
针对问题2,我们建立了优化模型。在问题1的基础上,我们对两种行走方案进行分析,根据转弯弧的半径变化对速度的影响我们锁定到一条路径,然后利用lingo对优化模型进行求解。
关键词:graphshortestpath函数、最短路径、避障问题
1、问题重述
已知:在下图中原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动。图中有12个区域是机器人不能与之发生碰撞的障碍物。在机器人的行走中,要求机器人行走路径只能是以下两种:由与直线路径相切的一段圆弧组成、由两个或多个相切的圆弧路径组成。不能沿着折线转弯。转弯的圆弧半径最小为10个单位,并且机器人与障碍物至少距离10个单位。在速度方面,机器人直线行走的最大速度为50=v 个单位/秒。机器人转弯的最大转弯速度为2
1.0100
e
1)(ρρ-+=
=v v v ,其中ρ是转弯半径。
问题1:求机器人从O(0, 0)出发,O→A 、O→B 、O→C 和O→A→B→C→O 的最短路径。
问题2:求机器人从O (0, 0)出发,到达A 的最短时间路径。
2、模型假设
1、假设机器人抽象成点来分析
2、假设机器人在改变路径时能在瞬间将速度调整过来
3、符号说明
符号 符号说明
T
θ L V 0V R
机器人达到目的地所用的时间 转弯角度 转弯的弧长 转弯速度
直线行走最大速度
转弯圆弧的半径
4、 模型的建立与求解
4.1 首先证明以下猜想:两点之间若间隔有障碍物,两点之间的最短路径是由两部分
组成。第一部分是自然最短直线段,第二部分是限定部分的边界弧。这两部分是相切并且互相连接的。
证明:如图A,B 两点,它们之间有一个半径为1的半圆形障碍物。现在要求出A 到B 的最短路径。
分析1:
两点之间的最短路径应是连接两点的线段,但是由于障碍物的存在,现在改为绕过障碍物的折线(用于证明方便),设动点C 点坐标设为(0,y ),折线ACB 的长度为
222y a +,当c 点竖直向下移动时,折线ACB 的长度会减小,当C 点移动到C1(0,
y1)点时ACB 的长度最小,最小长度为2
122y a +。其中C1是过点A,B 与圆弧相切的切线交点。
又由于满足0<α<
2
π
的角满足α 分析2: 当考虑从A 到B 的路径全为圆弧线段组成时,如图A 到B 的弧线。假设a=2,则这段弧线所对应的圆为经过A(-2,0),B(2,0),(0,1)三点的圆的一部分。此圆的一般 方程为:4 25 )23(22=++y x ,则这段圆弧路径的长度为2π。若用分析1中的折线与弧 线相交并相切的方法计算,路径长度为3 32π +≈4.51小于圆弧方案的长度。 综上所述,方案AEFB 满足题中最短路径的要求。 4.2 切线和弧线的公式推导 如图,在4.1的基础上用解析几何方法计算出两条切线和一段圆弧的长度。 假设起点终点为A (x1,y1)和C (x3,y3),障碍物的顶点为B(x2,y2),D,E 为两条线段与圆弧的切点,圆弧的半径为10个单位。现在求解线段AD ,CE 及圆弧DE 的长度。 因为三角形ABD 和CBE 是直角三角形,我们可以利用余弦函数来解出∠DBA 和∠EBC 。 COS ∠DBA= AB DB =212212)()(10 y y x x -+-,① COS ∠EBC= BC BE =232232) ()(10 y y x x -+-,② 然后再利用余弦定理在三角形ABC 中找出与∠ABC 有关系的等式, COS ∠ABC=BC AB AC BC AB ⨯⨯-+22 22,③ 由①②③三式再根据周角为2π可以解出角DBE 的弧度数,由于后面编程需要,需 要将弧度数转化成角度数,利用公式180π⨯=弧度角度,然后再利用公式180 n r π=弧长求 得弧DE 的长度。而对于线段AD,CE ,我们可以直接根据勾股定理可以求得具体长度。程序见附件1。 4.3 模型简化 模型的中心思想是利用Dijkstra 算法来求解出最短路径的方案,由于两点间路径是由线段和弧线组成的,为了化为标准的最短路径模型,需要将模型进行简化。 在这里以4.2的模型基础上进行示范。首先令A,B,C 分别为起点、中间点、末点。 我们将路线ADEC 分成两个部分,第一部分是线段AD 和弧线DE 组成的,第二部分是线段EC 。又由于弧线的长度会随着末点的变化而变化,所以我们取弧线的平均值作为弧线DE 的长度。第一部分表示起点到中间点的距离。 在本题中主要不是如4.2中的简单模型。现在以下图模型进行进一步说明。