《数学建模机器人避障问题》由会员分享,可在线阅读,更多相关《数学建模机器人避障问题(16页珍藏版)》请在金锄头文库上搜索。
1、机器人避障问题一、摘要本文讨论了机器人在平面场景中避障行走的问题,已知机器人的行走模式(直线与相切圆弧)以及场景障碍物的分布,计算出到平面各个给定点的最短路径,以及到A点的最短时间。文中,首先,考虑到机器人与障碍物之间有10个单位的碰撞距离,故用CAD软件将平面场景图进行改进,再用CAD设计可能的最短路径。接着,对每条具体路径进行分解,得到三种基本线圆形模型(点圆模型,双圆异侧模型,双圆同侧模型),对这三种模型进行求解,得到各个模型直线长度以及转弯圆弧圆形角的表达公式。之后,参照具体的行走路径,构造合适的行走矩阵,用以判断每段路径所属的基本模型。路径总的长度可用如下公式表达:最后,通过计算设计
2、的集中可能的最短路径,我们得到每段的最短路径的长度分别为:OA路段:471.0372(单位);OB路段: 853.7001(单位);OC路段: (单位);OABCO路段: (单位)。对于问题二,我们在问题一的基础上分别利用直线最大速度和转弯最大速度计算出时间的表达式。为了方便计算,我们将转弯圆弧的圆心定在P(80,210)(场景中正方形5的左上角),这样得到时间T与转弯半径的函数关系式:通过MATLAB编程,画出其图像,求解得出:当半径=11.435时,时间T最小,其大小为94.5649(秒)。关键词:最短路径 线圆模型 行走矩阵 MATLAB二、问题重述在一个800800的平面场景图(见附录
3、一),在原点O(0, 0)点处有一个机器人,它只能在该平面场景范围内活动。图中有12个不同形状的区域是机器人不能与之发生碰撞的障碍物,障碍物的数学描述如下表:编号障碍物名称左下顶点坐标其它特性描述1正方形(300, 400)边长2002圆形圆心坐标(550, 450),半径703平行四边形(360, 240)底边长140,左上顶点坐标(400, 330)4三角形(280, 100)上顶点坐标(345, 210),右下顶点坐标(410, 100)5正方形(80, 60)边长1506三角形(60, 300)上顶点坐标(150, 435),右下顶点坐标(235, 300)7长方形(0, 470)长2
4、20,宽608平行四边形(150, 600)底边长90,左上顶点坐标(180, 680)9长方形(370, 680)长60,宽12010正方形(540, 600)边长13011正方形(640, 520)边长8012长方形(500, 140)长300,宽60在图中的平面场景中,障碍物外指定一点为机器人要到达的目标点(要求目标点与障碍物的距离至少超过10个单位)。规定机器人的行走路径由直线段和圆弧组成,其中圆弧是机器人转弯路径。机器人不能折线转弯,转弯路径由与直线路径相切的一段圆弧组成,也可以由两个或多个相切的圆弧路径组成,但每个圆弧的半径最小为10个单位。为了不与障碍物发生碰撞,同时要求机器人行
5、走线路与障碍物间的最近距离为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的最短时间路径。并要求给出路径中每段直线段或圆弧的起点和终点坐
6、标、圆弧的圆心坐标以及机器人行走的总距离和总时间。三、模型假设1、假设机器人可看做一个质点,不考虑其实际大小;2、假设机器人能够准确的按照设计的路线行走行走,在其行走中不发生任何突发事故;3、机器人以最大速度行驶,在转弯过程中没有发生侧翻,速度发生突变,不考虑加速减速。四、符号说明 :圆到圆圆心的距离;:机器人经过的第i个圆弧的圆心角;:第i段直线多对应的圆心角:圆的半径;:机器人经过的第i段直线的长度;S:行走路径的总的长度;T:机器人行走的总的时间N:机器人行走经过的总点数(包括起点终点以及转弯圆弧的圆心);A:行走矩阵。五、模型建立对于该题建立机器人从区域中一点到达另一点的避障最短路径和
7、最短时间路径的数学模型的研究,主要是用尽可能短的路径和时间避开障碍物到达目标点。根据题目中的要求可知,机器人行走线路与障碍物间的最近距离为10个单位,否则将发生碰撞,若碰撞发生,则机器人无法完成行走,故可把各障碍物的边界扩大10单位。利用CAD软件制图可在距每个障碍物的边缘10个单位处添加外边框,形成新的屏障,特别注意的是在障碍物顶点处使用圆弧。机器人就可在新屏障外的范围内随意活动,不用担心发生碰撞,根据原图修改后的图形见下图1。C(700, 640)B(100, 700)A(300,300)图1机器人行驶路线是由直线段和圆弧组成。机器人从O(0, 0)出发,建立数学模型求得OA、OB、OC和
8、OABCO的最短路径。现将各个路段的情况进行综合分析,根据每个路段所遇到的情况,从起始点到目标点的最短距离应该是直线段与圆弧组成,由已知的数学知识,两点之间线段最短,故机器人走的直线越多,路径越短,也就是说当机器人绕过障碍物的时候,半径越小,路径越短,根据题意,转弯半径可按最小半径10来计算,经过分析,可建立如下三个线圆模型。模型一:(点圆模型) 该模型主要求解的路径长度,该路径只有一个转弯,由图2易知,C、D均为直线与圆的切点,CD为圆弧,为圆弧对应的圆心角的大小,根据已积累的知识,圆弧的长度为圆弧对应的圆心角与圆半径的乘积,即,同时利用余弦定理,即可求得总距离为:S=;其中 = C图2D模
9、型二:(双圆异侧模型) 该模型是为了计算的距离,从起始点到目标点经过圆弧异侧拐弯(如图3),根据已知点、可求得的长度。,AB、CD为两段圆弧,、为其对应的圆心角,BC与的交点E是这两条线段的中点,根据两个全等三角形以及勾股定理,可求得BC长度。其中,EADCB图3模型三:(双圆同侧模型) 该模型是为了计算的距离,从起始点到目标点经过圆弧同侧拐弯(如图4),添加辅助线,连接、,运用几何知识轻易能够证明。由图4易知,可以根据已知点的坐标求出所需线段的长度,进而求得起始点到目标点的总距离。其中,图4DEFC综合模型:在实际情况中,机器人所走的路线是以上三种模型的结合。设计好机器人的行走方案,可根据设
10、计好的方案构建行走矩阵,构建方法如下:i段为模型1i段为模型2i段为模型3i段为模型1i段为模型2i段为模型3则i段的直线长度为:其中i=1,2N-1;第i段与i+1段之间的转弯圆弧所对应的的圆心角为:其中i=1,2N-2;i段为模型1i段为模型2i段为模型3机器人行走的总的长度为:六、模型求解问题(1):根据所建立的数学模型,用CAD画出可能的最短路径,构建每条路线的行走矩阵,通过MATLAB编程计算出每天路线的实际长度,从而得到最短路径。1、OA路段,这是四个路段中最简单的情况,从O到A经过了一个转弯,从图5中易看出有两种方案,虚线与实线各代表一个方案。A(300,300)(80,60)(
11、0,0)图5利用MATLAB编程求解,计算结果如下:机器人从O到A的行走路线长度为471.0372;同理,O从下面绕到目标点A的总的路线长度为498.4259;通过比较两种方案的结果易知,机器人在点O从上面绕到目标点A的距离最短,期最短路线长度为471.0372 。2、OB路段,经过分析与整理,我们得到四种方案,如图6所示,在这四种方案中,三种模型全部都要用到,模型一在OA路段已详细说明,模型二就是从起始点到目标点经过的圆弧在所走路径的异侧,而模型三就是从起始点到目标点经过的圆弧在所走路径的同侧,从OB路段,有多次转弯,具体见图6。B(100,700)O(0,0)图6就路线而言,机器人经过了五
12、次转弯,根据三种模型中的理论公式,需要把各个圆弧与直线长度求得,可利用MATLAB软件对其进行编程。计算结果如下:路线机器人行走的总距离为853.7001;路线机器人行走的总距离为877.3841;路线机器人行走的总距离为990.1608;路线机器人行走的总距离为;经过比较可得路线为最短路径,即机器人在点O从上面绕到目标点B的距离最短,期最短路线长度为853.7001 。3、OC路段,经过整理分析,我们得到四种方案,具体见图7, O(0,0)C(700,640)图7 每条路线都是由圆弧与直线段,但是该路段与其他路段相比,又有其不同之处,在路线中有一部分是在两个不同大小的圆的异侧和同侧(如图8,
13、图9所示)图8AEB就图8容易看出, , 图9EBA就图9容易得出, ,利用MATLAB软件对其进行编程。计算结果如下:路线机器人行走的总距离为;路线机器人行走的总距离为 ;路线机器人行走的总距离为;路线机器人行走的总距离为;显而易见,经过比较可得路线为最短路径,即机器人在点O从上面绕到目标点C的距离最短,其最短路线长度为。4、OABCO路段,这一路段需要结合之前求得的最短路径,当机器人在A、B、C转弯时,为确定其路径最短,既使A点处在机器人的转弯圆弧上,我们设立了如图11的路径,并计算出转弯圆弧的圆心。AO图10由图易算出转弯圆弧的圆心坐标为:图11A(300,300)O(0,0)C(700
14、, 640)B(100, 700)需要注意的是,在C点附近,由于其位置的特殊性,原有的线圆模型不能很好的处理,我们采用两段相切圆弧的线路。利用MATLAB软件对其进行编程。计算结果如下:机器人行走的总距离为问题(2)机器人从O (0, 0)出发,求得到达A的最短时间路径。通过问题(1)中对各个路段最短路径的求解,我们可以做出合理假设:机器人转弯圆弧的圆心在点P(80,210)的位置,而半径我们设为。由问题(1),可以得到机器人从O点到A的时间为(参照模型一):其中为长度,为长度,为长度,为,由于圆心固定,其值为固定值。通过MATLAB编程,得到的函数图象如下图所示:从图中可以看出,当半径=11.435时,时间T最小,其大小为94.5649。七、模型评价与推广优点:1、该模型设计了三种基本模型,将实际线路进行简化,从而降低了计算难度;2、提出行走矩阵的概念,在程序中对不同模型进行判断,从而简化了程序,方便了计算,使得程序更具备一般性;3、最终结果由MATLAB编程计算,计算结果真实