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

合集下载

行走机器人避障题数学建模

行走机器人避障题数学建模

AE +FB< AC1B ,记线段 AE、弧度 EF、线段 FB 为 AEFB,那么 AEFB 比任何折线
路径都短。 下面在考察一条不穿过障碍物的任何一条路径,设其分别于 OE 和 OF 的延长
线交与 P、Q 两点,记 A 和 P 之间的路径长度为 ,显然 >|AP|,又由 AE EO,
所以|AP|>AE,从而 >AE,同理可得 >BF。
问题一,我们很容易分解成线圆结构来求解,然后把可能路径的最短路径采 用穷举法列举出来,最终得出最短路径:
R A 最短路径为:70.5076 R B 最短路径为:107.9587 R C 最短路径为:102.0514 问题二,我们方案都进行优化,求得最终结果: 第一种方案最短路径为:156.471 第二种方案最短路径为:157.752
5
证明:假设在平面中有 A(a,0)和 B(-a,0)两点,中间有一个半圆形的 障碍物,证明从 A 到 B 的最路径为 A B。
平面上连接两点最短的路径是通过这两点的直线段,但是连接两点的线段于障碍 物相交,所以设法尝试折线路径。在 y 轴上取一点 C(0,y),若 y 适当大,则 折线 ACB 与障碍物不相交,折线 ACB 的长度为:
图 5.31
证明猜想: 如图 4.31 所示,E 点就是圆环上的一个顶点,A B 就是拉紧的绳子,O2 就
是切线 AC 和 BD 的延长线的交点,证明 O1 、E、 O2 三点共线。 我们可以用力学的知识进行证明,因为是拉紧的绳子,所以两边的绳子拉力
相等,设为 F ,它们的合力设为 F0 ,定点对圆环的作用力设为 F1 。 那么由几何学的知识我们可以知道 F0 一定与 O1O2 共线,而又由力的平衡条
|ACB | 2 a2 +y2

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

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

v1.0 可编辑可修改机器人避障问题的解题分析摘要:本文对2012年全国大学生数学建模竞赛D题机器人避障问题进行了全面分析,对最短路的设计进行了理论分析和证明,建立了机器人避障最短路径的几何模型,对最短时间路径问题通过建立非线性规划模型,有效地解决了转弯半径、圆弧圆心位置和行走时间等问题。

关键词:机器人避障;最短路径;Dijkstra算法;几何模型;非线性规划模型1 引言随着科学技术的进步和计算机技术的发展,机器人的应用越来越广泛,在机器人的应用中如何使机器人在其工作范围内为完成一项特定的任务寻找一条安全高效的行走路径,是人工智能领域的一个重要问题。

本文主要针对在一个场景中的各种静态障碍物,研究机器人绕过障碍物到达指定目的地的最短路径问题和最短时间问题。

本文以2012年“高教社”杯全国大学生数学建模竞赛D题“机器人避障问题”为例进行研究。

假设机器人的工作范围为800×800的平面正方形区域(如图1),其中有12个不同形状的静态障碍物,障碍物的数学描述(如表1):图1 800×800平面场景图表1在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动,机器人不能与障碍物发生碰撞,障碍物外指定一点为机器人要到达的目标点。

规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。

机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。

为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。

机器人直线行走的最大速度为50=v 个单位/秒。

机器人转弯时,最大转弯速度为21.0100e1)(ρρ-+==v v v (ρ是转弯半径)。

如果超过该速度,机器人将发生侧翻,无法完成行走。

场景图中有4个目标点O(0, 0),A(300, 300),B(100, 700),C(700, 640),下面我们将研究机器人从O(0, 0)出发,求O→A、O→B、O→C和O→A→B→C→O的最短路径,以及机器人从O(0, 0)出发,到达A的最短时间路径问题。

机器人避障问题

机器人避障问题

机器人避障问题Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998机器人避障问题摘要本文研究了在一个800800⨯平面场景里,机器人通过直线和圆弧转弯,绕过障碍物,到达目标点的问题,解决了到达目标点路径最短,以及到达A 点时间最短的问题。

文章将路径划分为若干个这种线圆结构来求解。

对于途中经过节点的再到达目标点的状况,我们采用了在拐点和节点最小转弯半径的形式.问题一,将其分解成圆线结构进行求解,利用枚举法将最短路径表示出来,结果是:O A →的距离是O →B 的距离是O →C 的距离是O →A →B →C →O关键词:最短路径 最短时间 几何应用 最优化问题一 问题重述机器人从指定点到达的目标点,其行走路径由直线段和圆弧组成。

机器人转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。

同时要求机器人行走线路与障碍物间的最近距离为10个单位,机器人直线行走的最大速度为50=v 个单位/秒。

机器人转弯时,最大转弯速度为21.0100e 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 的最短时间路径。

并要求给出路径中每段直线段或圆弧的起点和终点坐标、圆弧的圆心坐标以及机器人行走的总距离和总时间。

二、问题分析1.问题一要求从起始点o 绕过障碍物到达目标点,并且与障碍物最小距离为10,拐弯半径越小,走的路线越接近直线,在拐弯处画一个以拐点为圆心,半径为10的圆,这样我们就可以从起始点出发,分别做圆的切线,直到终点。

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

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

机器人避障问题的解题分析摘要:本文对2012年全国大学生数学建模竞赛D题机器人避障问题进行了全面分析,对最短路的设计进行了理论分析和证明,建立了机器人避障最短路径的几何模型,对最短时间路径问题通过建立非线性规划模型,有效地解决了转弯半径、圆弧圆心位置和行走时间等问题。

关键词:机器人避障;最短路径;Dijkstra算法;几何模型;非线性规划模型1 引言随着科学技术的进步和计算机技术的发展,机器人的应用越来越广泛,在机器人的应用中如何使机器人在其工作范围内为完成一项特定的任务寻找一条安全高效的行走路径,是人工智能领域的一个重要问题。

本文主要针对在一个场景中的各种静态障碍物,研究机器人绕过障碍物到达指定目的地的最短路径问题和最短时间问题。

本文以2012年“高教社”杯全国大学生数学建模竞赛D题“机器人避障问题”为例进行研究。

假设机器人的工作范围为800×800的平面正方形区域(如图1),其中有12个不同形状的静态障碍物,障碍物的数学描述(如表1):图1 800×800平面场景图表1在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动,机器人不能与障碍物发生碰撞,障碍物外指定一点为机器人要到达的目标点。

规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。

机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。

为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。

机器人直线行走的最大速度为50=v 个单位/秒。

机器人转弯时,最大转弯速度为21.0100e1)(ρρ-+==v v v (ρ是转弯半径)。

如果超过该速度,机器人将发生侧翻,无法完成行走。

场景图中有4个目标点O(0, 0),A(300, 300),B(100, 700),C(700, 640),下面我们将研究机器人从O(0, 0)出发,求O→A、O→B、O→C和O→A→B→C→O的最短路径,以及机器人从O(0, 0)出发,到达A 的最短时间路径问题。

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

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

机器人避障问题摘要本文主要运用直线逼近法等规律来解决机器人避障问题.对于问题一:要求最短路径运用直线逼近法证得圆弧角三角形定理,得出结论:若一大圆弧角三角形完全包括另一小圆弧角三角形,则该三角形曲线周长必大于小的三角形周长.那么可知机器人在曲线过弯时,选择最小半径可满足路径最短,即为10个单位半径,通过观察可得可能的所有曲线,通过仅考虑直线段的大致筛选选出总长较小、长度相近(之差小于100)的曲线,然后利用平面几何知识对相关切点,进而求出各直线、曲线的长度,求和可得最段路线.对于问题二:通过对机器人过弯规律21.0100e 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.110()(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 过程中,机器人至少要经过一次转弯;因为转弯时的速度一般小于直线行走的最大速度,又由分析指出转弯次数越多,转弯路径越远,转弯所花费的时间也越长.所以可以确定有且只有一次转弯时才存在最短时间路径.就仅考虑只经过一次转弯的情形.3 模型假设1)假设机器人可准确执行运动轨道,无任何偏差;2)假设机器人为一可运动的质点,即质点机器人不考虑其外形尺寸; 3)假设机器人的行进速度可瞬时加减变化,不受条件限制;4)假设机器人可到达边界线而不会发生碰撞,即对边界线不再加10个单位.4 符号说明hij D : 机器人的行走路径上各切点,h 表示路径目的地(A 、B 、C ),i 表示到达h 机器人行走路线的第(1,2,3,)i i = 种方案,j 表示机器人在该路线上所经过的第(1,2,3,)i i = 个点;hij L : 机器人的行走路径上的线段长或弧长,h 、i 、j 同上定义;ij D :机器人的行走路径上的障碍物的顶点,i 、j 同上定义;`hj D :机器人在O A B C O →→→→环道中的各线切点h 、j 同上定义5 模型准备5.1建立机器人运动坐标系:以O 为原点,两对应坐标轴,水平方向为X 轴,垂直方向为Y 轴5.2建立机器人可安全运动到达的区域图:由于保持安全距离10个单位,则机器人的实际可到达到区域应由各障碍物的外延10个单位的区域组成如图所示图5.2.1实线外的空白部分.5.3圆弧角三角形定理:定义1:平面内若两不平行直线所夹的角被一同时与这两条直线相切的圆弧段取代而形成的角,叫做圆弧角.如图5.3.2,称为凸圆弧角(本文主要讨论);如图 5.3.3,称为凹圆弧角.定义2:由有一内角为凸圆弧角的三角形为圆弧角三角形.圆弧角三角形定理:圆弧角`DHD ∠在直线`DD 及上方范围完全包含圆弧角`DGD ∠(即圆弧角DGD ’各边均在圆弧角`DHD ∠的边与线段DD ’所构成的封闭区间内,如图5.3.1所示)时,则有曲线段`DGD 的长度恒小于曲线段`DHD 成立.证明:如图 5.3.1,过圆弧 'EGE的一个端点E 作该圆弧在该点的切线的垂线交曲线DH 于点F ,同样过圆弧 'EGE的另一个端点'E 也作相应的垂线交曲线'D H 于点'F ,两条直线的交点O 显然为圆弧 'EGE 所在圆的圆心. (1),EF DE ⊥ 90DEF ∴∠=︒ ;,DF DE ∴> 曲线段DF DF ≥, ∴曲线段DF DE >.(2)'''',E F D E ⊥ '''90D E F ∴∠=︒;'''',D F D E ∴> 曲线段''''D F D F ≥;∴曲线段''''D F D E >.(3)将''EFF E 分成n 等份(如图5.3.5),每部分(见图5.3.4)中,,(1,,)i i M N i n = 是 MN 与边界的交点.令i i M N 为i M ,i N 两点间直线长度,''i i M N 为`i A ,`i E 两点间直线长度,则圆弧 MN 长度=1lim ni i n i M N →∞=∑,曲线`AE 长度=''1lim ni in i M N →∞=∑又容易证明,''(1,,)i i i i M N M N i n ≤= ,故有''11lim lim n ni i i i n n i i M N M N →∞→∞==≤∑∑ .因此,圆弧 MN长度≤曲线 ''M N 长度. 综合(1)(2)(3)的证明,得曲线段DF +曲线段''D F +曲线 ''M N 长度 > DE +''D E +圆弧 MN长度.结论得证. 6 模型建立与求解该问题要求路径最短,即不要求速度与时间,则可认为过弯半径允许以最小半径10,如图6.1所示.由圆弧角三角形定理可得:本论文问题一求路径最短可采用10单位过弯半径,即以半径为10个单位的圆弧过弯可满足两点避障过弯最短问题.6.1问题一的模型建立与求解:6.1.1:机器人从O(0, 0)出发,O A →的最短路径. 由圆弧角三角形定理可得:采用10单位半径过弯路径最短,解决过弯避障拐角问题采用10单位半径过弯路径.已知机器人所走路线为直线或圆弧,那么通过实际规划可得如下四种避障行进方案:如图6.1.1首先对上述四条路线进行筛选:1)当机器人以一个连续圆弧过弯,即选择路 线二或路线四时,其中路线二:分别过点O A ,和障碍物5的切点23a D (72.74,216.88),则可得过该三点的圆的方程:225406140x y x y ++-=显然当0x =时,y 有不等的两个根,则该路线超出规定场地. 同理路线四的圆方程:22(73.98)(226.02)56558.350x y -+--= (Matlab 求解程序见程序01) 当0y =时,x 有不等的两个根,则该路线也超出规定场地.2)当机器人以直线—圆弧—直线的方式过弯,即有以10单位半径过弯模式的线路一和三:比较线路一与线路三:显然路线一的总长1111213a a a a L L L L =++,线路三的总长3313233a a a a L L L L =++. 解得13471.04498.44a a L L =>=则可知O→A 的最短路径为路线一总长为1471.04a L =,下表5.1.1为线路一的各点的详细参数,表6.1.2为各线的参数.表6.1.26.1.2机器人从O(0, 0)出发,O B →的最短路径由圆弧角三角形定理可得:采用10单位半径过弯路径最短: 通过观察可得如下四种较短的避障行进方案,如图6.1.2:由于方案较多,可预先进行粗略筛选:如图所示:大致统计长度仅包括直线段长度如下表6.1.2线的精确长度:设:11b OD 、1111b D D分别表示O 点到点11b D ,点11b D 到点11D 之间的向量;1111b D D 为11b D 、11D 两点之间的向量的模;()()(),hij hij x y 表示切点hij D 坐标;()()(),ij ij x y 记为障碍物顶点ij D 的坐标;b11L2220(b12)(b11)(b12)(b11)00b12-((x -x )+(y -y ))22=arccos()L ρρρ⨯b13L11(11)(00)(11)(00)(,)b b b OD x x y y =-- ()1 61(61)(00)(61)(00)(,)OD x x y y =--1111(11)(11)(11)(11)(,)b b b D D x x y y =--()2 1111110b b D D OD =()3 1111b D D r =()4联立方程()1()2()3()4解得11b D (50.14,30.64)由于点12b D ,13b D 分别是以点61D ,61D 为圆心r 为半径圆的外公切线切点,所以 由点到直线的距离公式得0ρ= ()50ρ=()6并且线段13126163b b D D D D =()7由于直线13126163b b D D D D 平行直线由斜率相等得(13)(13)(61)(63)(13)(13)(61)(63)b b b b x x x x y y y y --=-- ()8联立方程()5()6()7()8解得点12b D 的坐标(51.6795,305.547)13b D 的坐标(141.68,440.55)线路一和线路二的各段路线及总长分别如下表6.1.2,6.1.3同理可解得各点坐标如下表6.2.4→的最短路径为:O B6.1.3机器人从O(0, 0)出发,O C→的最短路径由圆弧角三角形定理可得:采用10单位半径过弯路径最短:通过观察可得如下避障行进方案,如图6.1.3由于该线路同样较复杂,可通过大致筛选,仅考虑其中的直线段长度.将通过障碍物1上边沿的线路称为上线路,通过下边沿的线路称为下线路1)考虑上线路中最短路径:上线路中如图6.1.3.1分两大段,上半段:线路A、B、C,下半段:线路D、E对上半段的线路进行只计算线段的粗筛选:计算统计可得三线路的粗选长度:如对下半段的线路进行只计算线段的粗筛选: 计算统计可得三线路的粗选长度:如表6.1.62)考虑下线路中最短路径: 如图图6.1.3.2对下线路的线路进行只计算线段的筛选:计算统计可得线路的长度:下表6.1.7为路线一的各段线路总长对于同一条路径上的两个相邻点(),i i x y 、()11,i i x y ++来说,如果这两点之间的路径为直线段时,用通式1L 计算;如果这两点之间的路径为弧线段时,可用通式2L 计算:1L 222011002-((-)(-))22=arccos()i i i i x x y y L ρρρ+++⨯下表6.2.8为路线二的各段线路总长下线路的两段线路对比得:线路一最短为:950.84综合上线段、下线段可得:线路一最短.各切点坐标如下表6.1.9表6.1.96.1.4机器人从O(0, 0)出发,O A B C O →→→→的最短路径 由圆弧角三角形定理可得:采用10单位半径过弯路径最短:6.1.4.1A B →的最短路径求解: 通过实际规划可得如下A B →的避障行进最短方案:如图6.1.4.16.1.4.2B C →的最短路径求解:通过实际规划可得如下A B →的避障行进最短方案:如图6.1.4.1对线路一、二进行大致选可得下表表6.1.10则可知路线一距离最近对于同一条路径上的两个相邻点(),iix y 、()11,i i x y ++来说,如果这两点之间的路径为直线段时,用通式1L 计算;如果这两点之间的路径为弧线段时,可用通式2L 计算:1L 222011002-((-)(-))22=arccos()i i i i x x y y L ρρρ+++⨯6.1.4.3线路经过A 、B 、C 的圆弧处理问题为使经过A 、B 、C 的圆弧路线最短,在A 与相邻切点的连线形成的夹角的平分线,以该角的平分线为基础,在该线上做与点A 相切的半径为10个单位的圆,则此时通过该构造圆与相邻圆弧的切线连接就产生了,进而保证了机器人的圆弧过弯和线路最短. 点A 的圆弧处理结果如图6.1.4.3则综上所述:求得各线短的最短路径,则可计算并统计出线段总长及各切点坐标如下表表6.1.116.2问题二的模型建立与求解:由于O→A 过程中,机器人至少要经过一次转弯;因为转弯时的速度一般小于直线行走的最大速度,又由分析指出转弯次数越多,转弯路径越远,转弯所花费的时间也越长.所以可以确定有且只有一次转弯时才存在最短时间路径.故以下就仅考虑只经过一次转弯的情形.机器人由起点到终点所用时间121255O AOQ Q AQ Q t v →=++,对于每种固定的转弯半径来说,转弯路径所在的圆的圆心与点(80,210)连线垂直平分该转弯路径所在的圆弧时,所得的总路径长度最短.如图6.2.1所示.对于已知条件中的最大转弯速度为21.0100e1)(ρρ-+==v v v ,其中ρ是转弯半径通过matlab 画出其图像,见程序02 如图6.2.2根据图6.1中所示,当1013R ≤<时,v 随R 增加而增加;当13R ≥时,v 已非常趋近于5单位/秒,此时可以看做v 不随R 增加而变化了.于是可以分两种情况解决本问题:1)当13R ≥时,由于O→A 整个过程的平均速度可以达到最大05v =单位/秒,以这样的速度沿最小的路径就可以使到达A 的时间最短.通过问题一中对机器人O→A 最短路径的分析,可知其最小时间路径应在OA 连线左上方区域;同时根据所建立并证明的圆弧角三角形定理可以知道,所得路径的转弯半径应为13个单位(如图6.2.3)1236.1392OQ =, 120.9077Q Q =,2223.1903Q A =,总长度: 1122++471.1296L OQ Q Q Q A == 总时间:1212471.135594.225595O AOQ Q A Q Q L t v →=++===(秒)2)当1013R ≤<时,图6.2取自原题目图中的一部分,其中(0,0)O ,2(80,210)O ,(300,300)A 点的坐标均已给出.1Q 、2Q 分别为OQ1和OQ2与1O 的切点,其中1O 又与2O 相切于3Q 点.假设半径R 已知,1O 、1Q 、2Q 、3Q 的坐标分别为00(,)x y 、11(,)x y 、22(,)x y 、33(,)x y ,则可列出如下方程组:2221010()()x x y y R -+-= 2222020()()x x y y R -+-= 2223030()()x x y y R -+-= 22233(80)(210)10x y -+-=21302130()()()()0x x x x y y y y --+--=310302108080y y y x x --=-- 110110()()0x x x y y y ⨯-+⨯-=202202()(300)()(300)0x x x y y y --+--=分别取R =10,11,12,13并解方程组可以得到总时间t 随转弯半径R 变化的数据,根据弧长公式得12Q Q AR =, A = 最终计算数据如下表:6.2.1最终会趋于94.22秒.因此,可以确定出最短时间路径.经过以上两种情况的讨论,可得最短时间路径, 具体坐标信息见表6.2.27 模型的评价与推广7.1优点:1)该模型采用较准确的及计算方法,数据精度高,可信度高. 2)该模型定义了新的几何名词与定理.具有一定的创新性. 3)利用估算法减少了计算量. 7.2缺点:程序利用率和执行率较低,计算量较大. 7.3应用与推广:自动控制技术 智能机器人技术 避障快速救援项目8参考文献[1]姜启源谢金星,数学建模,北京:高等教育出版社,2003[2]薛毅,数学建模基础,北京:北京工业大学出版社,2004[3]杨启帆方道元,数学建模,浙江,浙江大学出版社,19999附录程序01%三点确定圆方程%三点坐标x1=input('请输入x1=');y1=input('请输入y1=');x2=input('请输入x2=');y2=input('请输入y2=');x3=input('请输入x3=');y3=input('请输入y3=');if((y1==y2)&(y2==y3))disp('三点不构成圆!');elseif((y1~=y2)&(y2~=y3))k1=(x2-x1)/(y2-y1);k2=(x3-x2)/(y3-y2);endif(k1==k2)disp('三点不构成圆!');enda=2*(x2-x1);b=2*(y2-y1);c=x2*x2+y2*y2-x1*x1-y1*y1;d=2*(x3-x2);e=2*(y3-y2);f=x3*x3+y3*y3-x2*x2-y2*y2;disp('圆心为::');x=(b*f-e*c)/(b*d-e*a)y=(d*c-a*f)/(b*d-e*a)disp('半径为::');r=sqrt((x-x1)*(x-x1)+(y-y1)*(y-y1))利用参考文献:/thread-790618-1-1.html/求助已知3点怎么用MATLAB编程求圆的方程/参考程序程序02function plot_v_rr=0:0.5:20;v=5./(1+exp(10-0.1*r.^2));plot(r,v)grid on。

数学建模机器人避障论文

数学建模机器人避障论文

承诺书我们仔细阅读了中国大学生数学建模竞赛的竞赛规则.我们完全明白,在竞赛开始后参赛队员不能以任何方式(包括电话、电子邮件、网上咨询等)与队外的任何人(包括指导教师)研究、讨论与赛题有关的问题。

我们知道,抄袭别人的成果是违反竞赛规则的, 如果引用别人的成果或其他公开的资料(包括网上查到的资料),必须按照规定的参考文献的表述方式在正文引用处和参考文献中明确列出。

我们郑重承诺,严格遵守竞赛规则,以保证竞赛的公正、公平性。

如有违反竞赛规则的行为,我们将受到严肃处理。

我们参赛选择的题号是(从A/B/C/D中选择一项填写):我们的参赛报名号为(如果赛区设置报名号的话):所属学校(请填写完整的全名):参赛队员(打印并签名) :1.2.3.指导教师或指导教师组负责人(打印并签名):日期:年月日编号专用页赛区评阅编号(由赛区组委会评阅前进行编号):赛区评阅记录(可供赛区评阅时使用):评阅人评分备注全国统一编号(由赛区组委会送交全国前编号):全国评阅编号(由全国组委会评阅前进行编号):机器人避障问题摘要针对题中机器人避障最短路径问题,文章使用简化后建立的最短路径的数学模型来解决此类问题。

对于问题1,我们matlab中自带函数graphshortestpath函数求解最短路径的数学模型。

其主要思想是:首先先证明出两点之间的最短路径是由两条线段和以中间点为圆心的圆的一段圆弧组成,然后证明圆弧的半径为定值10。

然后对模型简化使模型化为标准的最短路径模型,最后用graphshortestpath函数对模型求解。

针对问题2,我们建立了优化模型。

在问题1的基础上,我们对两种行走方案进行分析,根据转弯弧的半径变化对速度的影响我们锁定到一条路径,然后利用lingo对优化模型进行求解。

关键词:graphshortestpath函数、最短路径、避障问题1、问题重述已知:在下图中原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动。

建模机器人避路障问题

建模机器人避路障问题

建模机器人避路障问题机器人避障问题摘要:本文根据题目要求,主要研究了在一个区域内有障碍物的最短路径问题。

依题意我们可以认为最短路径一定是由线和最小圆弧组成,圆心在障碍物的顶点。

对于问题一首先讨论由O 到A 的距离,为了到达目标点,我们建立了圆线模型。

将路线分为两部分:一部分是平面上的自然最短路径(即直线段),另一部分是限定区域的部分边界的半径至少十个单位以外的圆弧,得到其路径长度为2222L b r c r r θ=--,并用MATLAB 程序解得最短路径471.0372对于O 到B 的距离问题,为了到达目标点,我们需要建立圆与点圆模型,其中由于圆与圆之间的不同的位置关系,又可以分为同向相切与异向相切,同向相切时 22221212L b r c r r r o o θθ=--++,异向相切时 2222221212()2o o L b r c r r r r θθ=--++-。

由MATLAB 程序解得最短路径869.8523。

对于O 到C ,与前者的区别是障碍物大圆视为半径较大的转折弧,为了到达目标点,依旧建立圆圆结构与线圆结构模型,经MATLAB 程序解得最短路径为1011.3。

对于OABCO 的路径问题,除了用了上述提到的圆圆,线圆结构外,还建立了圆心偏移的模型(即点ABC 在相对应的弧上),A 点偏以后的坐标为(290.9,304.1),B 点偏以后的坐标为(108.23,694.32),C 点偏以后的坐标为(707.26,633.12),将OABCO 分为两部分,一部分为OABCN (730,520)的距离,另一部分为由N 回到O 的距离,两部分结果之和即为所求路径。

OABCN 的距离1.7691e+003,N 到O 为880.7744,总长为2649,6744对于问题二,我们将路线问题转化为规划问题,求的最短时间,目标函数为由LINGO 有最短时间为94.22822,切点坐标(69.80,211.98)(77.75,220.14) 圆心(82.14,207.92)。

机器人避障问题

机器人避障问题

D题机器人避障问题摘要本文针对机器人的避障问题,建立了两个相应的数学模型。

模型一:针对机器人避障最短路径的问题。

研究了机器人从出发点到目标点,以及从出发点经过若干目标点最终回到出发点的两种情况。

首先,证明了具有圆形限定区域的最短路径是由限定区域的部分边界(部分圆弧)以及与之相切的直线段组成;其次,依据证明结果,最短路径一定是由线和圆弧组成,以线圆结构建立了最短路径与时间的通用优化模型,解决了无论路径多么复杂都可以将路径划分为若干个这种线圆结构来求解的问题;再次,对于途中经过若干目标点最终再回到出发点的问题,采用在拐点和节点都用最小转弯半径的的方案进行计算;最后,对机器人所走最短路径可能性较大的几条路径进行分割,再用通用优化模型进行求解,得到机器人行走的最短路径如下:路径总距离(单位)总时间(秒)→ 471.0372 96.0176O A→853.7001 179.5340O B→1095.1 224.7865O C→→→→2762.5 581.4193 O A B C O模型二:针对机器人避障最短时间路径的问题。

研究了行走总时间(即机器人走直线和圆弧所用的时间之和)会随转弯圆弧的圆心和半径的变动而改变的情况。

首先,分析在半径一定、圆心在直线OE上运动的情况,得到半径一定时的最短时间路径的最优方案;然后,以转弯圆弧过E点为条件,通过调整半径的大小,得出最短时间路径的最优方案;最后,以以上两种方案为依据,得到O A→的最短时间路径为:圆心为(82,208),T=(秒)。

12.828r=(单位),94.2284本文还对模型做了进一步的推广,对于智能设备的研究有较高的参考价值。

关键词:最短路径最短时间路径线圆结构最优化模型1问题重述1.1 背景资料(1)图1(见附录B )在原点O(0,0)处有一个机器人,它只能在一个800×800的平面场景范围内活动。

而图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物,其障碍物的数学描述如表(见附录A )。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

机器人避障问题的解题分析摘要:本文对2012年全国大学生数学建模竞赛D题机器人避障问题进行了全面分析,对最短路的设计进行了理论分析和证明,建立了机器人避障最短路径的几何模型,对最短时间路径问题通过建立非线性规划模型,有效地解决了转弯半径、圆弧圆心位置和行走时间等问题。

关键词:机器人避障;最短路径;Dijkstra算法;几何模型;非线性规划模型1 引言随着科学技术的进步和计算机技术的发展,机器人的应用越来越广泛,在机器人的应用中如何使机器人在其工作范围内为完成一项特定的任务寻找一条安全高效的行走路径,是人工智能领域的一个重要问题。

本文主要针对在一个场景中的各种静态障碍物,研究机器人绕过障碍物到达指定目的地的最短路径问题和最短时间问题。

本文以2012年“高教社”杯全国大学生数学建模竞赛D题“机器人避障问题”为例进行研究。

假设机器人的工作范围为800×800的平面正方形区域(如图1),其中有12个不同形状的静态障碍物,障碍物的数学描述(如表1):图1 800×800平面场景图表1在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动,机器人不能与障碍物发生碰撞,障碍物外指定一点为机器人要到达的目标点。

规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。

机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。

为了不与障碍物发生碰撞,同时要求机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走。

机器人直线行走的最大速度为50=v 个单位/秒。

机器人转弯时,最大转弯速度为21.0100e1)(ρρ-+==v v v (ρ是转弯半径)。

如果超过该速度,机器人将发生侧翻,无法完成行走。

场景图中有4个目标点O(0, 0),A(300, 300),B(100, 700),C(700, 640),下面我们将研究机器人从O(0, 0)出发,求O→A、O→B、O→C和O→A→B→C→O的最短路径,以及机器人从O(0, 0)出发,到达A 的最短时间路径问题。

2 静态避障问题中机器人行走最短路径的分析 2.1 行走路径的设计在本例中障碍物有4种不同形状:矩形、平行四边形、三角形和圆形。

考虑到机器人本身的形状和大小,为研究方便起见,将机器人视为一个点。

机器人与障碍物之间的距离至少为10个单位,因此可以先用包络线画出机器人行走的危险区域(如图2),包络线内是机器人的禁入区。

图2 障碍物包络图对障碍物的一个角点来说,其禁入区的边界应由两条直线和一条圆弧组成,两条直线分别平行于角点的两条边,间距为10个单位,圆弧是以障碍物角点为圆心,半径为10个单位的四分之一圆弧。

可以证明具有圆形限定区域的最短路径由两部分组成,一部分是平面上的自然最短路径(直线段),另一部分是限定区域的部分边界(即绳子拉到最紧时的圆弧部分),这两部分是相切的,互相连接(如图3所示)。

由A绕过半圆形障碍物到达B点的路径有多条,其中最短路径为AEFB(E、F为切点),其他路径与AB直线围成的区域都覆盖这一路径与AB直线围成的区域,由此证明[1]。

图3由此可以确定机器人的行走路径应为线圆结构,那么是否是转弯半径越小,行走路径就越短呢?为此需要求在已知两个固定点和圆弧圆心坐标的情况下,圆弧半径r为何值,才能使机器人的行走路径最短。

图4如图4,已知两个固定点()()1122,,,A a b B a b ,圆心(),O m n ,可以求得两切点坐标()()1122,,,C x y D x y ,设半径为r ,圆弧CD 所对的圆心角为ω,A B →的路径长度为L ,则()()()()22221122111122221122arctan arctan L AC BD r y b y b x a y b x a y b r x a x a ω=++⎛⎫--=-+--+-⋅- ⎪--⎝⎭ 将路径函数L 对r 求导,得11221122arctanarctan y b y bL x a x a --'=--- 因为11111111,,arctan0y b x a y b x a ->>>-,22222222,,arctan 0y bx a y b x a -<><-,所以0L '>.0L '>,则函数L 为单调递增函数,因此当圆弧半径r 逐渐增加时,机器人的行走路径会增大,r 逐渐降低时,机器人的行走路径会减小[2],本题规定转弯半径最小为10个单位,所以在路径设定时应将转弯半径设定为最小值10个单位。

根据以上分析,对于静态障碍物机器人的行走路径应遵循以下三个原则: 原则一:机器人的行走路径为线圆结构,由两条切线和一段圆弧组成; 原则二:每个路口至多发生一次转弯,并以障碍物顶点为转弯圆弧的中心; 原则三:机器人转弯圆弧半径为最小允许半径10个单位。

2.2 最短路径的选择从起点到达目标点有多条路径,根据Dijkstra 算法可以找出从起点到达每一个目标点的最短路径。

本文采用带权的有向图表示机器人的行走路径,途中节点为障碍物的角点,边表示障碍物之间的联系,权表示线路的长度(节点之间的直线距离)。

从顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径就是所求最短路径,Dijkstra 算法就是按路径的长度递增次序产生最短路径的算法[3]。

下面以 O B →为例,确定O B →的最短路径。

如图5所示,根据障碍物的形状和位置,本文给出了机器人从O(0, 0)出发避过障碍物到达目标B 点的4条较优路径。

图5画出O B →的非循环网络图(如图6):图6运用Dijkstra 算法算出O B →的最短路径,最短路算法如下: 1、 起点O 记为0B ,终点B 记为n B ;2、 从网络的终点n B 开始,令它的标号n λ为零,并用方框记录在图6中;3、 计算结点i B 的标号i λ,设结点j B 已标号,结点i B 指向j B ,则i B 的标号可按算式:B 621306O 230 60 11217122599 21647017978162238B5 B3 B6 B2 B4 B1B9B7B8 0171 11299 569 237 399 705 159508 329{}min (,)i i jl i j λλ=+求出,其中i λ是i B 的标号,(),l i j 是结点i B 与j B 之间的直线距离;4、 重复上述计算,直到求得起点0B 的标号0λ为止,此标号0λ即为最短路的长度;5、 确定最短路径,从起点开始,顺网络的箭线前进,若有几条箭线,则选取箭线所指标号最小且满足条件(),,1j k l j k k j λλ=+≥+的结点为最短路径所经过的结点。

在图6中,最短路径为:35678O B B B B B B →→→→→→. 应用上述算法可得到从O 点出发,分别到达各目标点的最短路径:图7O A →的最短路径为: 2O A A →→(如图7)图8O C →的最短路径为:1451112O C C C C C C →→→→→→(如图8)图9O A B C O →→→→的最短路径为:1123134587123O A A B B B B C C C C C C C O O O O →→→→→→→→→→→→→→→→→3 最短路径计算模型3.1 单个目标点的最短路径根据前面制定的行走路径原则,起点到目标点无论中间障碍物有多少,最短路径都应该是若干个线圆结构所组成,圆弧中心为障碍物的顶点,半径为机器人转弯最小半径10个单位。

观察这四条路径,发现所有行走路径都可归结为以下三种类型: 类型一图10 线圆结构1如图10,设O (11,x y )为起点,A (22,x y )为目标点,C 和D 分别为直线与转弯圆弧的切点,障碍物的顶点33(,)M x y (即转弯圆弧的圆心),圆的半径为r ,OA 的长度为a ,OM 的长度为b ,AM 的长度为c ,,,,.OMA OMC AMD CMD ϕαβθ∠=∠=∠=∠=设O A →的长度为L ,则L OC AD CD =++,由图10可得以下关系:222121223131223232()()(()()()()a x x y y b x x y y c x x y y ⎧=-+-⎪⎪=-+-⎨⎪=-+-⎪⎩在OMA ∆中:222arccos()2b c a bcϕ+-= 在Rt OMC ∆中:arccos r b α= 在Rt AMD ∆中:arccos r cβ= 所以:2θπϕαβ=--- 从而可得:2222L b r c r r θ=-+-+这个模型运算简洁,只需将起点、目标点和障碍物顶点坐标输入模型,MATLAB 就能很快计算出来[4],计算程序见附录1。

类型二:对于图11这种线圆结构,需要做简单的变换,才能求出A B →的路径长度。

图11 线圆结构2假设两圆心坐标分别为11(,)O x y 和22(,)O x y ',M 点为两圆心连线和两圆公切线的交点,坐标为33(,)M x y ,那么很容易可以求得:12312322x x x y y y +⎧=⎪⎪⎨+⎪=⎪⎩ 这样就可以利用类型一中的方法,先求A 到M 的长度,再求M 到B 的长度,分两段就可以求解。

同理如果有更多的转弯,同样可以按照此种方法分解。

类型三图12 线圆结构3如图12,如果两圆弧的公切线平行于两圆圆心连线,求A B →的路径长度。

设各点坐标分别为起点A (1x ,1y ),目标点B(22,x y ),障碍物顶点33(,)O x y ,障碍物顶点45'(,)O x y ),半径为,,,,,r a b c d e 分别是',',,,'AO OO AO BO BO 的长度,1'AOO α∠=,11,,AOC COD βθ∠=∠=222',,BOO BOF EOF αβθ∠=∠=∠=设A B →的长度为L ,则'L AC CD OO EF FB =++++ 解法如下:由图12,可以得到以下关系: 224141()()x x y y -+-224343()()x x y y -+-223131()()x x y y -+-223232()()d x x y y =-+-224242()()e x x y y =-+-在'AOO ∆中,由余弦定理可得:2221arccos 2b c a bcα+-=在Rt AOC ∆中,1β=arccos rc所以: 11132πθαβ=--同理:2222arccos 2b e d be α+-=;2β=arccos r e ;22232πθαβ=--则'L AC CD OO EF FB =++++222212+++c r r b r e r θθ=-+-222222222233=+(arccos arccos )(arccos arccos )2222c b a r b e d rc r r b r e r bc c be eππ+-+----++--+- 运用MATLAB 进行计算,MATLAB 计算程序见附录2. 3.2 多个目标点的最短路径机器人从起点出发,依次经过指定的中间目标点最后到达终点,是多个目标点的最短路径问题。

相关文档
最新文档