扫地机路径优化数模论文一等奖.docx
《扫地机路径优化数模论文一等奖.docx》由会员分享,可在线阅读,更多相关《扫地机路径优化数模论文一等奖.docx(38页珍藏版)》请在冰豆网上搜索。
扫地机路径优化数模论文一等奖
第八届大学生数学建模竞赛
()
主办:
东南大学教务处
承办:
东南大学数学系
东南大学数学建模竞赛组委会
论文题目:
扫地机器人的路径优化
参赛队员信息:
扫地机器人的路径优化
【摘要】
本文将扫地机在区域中的路径抽象为栅格化模型,并采用线性规划的方法计算估计扫地机扫过的单元格数。
建立可随机0-4赋值或是给定参数的垃圾指标矩阵Q[60*50]作为数据基库,根据扫地机不同的性能运用循环嵌套、线性规划等方法综合求解,最终方案通过matlab运行并进行可视化演示。
实验的结果通过规划清扫路径示意图以及清扫结束后的垃圾指标矩阵E[60*50]观察分析。
关于判断扫地机何时停止工作,题设要求尽量保证每个点的垃圾指标不超过1,而碍于扫地机形状的限制,一般不能100%的清扫指定区域(如墙角部分),故我们规定计算清扫完95%以上的范围为结束工作的条件。
我们将我们的工作根据三个问题以及一个比较分析分为四部分考虑。
Ø问题一
我们经过合理地分析过程将整个清扫区域划分成如图1.2所示的小区域。
通过矩阵整合函数,将矩阵Q[60*50]整合成一维数组T[4],每次等时间间隔扫描判断出
所对应的区域,并在该区域中的特有边界上随机取坐标作为扫地机在该区域直线行驶的途经点。
若判断到T中最大的元素所对应的区域发生改变,则扫地机将以当前或是下一个碰撞点为起点、随机选取
区域中的特有边界上的坐标作为终点做一条区域转移路径。
未到下一次扫描时间则不断在该区域的特有边界上取随机点作为途经点做直线清扫工作。
上述过程执行至扫描得到的最大垃圾总指标区域发生变化或是达到扫地机工作结束条件为止。
Ø问题二
已知扫地机只走直线,每次选择清扫垃圾总指标最多的路径,每次碰到墙壁转弯。
又因为智能扫地机具有实时扫描的功能,我们可以认定扫描发生在扫地机与墙壁发生碰撞的瞬间(因为其余的时间扫描没有意义,不与墙角发生碰撞则无法改变扫地机的行驶方向)。
又由于机器人的转弯方向是任意的,所以如何简化转弯方向,使得机器人在有限的方向上计算垃圾的总数成为本问题的关键。
于是我们选取一个固定的参考点O,根据参考点O所能到达的边界点作为终点,进而决定每次与墙壁发生碰撞下一时刻可能的转弯方向,计算各个方向的垃圾总指标
并进行比较得出下一时刻转弯方向。
Ø问题三
设计智能扫地机的路径,保证扫地机以最短时间清扫完该区域。
第三问实际上是对第二问的优化。
主要优化方向,我们分为两点:
提高单位长度上清扫垃圾指标的数量
考虑折线行驶,转换方向不必在与墙面发生碰撞。
Ø比较问题1与问题2
我们从经济、生活、节能、开发等多个方面说明问题1中方案的合理性。
另外,通过比较问题1与问题2,发现其中的联系——
的取值影响。
通过改变
大小进而提升低端扫地机的性能。
关键词:
分区比较栅格化碰撞参考点线性规划实时路径判定
1问题重述-------------------------------------------------------------------------------------------3
2问题分析-------------------------------------------------------------------------------------------3
3模型假设-------------------------------------------------------------------------------------------4
4符号系统-------------------------------------------------------------------------------------------4
5基础模型-------------------------------------------------------------------------------------------5
5.1清扫区域抽象化
5.2扫地机清扫区域栅格化
5.3路径线性规划
6分区间隔扫描模型(问题一)-----------------------------------------------------------------7
6.1区域的划分
6.2间隔扫描时间的确定
6.3模型
的分析与建立
6.3.1对于扫描发生在扫地机工作在整个区域内(在或不在边界上)的情况
6.3.2对于扫描未发生,而扫地机到达墙壁(在边界点上)的情况
6.4运算思路框图
6.5运算结果与分析
7实时扫描模型(问题二)--------------------------------------------------------------------12
7.1区域的简单划分
7.2时刻扫描的抽象处理方法
7.3模型
的分析与建立
7.3.1优化路径选取
7.3.2最优化路径选取
7.4运算思路框图
7.5运算结果与分析
8实时扫描折线模型(问题三)--------------------------------------------------------------15
8.1区域的划分
8.2间隔扫描时间的确定
8.3模型
的分析与建立
8.3.1最优路径选取
8.3.2扫地机清扫区域栅格化
8.4运算思路框图
8.5运算结果与分析
9模型
与模型
的比较----------------------------------------------------------------------18
10模型的优缺点---------------------------------------------------------------------------------19
10.1优点
10.2缺点
参考文献--------------------------------------------------------------------------------------------20
附录
1问题重述
随着科学技术的不断发展,扫地机逐步走入平常百姓家,并被越来越多的人所接受,扫地机(也称扫地机器人)将在不久的将来像白色家电一样成为每个家庭必不可少的清洁帮手。
产品也会由现在的初级智能向着更高程度的智能化程度发展,逐步取代人工清洁。
扫地机是通过电动机的高速旋转,在主机内形成真空,利用由此产生的高速气流,从吸入口吸进垃圾。
扫地机一般为半径0.2米圆盘,运行速度一般在每秒0.25米左右,只走直线,且碰到墙壁等障碍才可转弯。
与传统的扫地机不同,智能扫地机可以通过微处理器进行现场环境分析,自动选择运行路线。
遇到障碍发生碰撞后将重新随机地选择路线,逐步进行清扫。
智能扫地机具有记忆、存储功能。
利用传感器扫描现场环境,设计运行路径并存储。
一般不能100%的清扫指定区域(如墙角部分)。
清扫后的垃圾装进机子尾部的集尘盒,再通过人工清倒垃圾。
机器在工作电压不足时会自动回到充电站充电。
考虑图1的工作现场,其中点A(1,5)为扫地机充电站,区域的垃圾指标见附件1.不考虑再充电情况,请你们解决如下问题:
(1)有些低档的扫地机因为价格低廉,智能程度不高。
其工作时的路径选择方案是将现场分成若干区域(例如上下左右4个区域),并通过传感器间隔一段时间扫描现场一次,选择垃圾最多区域清扫。
假设每次扫过的区域垃圾指标值减少1。
针对附件1,估计清扫完给定区域大致需要的时间(尽量保证每个点的垃圾指标不超过1)。
(2)智能程度高的扫地机每次可以选择清扫垃圾指标值最大的地方清扫,每次扫过的区域垃圾指标值减少1。
该机器人需多长时间才能保证清扫完该区域(区域内指标值不超过1)。
比较问题1与问题2,说明问题1中方案的合理性。
(3)其他条件同2,如何设计扫地机的路径,保证扫地机以最短时间清扫完该区域。
2问题分析
低档扫地机和智能程度高的扫地机有一个共同的特点:
路径在扫地机与墙壁碰撞之后朝向扫描计算出的垃圾指标最高点行驶。
两者的不同点:
低档扫地机需要对区域进行分区且不能时刻扫描计算垃圾指标值,总是在一段规定时间间隔之后对区域进行再扫描,重新规划下一条清扫路线。
没有到扫描时间,则在前一次判断出的垃圾指标值最高的区域随机行驶;智能程度高的扫地机具有实时扫描的功能,在每一个与墙壁碰撞的瞬间其都会重新扫描。
所以如何设计机器人的清扫路线是本题的关键。
第一问中,我们需要将区域分成几个小区域。
低端扫地机在扫描后到达垃圾总指标最高的区域内进行清扫。
在该区域内进行一段时间的不偏移扫描(即路径尽量保持在选定的分区内),且清扫为随机选取的。
第二问中,扫地机每次与墙壁发生碰撞的瞬间,扫描整个区域计算出各个方向上的垃圾指标值,并从中选择出一条垃圾总指标值最高的路径(路径的出发点为碰撞点)。
由于机器人的转弯方向是任意的,如何简化问题使得机器人在有限的方向(0-180°)上计算垃圾的总数是我们所需要考虑的。
在这里我们把扫描此刻的碰撞点作为固定的参考点,连接碰撞点与除去碰撞点所在的墙壁以外的另外三面墙壁上的分割间断点,做出直线并计算各个直线上的垃圾总指标。
比较各个方向上的垃圾总指标的大小,判断出最大值进而得出转弯方向。
关于设计扫地机的路径保证其以最短的时间清扫完该区域(问题三)的关键在于提高单位长度上清扫垃圾指标的数量。
3模型假设
[1]假设除了墙壁没有其他的障碍物;
[2]假设扫地机不会发生故障,并严格按照给定指令行走;
[3]假设点A(充电站)为扫地机每次工作的出发点;
[4]假设扫地机遇到墙壁发生碰撞没有能量损失,即速率不发生改变;
[5]假设扫地机工作从开始到结束电量充足,即工作途中不需要回充电站;
[6]假设扫地机扫描垃圾计算指标值的过程不额外占用时间且扫描范围为整个区域空间;
[7]假设智能程度高的扫地机扫描垃圾计算指标值的过程发生在与墙壁发生碰撞的瞬间;
[8]假设当每个点的垃圾指标不超过1时扫地机本次工作结束;
[9]假设扫地机碰到某个单位的面积比上单元面积的值大于0.5就算清扫成功,即有一半以上的区域被扫地机覆盖,此时单位内的垃圾指标值减少1;
[10]假设扫地机的垃圾容量足够大,在完成清扫之后才再通过人工清倒垃圾;
4符号系统
符号表示
说明
Q[60,50]
初始垃圾指标矩阵
E[60,50]
清扫结束后的垃圾指标矩阵
发生碰撞时刻参考点坐标
下一次发生碰撞时刻参考点的坐标
间隔扫描行驶路程
S
从
到
扫地机行驶的路程
从充电点到第n个碰壁点扫地机行驶的时间
经过路径的垃圾总指标值
经过路径的垃圾指标分布律
5基础模型
5.1清扫区域抽象化
首先我们建立一个60*50的矩阵Q,并将各个单元里的垃圾指标赋入与二位矩阵组合形成一个三维数组。
特别声明:
在这里我们把区域分成50*60的单元是对任意一个模型而言。
譬如附件给出的0.06*0.02㎡的单元我们也可以划归到0.1*0.1㎡的单元中考虑。
具体方法如下:
可以把0.06*0.02㎡的单元再分割为更小的单元如0.01*0.01㎡的单元。
分割之后小单元的垃圾指标值可以对原来的大单元取平均值求得。
下一步则是将0.01*0.01㎡的单元再组合成0.1*0.1㎡的单元,0.1*0.1㎡单元内的垃圾指标在通过组合区域内0.01*0.01㎡的单元的指标值求和得到(出现小数采取四舍五入的方法取整)。
如图5.0为将题目给定的附录(更新)导入到60*50矩阵Q后的垃圾指标空间分布图。
5.2扫地机清扫区域栅格化
因为扫地机只走直线,且只有碰到墙壁才能转弯。
而扫地机碰壁后转弯的方向(0°~180°)可以是任意的,为了使简化问题,我们做出了如下的说明:
如上图10*14的区域,假设此时扫地机器人位于如上图黄色的16个小方格,若我们以机器人的左上角(即图中的O点)作为参考,则机器人左上角下一步到达墙壁的终点只可能是1,2,3,……23这23个点中的一个,即机器人下一步的方向只可能是这23个方向中的一个。
如机器人最终到达点4,则机器人的最终位置位于如上图蓝色的16个小方格。
其余情况同理。
对于这23个方向,分别计算沿着这23个方向所经过路径的垃圾总指标
,其中k=1,2,……23。
如图5.1.2,计算参考点到各个边界点上的连线上的垃圾总指标值。
从图上我们可以看到各个边界点对应的与参考点连线上的垃圾总指标值。
另外要注意的是我们已经假设机器人在行进过程中只要碰到某个小方格就算是清扫到该方格。
计算出每个方向的
并进行比较,判断出最大的方向并选定其为下一次路径。
如题目要求,机器人每次经过一个单位,则该方格垃圾指标值减1,即矩阵中的相应元素减1。
为了控制扫地机工作的结束,我们认为扫地机在每次与墙壁发生碰撞的瞬间都会计算此时所有单元垃圾指标值是否都不大于1?
直到碰到墙壁后计算出此时所有单元垃圾指标值都不大于1时,扫地机自行回到充电站并停止工作。
否则再次进行判断继续向下一个
值最大的路径行进。
5.3路径线性规划
扫地机从碰撞点到下一个碰撞点所扫过的路径如图5.2条状区域所示。
我们将区域分割成了60*50的矩阵,每个单元(对应一个点坐标)存贮着垃圾指标值。
我们可以通过判定点的坐标是否包含在条状区域内来决定是否对该单元的垃圾指标值减1.
根据图示,我们可以得出以下的线性约束条件:
且
6分区间隔扫描模型(问题一)
6.1区域的划分
在这里我们暂且假设把区域划分为上下左右4个区域进行分析。
由题意,低端扫地机通过传感器间隔一段时间扫描现场一次,选择垃圾最多区域清扫。
我们可以理解为它不能对区域进行实时扫描,且在下一次扫描之前清扫区域始终保持在前一次扫描所判断出的垃圾总指标最高的区域内进行清扫。
由图6.1可知,这样的分区方式显然不合理。
为保证清扫路径覆盖整个选定的分割区域,路径必须扫过其他分割区域,与题设有所违背。
故我们采取如图6.2所示的区域分割方式。
这样的分割方式可以保证扫地机在扫垃圾指标值最大的分区过程中,路径不覆盖其他分区。
可认为是比较合理。
但是,不可否认这样的分割区域方式不是最合理的。
章节5我们仅仅是提供大概的模型分割思路,具体的优化区域分割模型将在章节9中给出讨论。
6.2间隔扫描时间的确定
同理,该模型只是建立扫地机清扫路径规划的基本方案,而并非最优的。
由已知假设:
[4]假设扫地机遇到墙壁发生碰撞没有能量损失,即速率不发生改变;
[6]假设扫地机扫描垃圾计算指标值的过程不额外占用时间且扫描范围为整个区域空间;
[7]假设智能程度高的扫地机扫描垃圾计算指标值的过程发生在与墙壁发生碰撞的瞬间;
在这里我们不妨把间隔扫描时间抽象为间隔扫描行驶路程考虑。
设定参数——间隔扫描行驶路程
,并给
赋初值(10m)。
举个例子,假设发生碰撞时刻参考点坐标为
,扫地机下一次与墙壁发生碰撞时刻参考点的坐标为
,则从
到
扫地机行驶的路程S有如下公式:
(勾股定理)
故充电点到第n个碰壁点扫地机行驶的时间
6.3模型
的分析与建立
在扫地机的行驶过程中,我们做出这样的假设。
当扫地机碰到某个单位的面积比上单元面积的值大于0.5时就算清扫成功,即有一半以上的区域被扫地机覆盖,此时单位内的垃圾指标值减少1;
根据区域所在的位置枚举出参考点可以到达的点(单元)。
在这些点中随机选取一个作为下一次与墙壁的碰撞点。
将这点与参考点相连,即为下一步可能的清扫路径。
为了提高清扫的效率,我们选择清扫垃圾总数量最多的路径。
在这里我们引入一个参数C,称为经过路径的垃圾总指标值。
根据我们所建立的模型可以列出公式
(其中
为直线路径所经过单元的垃圾指标值;N为经过区域的单位总数)
通过计算每条路径的C值的大小,判断出最大的C值所在路径的终点,进而得出碰撞后扫地的朝向。
由题意,低端扫地机通过传感器间隔一段时间扫描现场一次,选择垃圾最多区域进行清扫。
我们可以理解为它不能对区域进行实时扫描,且在下一次扫描之前清扫区域始终保持在前一次扫描所判断出的垃圾总指标最高的区域内进行清扫。
为保证清扫路径保持在前一次扫描所判断出的垃圾总指标最高的区域内,我们已经给出了如图1.2所示的区域分区方式。
下面我们就路径规划的几种情况给出如下规定。
6.3.1对于扫描发生在扫地机工作在整个区域内(在或不在边界上)的情况
首先可以明确一点,扫地机的行驶路径为一条直线。
根据路径的初始条件以及当前位置可以判断出下一次扫地机与墙壁发生碰撞时参考点的坐标。
当然可以不必这么麻烦。
回溯到上一次的路径选择,我们知道下一次扫地机与墙壁发生碰撞时参考点的坐标(下一条选择路径的起点坐标)即为上一条选择路径的终点坐标。
下一条路径的起点坐标已经确定,下面我们来讨论由该起点引出的多条路径的优化选择方式。
因为扫描发生在扫地机在区域内的行进途中,所以用于路径选择判断的数据为扫描时刻的数据。
在这里,我们可以建立一个矩阵保存最新扫描时刻各个单元的垃圾指标值。
6.3.2对于扫描未发生,而扫地机到达墙壁(在边界点上)的情况
对于低端扫地机来说,我们默认其只有在扫描后才能对区域的垃圾指标进行分析和计算垃圾总指标值最大的路径。
不认为其有预测和推算的功能,否则将低端扫地机与智能扫地将没有本质上的区别。
对此,我们做出这样的规定:
低端扫地机在上述情况中,将在最新一次扫描所判断出的垃圾指标值最大的区域中,随机选取特有边界上的一点作为下一条路径的终点进行清扫。
关于特有边界的定义,我们可以根据图1.1和图1.2具体举例说明。
如图1.1中,右上区域的特有边界为我们所标定的蓝色粗线;又如图1.2中,如橘色框线所划定的区域,其特有边界为上下两条橘色粗线。
如蓝色框线所划定的区域,其特有边界为上下两条蓝色粗线。
综上所述,划分情况的要点是低端扫地机对区域进行扫描不是实时的,而是间隔一段时间。
6.4运算思路框图
6.5运算结果与分析
因为扫地机的清扫路径涉及随机选取的路径,故同样的实例模型肯定会产生不同的清扫路径,以及不同路径所对应的不同长短的时间。
为使结果更客观,我们采用测取6组数据取平均值的方法来计算。
具体实验记录如表1
运行路程/m
运行时间/s
=10m
1
203.9083
815.6333
2
200.4265
801.7060
3
183.6508
734.6032
4
209.0587
836.2349
5
184.4475
737.7901
6
237.9505
951.8022
平均值
203.2404
812.9615
表1分区间隔扫描模型(模型
)数据记录
通过完成清扫后垃圾分布的结果。
根据实验结果,我们可以知道扫地机完成清洁工作的时间大约为13.5min,符合实际,认为是正确的。
7实时扫描模型(问题二)
7.1区域的简单划分
首先我们建立一个50*60的矩阵,并将各个单元里的垃圾指标赋入与二位矩阵组合形成一个三维数组。
由于机器人的半径为0.2米(面积为π/25≈0.126㎡),我们可以将区域分成若干0.1*0.1㎡的方格。
可以看出机器人可以覆盖大约16个方格(0.4*0.4㎡)。
特别声明:
在这里我们把区域分成50*60的单元是对任意一个模型而言。
譬如附件给出的0.06*0.02㎡的单元我们也可以划归到0.1*0.1㎡的单元中考虑。
具体方法如下:
可以把0.06*0.02㎡的单元再分割为更小的单元如0.01*0.01㎡的单元。
分割之后小单元的垃圾指标值可以对原来的大单元取平均值求得。
下一步则是将0.01*0.01㎡的单元再组合成0.1*0.1㎡的单元,0.1*0.1㎡单元内的垃圾指标在通过组合区域内0.01*0.01㎡的单元的指标值求和得到(出现小数采取四舍五入的方法取整)。
7.2时刻扫描的抽象处理方法
根据问题重述我们可以知道智能扫地机可以通过微处理器进行现场环境分析,自动选择运行路线。
遇到障碍发生碰撞后将重新随机地选择路线,逐步进行清扫。
智能扫地机具有记忆、存储功能。
利用传感器扫描现场环境,设计运行路径并存储。
所以我们可以给出这样的假设:
[7]假设智能程度高的扫地机扫描垃圾计算指标值的过程发生在与墙壁发生碰撞的瞬间;
7.3模型
的分析与建立
在扫地机的行驶过程中,我们做出这样的假设只要碰到某个(单元?
方格?
)就算是清扫到了该区域,即认为垃圾指标值减1。
7.3.1优化路径选取
为了提高清扫的效率,我们选择清扫垃圾总数量最多的路径。
在这里我们引入一个参数C,称为经过路径的垃圾总指标值。
根据我们所建立的模型可以列出公式
(其中
为直线路径所经过单元的垃圾指标值;N为经过区域的单位总数)
通过计算每条路径的C值的大小,判断出最大的C值所在路径的终点,进而得出碰撞后扫地的朝向。
7.3.2最优化路径选取
在章节7.3.1中我们采取的优化路径选取方式是计算出垃圾总指标数最大的路径进行清扫。
但是考虑到不同的路径有不同的长短,垃圾总指标数最大的路径不一定是效率最高的,即相同的时间内清扫的垃圾个数不一定是最高的。
显然,以垃圾总指标数为路径选择判断的依据是不够优化的。
于是,在章节8中我们将引入经过路径的垃圾指标分布律
进行进一步优化的路径选择。
7.4运算思路框图
7.5运算结果与分析
通过完成清扫后垃圾分布的结果。
根据实验结果,我们可以知道扫地机完成清洁工作的时间大约为7min,符合实际,认为是正确的。
数据记录
运行路程/m
107.0581
运行时间/s
428.2324
表2实时扫描模型(模型
)数据记录
8实时扫描折线模型(问题三)
与传统的扫地机不同,智能扫地机实时可以通过微处理器进行现场环境分析,自动选择运行路线。
8.1区域的划分
(同6.1)
8.2时刻扫描的抽象处理方法
时刻扫描区域现场,参考点每移动一个单元都要进行实时的监控扫描。
8.3模型
的分析与建立——优化路径选取
在模型
中,我们选择C最大的路径作为下一步的清扫路径。
再深一步考虑,我们可以猜想到会有以下几种情况的发生。
存在两个以上的长度相等的路径同时为C的最大值所在路径
存在两个以上的长度不等的路径同时为C的最大值所在路径
存在一个长度较短的路径(
)其垃圾总指标为
、一个长度较长的路径(
)其垃圾总指标为
,而有
的条件
为了提高清扫的效率,我们选择单位长度上垃圾指标值最高的路径。
在这里我们引入一个参数P,称垃圾指标分布律。
根据我们所建立的模型可以列出公式。
(其中
为直线路径所经过单元的垃圾指标值;N为经过区域的单位总数)
通过计算每条路径的P值的大小,判断出最大的P值所在路径的终点,进而得出碰撞后扫地的朝向。
计算出每个方向的
并进行比较,判断出
最大的方向并选定其为下一次路径。
如题目要求,机器人每次经过一个单位,则该方格垃圾指标值减1,即矩阵中的相应元素减1。
为了控制扫地机工作的结束,我们认为扫地机在每次与墙壁发生碰撞的瞬间都会计算此时所有单元垃圾指标值是否都不大于1?
直到碰到墙壁后计算出此时所有单元垃圾指标值都不大于1时,扫地机自行回到充电站并停止工作。
否则再次进行判断继续向下一个
值最大的路径行进。
8.4运算思路框图
8.5运算结果与分析
通