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