1、1扫地机器人最佳路线设计扫地机器人最佳路线设计摘要摘要将扫地机在房间内扫垃圾的路径策略问题抽象为格栅模型。在不预知障碍物位置和数量的情况下,使用内螺旋算法规划扫地机器人清扫路线。在遇到障碍物时给出:前进方向、前进方向右侧、前进方向左侧的监听顺序(优先级)。扫地机器人已清扫的面积在代码中更新为障碍物,当扫地机器人遇到死区(前进方向及前进方向左右均为障碍物或者已清扫的格栅)时,程序检查当前地图中最近未清扫格栅。根据 A*A*算法算法给出最优路径,使将机器人运行到最近的未清扫点重新开始上述内螺旋算法,直到清扫完整个给定区域。模型建立过程中,根据扫地机需要的行走路径进行程序嵌套,并用线性规划的方法来进
2、行最优解的求取,然后根据建立的模型,用 Matlab 进行仿真演示。针对图针对图 1 1 模型验证模型验证将图形 1 转换为地图矩阵输入程序进行验证发现当出现“死区”时程序能够正常跳出死区继续内螺旋算法,在跳出但由于机器人尺寸为 20cm*20cm 在清扫图一中宽为 25cm区域时会出现宽为 5cm 的清扫盲区。这一清扫盲区我们通过修改监听步长(步长设置小于 5cm 即可清扫该区域)的方式对该区域区域进行全面清扫。在遇到 3cm*3cm 桌腿时同理可以将步长设置为 3cm 以内。具体验证结果见图:针对图针对图 2 2 模型验证模型验证将图形 2 转换为地图矩阵输入程序进行验证发现当出现“死区”
3、时程序也能够正常跳出死区继续内螺旋算法,在处理清扫进度时与图一验证方法相同。具体验证结果见图:清扫所用时间与清扫覆盖率均衡比较清扫所用时间与清扫覆盖率均衡比较监听精度的提高可以最大化提升清扫覆盖率,能绕开较小障碍物。但监听频率的升高使得清扫时间变得冗长。为均衡清扫精度与清扫时间我们以测试环境为例给出了折中方案即监听步长=(机器人尺寸+最小障碍物尺寸)/2。关键词:关键词:线性规划内螺旋A*算法清扫效率2目目 录录1.问题重述.41.1 问题背景.41.2 目标任务.41.3 具体条件及数据.42.模型假设.53.符号说明.54.模型建立与求解.64.1 内螺旋算法模型.64.2 格栅地图模型.
4、74.3 环境建模方法.74.4A*算法模型.84.5 避障方案模型.105.模型验证.115.1 无障碍模型验证.115.2 障碍模型验证.125.2.1 图一障碍模型验证.125.2.2 图二障碍模型验证.136.模型评价.136.1 清扫效率分析.136.2 清扫时间分析.146.3 清扫时间与覆盖率均衡算法.146.4A*算法的不足.14参考文献.15附录一:.16附录二.20341.问题重述问题重述1.1 问题背景问题背景随着科学技术的不断发展,扫地机逐步走入平常百姓家,并被越来越多的人所接受,扫地机(也称扫地机器人)将在不久的将来像白色家电一样成为每个家庭必不可少的清洁帮手。产品也
5、会由现在的初级智能向着更高程度的智能化程度发展,逐步取代人工清洁。扫地机是通过电动机的高速旋转,在主机内形成真空,利用由此产生的高速气流,从吸入口吸进垃圾。扫地机一般为半径 0.2 米圆盘,、运行速度一般在每秒 0.25 米左右,只走直线,且碰到墙壁等障碍才可转弯。与传统的扫地机不同,智能扫地机可以通过微处理器进行现场环境分析,自动选择运行路线。遇到障碍发生碰撞后将重新随机地选择路线,逐步进行清扫。智能扫地机具有记忆、存储功能。利用传感器扫描现场环境,设计运行路径并存储。一般不能 100%的清扫指定区域(如墙角部分)。清扫后的垃圾装进机子尾部的集尘盒,再通过人工清倒垃圾。机器在工作电压不足时会
6、自动回到充电站充电。1.2 目标任务目标任务在未知障碍物环境(地图)中,设计扫地机器人算法,机器人的清洁行进速度每 4秒一米.碰到障碍时会停顿 1 秒后适当转向(基于你所给的算法)再次行进。设计合理的清扫路线,达到良好的擦地效果。在模型建立时分别建立:“要求清洁最全面(即除了机器人达不到的死角,都能擦到在保证清洁较为全面的前提下,要求耗时最少综合考虑“清洁最全面”与“耗时少”两方面的要求,达到一个平衡”等三个模型。1.3 具体条件及数据具体条件及数据机器人的机身长、宽为 20cm20cm,高度为 5cm。它可以前进、后退以及 360 度左右转向。无障碍时,机器人的清洁行进速度每 4 秒一米.碰
7、到障碍时会停顿 1 秒后适当转向(基于你所给的算法)再次行进。52.模型假设模型假设1、假设扫地机有充足的电量行驶完全部的轨迹,并且不会发生任何障碍;2、假设路面平坦,不会产生较大程度的偏移或者是翻转;4、假设扫地机扫过单元格一半及以上的面积时,单元格内的垃圾指标减少 1;5、假设给定地图中左下角为坐标原点即起始清扫位置;6、假设由于种种环境因素不会对扫地机速率产生比较大的影响;7、假设扫地机工作时没有人为的影响改变扫地机的轨迹;8、假设当每个点的垃圾指标不超过 1 时扫地机的清扫任务结束;9、假设扫地机监听过程没有额外的占用移动时间,即扫描时间不会影响最终的运动时间。3.符号说明符号说明1、
8、L机器人最外圈行走长度;2、H1机器人最外圈行走宽度;3、长方向上的清扫次数;4、宽方向上清扫的次数;5、F路径评分;6、G当前标记离开始标记的路径耗费;7、H当前标记离目标方格的路径估值耗费;8、?房间 1(图片 1 房间)的总面积;9、?t房间 1(图片 1 房间)障碍物总面积;10、?房间 1(图片 1 房间)待清扫区域总面积;11、?t房间 1(图片 1 房间)擦地机器人实际清扫区域总面积;12、?房间 1(图片 1 房间)清扫率;13、?t房间 2(图片 2 房间)的总面积;14、?tt房间 2(图片 2 房间)障碍物总面积;15、?t?房间 2(图片 2 房间)待清扫区域总面积;1
9、6、?tt房间 2(图片 2 房间)擦地机器人实际清扫区域总面积;617、?t房间 2(图片 2 房间)清扫率;4.模型建立与求解模型建立与求解4.1 内螺旋算法模型内螺旋算法模型本文采用改进的内螺旋线路覆盖法对区域进行整体清扫。内螺旋示意图,如图 4.1所示。无障碍物时,机器人按照逆时针的方向单向行驶至转弯处为一次清扫过程,则清扫一圈需要 4 次清扫过程。图 4.1:内螺旋模型示意图设机器人机身长度为 a,(a=20cm)初次清扫模式取清扫房间一角(选取没有障碍物的一角)作为清扫起点,机器人外圈行走的长度为 L 宽度为 H1,则机器人从外圈往内圈螺旋的转数可设为。判断清扫是否完成的标准为:用
10、 L、H1 与行走轨迹宽度相除,商即为长、宽方向上各自所需清扫次数,有余数则说明还有一块宽小于的矩形区域需要清扫。其数学描述如下:设 f=,|,分别为某时刻机器人在长宽方向上的清扫次数,定义函数 g(,)表示是否还存在需要清扫的区域,则其表达式如下式(1)g(,)=?(?)g(,)=0 表示清扫任务完成;而 g(,)=1 则表示还有区域需要清扫。7螺旋转弯值的设定及清扫是否完成的判断有效地避免了随机覆盖法低覆盖率及高重复率的缺点。4.2 格栅地图模型格栅地图模型栅格地图是 20 世纪 80 年代有 Elfes 和 Moravec 等人提出的,是指将环境分为大小相等的一些方格,每个方格表示环境中
11、的一个区域。栅格地图是应用最为广范的地图构建方法,广泛用于机器人的路径规划、导航等领域。栅格地图属于近似描述环境的一种方法,描述同一个环境,栅格的数目越多对环境的描述越精确。栅格地图创建更新方便,地图中的每一个栅格对应环境中的部分区域,当传感器检测到环境发生变化时,栅格地图及时更新。栅格的大小决定了栅格地图的精度,栅格选择过大,地图的精度不够,进行区域覆盖时会有一些可达区域被标记为障碍物区域,造成覆盖率的下降;栅格选择过小,会导致地图存储空间增大,计算复杂程度增大,因此运用栅格法创建地图需要考虑覆盖率和计算复杂程度选择合适的栅格大小。4.3 环境建模方法环境建模方法利用生物激励神经网络进行全区
12、域覆盖,理论上不需要获得环境的先验信息,但是由于算法不能识别环境边界,因此需要在进行区域覆盖之前获得环境边界的信息。机器人通过自身的传感器感知环境信息,并将环境信息用一定的形式表示就是环境建模。环境地图的表示方法主要有三种,分别为拓扑地图、栅格地图以及特征地图。每种方法都有各自的优劣点和适用范围,下面对三种方法进行比较。(1)(1)拓扑地图拓扑地图1978 年,Kuipers 提出了一种紧凑的环境表示方法拓扑地图,用结点和线来表示环境的一种方法,结点表示环境中的一些比较重要的位置点,例如障碍物、拐角等,线则表示结点之间的相互连接关系。拓扑地图的复杂程度与环境的结构有关,当环境结构复杂时,拓扑地
13、图内的结点增加,拓扑图也越复杂。将环境表示为拓扑图,忽略了环境内部具体几何特征,不同结点之间的位置关系不需要给出精确的描述。机器人由一个结点到另一个结点,机器人只需要知道从哪条线走就可以了,对机器人的位姿精度要求不高。拓扑地图表示的方法简单,存储空间要求小,处理速度快,但是拓扑地图要求环境中的结点之间有明确的可区分标志,否则机器人很难区分环境中存在的相似结点。拓8扑地图的方法适用于点到点的路径规划,机器人只需从环境中的一个结点到另一个结点,但是对于清扫机器人的全区域覆盖,拓扑地图的方法有一定的局限性。拓扑地图无法具体的表述环境中的每一点的信息,这样在进行区域覆盖时就无法确定区域覆盖与否。(2)
14、(2)特征地图特征地图特征地图是指根据机器人的传感器采集到环境中的特征,例如拐角点、目标边缘等环境特征,从中获得这些特征的几何信息数据,将这些数据保存起来存储在地图中,机器人识别环境中的这些特征,实现机器人的定位。在一些室内的环境中,可以用一些线、面来表征环境,例如环境里的障碍物,门等环境特征。创建特征地图对传感器的要求很高,需要将传感器采集到的信息进行预处理,一般使用于高度结构化的环境。(3)(3)栅格地图栅格地图栅格地图是应用最为广范的地图构建方法,广泛用于机器人的路径规划、导航等领域。栅格地图属于近似描述环境的一种方法,描述同一个环境,栅格的数目越多对环境的描述越精确。栅格地图创建更新方
15、便,地图中的每一个栅格对应环境中的部分区域,当传感器检测到环境发生变化时,栅格地图及时更新。栅格的大小决定了栅格地图的精度,栅格选择过大,地图的精度不够,进行区域覆盖时会有一些可达区域被标记为障碍物区域,造成覆盖率的下降;栅格选择过小,会导致地图存储空间增大,计算复杂程度增大,因此运用栅格法创建地图需要考虑覆盖率和计算复杂程度选择合适的栅格大小。4.4 A*算法模型算法模型A*搜寻算法俗称 A 星算法。A*算法是比较流行的启发式搜索算法之一,被广泛应用于路径优化领域。它的独特之处是检查最短路径中每个可能的节点时引入了全局信息,对当前节点距终点的距离做出估计,并作为评价该节点处于最短路线上的可能
16、性的量度。A*寻路算法,只是保证在低消耗的情况在最短的时间找出路径,但 A*寻路算法寻出来的路不一定是最近,但也绝对不会远的离谱,可也不排除你对路径评分算法的优化可以做到最快最短最低消耗,或者对最终路径的优化来达到目的,下面就来讲讲通用的路径评分计算公式:9F=G+H(2)F 值表示路径评分,G 值表示当前所判断的标记离开始标记的路径耗费,H 值表示当前所判断的标记离目标方格的路径估值耗费。G 值的计算方式是,如果为斜走判断则用父标记的 G 值加上 14 表示当前标记的 G 值,如果为直走判断则用父标记的 G 值加上10 表示当前标记 G 值。H 值通常的计算方式是一种称作为曼哈顿方法的方式,当前标记离目标方格横着的方格数加上竖着的方格数,然后乘以 10,最后得值就是 H 值。当然若你想通过 A*寻出最好的路径,那么改善算法的主要地方就是这个 H 值的算法。根据上面讲的 A*算法的做法来讲,则表示前面判断哪个标记离开始标记更近一些只需判断一下 G 值即可;前面所说的取出一个路径评分最低标记,也就是将 F 值进行升序排序取出第一个,或降序排序取出最后一个。图 4.2:A*算法实现最短路径
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1