一种基于栅格地图的密集障碍物点标记方法与流程
本发明涉及栅格地图定位的技术领域,具体涉及一种基于栅格地图的密集障碍物点标记方法。
背景技术:
扫地机机器人通常需要对清扫的环境进行覆盖清扫,清扫覆盖区域包括家庭环境常见的角落、椅脚周围、桌子脚周围等等。在家庭环境中,椅脚之间和桌子脚之间都是较为狭小的可通行区域,可以将椅脚和桌子脚视为密集分布的障碍物。虽然市面上带激光的扫地机机器人一般都能准确的测算到这些密集分布的障碍物位置,但是需要扫地机机器人调用嵌入式平台上大量的内存配合,降低扫地机机器人清扫密集障碍物的效率。
技术实现要素:
为了解决上述技术问题,本发明公开一种基于栅格地图的密集障碍物点标记方法,在已知栅格信息的地图上设置可移动的矩形框,通过框定的间隔分布的障碍物的栅格的数目与矩形框覆盖面积的关系来识别密集障碍物点并构建起密集障碍物区,不需要激光传感器扫描进行障碍物的精准识别定位,从而只需要很少资源(包括硬件和软件资源)就能让扫地机机器人识别出椅脚之间和桌子脚之间的狭小的可通行区域,避免密集障碍物之间的空隙区域出现漏扫现象。具体的技术方案如下:
一种基于栅格地图的密集障碍物点标记方法,该密集障碍物点标记方法包括:步骤1、控制清洁机器人在待清洁区域内按照预设弓字形规划路径进行清扫,其中,当清洁机器人在清扫过程中检测到障碍物时,控制清洁机器人在实时构建的栅格地图中标记出障碍物的栅格但不绕过这个障碍物;障碍物的栅格包括间隔分布的障碍物的栅格;步骤2、根据滑动矩形框在栅格地图移动的过程中所框定的间隔分布的障碍物的栅格数目,在栅格地图上设置密集障碍物标准单元区域,然后以密集障碍物标准单元区域的中心为构建起点,设置预设数量的与滑动矩形框的尺寸大小相同的定位矩形框,再控制这些定位矩形框从构建起点处开始,分别沿着栅格地图上的预设数量的关于构建起点中心对称的遍历方向移动;其中,所述滑动矩形框是在实时构建的栅格地图上设置的;步骤3、根据每个定位矩形框在移动后相对于移动前框定的新区域的面积与对应的定位矩形框在移动前框定的区域面积的比值与同一定位矩形框在移动前后的所框定的间隔分布的障碍物的栅格数目的变化量之间的关系,控制每个定位矩形框是否朝对应的遍历方向继续移动,同时将每个定位矩形框所框定过的间隔分布的障碍物的栅格标记为密集障碍物点;其中,每个定位矩形框都被配置为按照一个单位遍历距离进行对应的遍历方向的一次移动。
与现有技术相比,本技术方案在障碍物位置信息已知和实际完成局部区域清扫的基础上,控制矩形框在栅格地图上以构建中心为起点按照特定的遍历方向进行移动,根据矩形框移动前后所框定的障碍物栅格数目的变化量与其新覆盖区域的面积之间的对应关系(即一定栅格区域面积上存在相应数量的满足密集分布要求的障碍物的栅格),获取能够组成密集障碍物区的间隔分布的障碍物的栅格位置信息,本技术方案在确保栅格地图信息的精度的前提下,获取满足密集分布要求的障碍物的栅格信息,降低了滑动矩形框在栅格地图占用的运行内存空间,避免后续清洁机器人在所述待清洁区域椅脚之间和桌子脚之间的狭小的可通行区域内出现漏扫。
进一步地,所述密集障碍物点标记方法还包括:步骤4、当预设数量的定位矩形框都停止移动时,将标记过的所有密集障碍物点对应的栅格组合构建为密集障碍物区。从而让清洁机器人获取栅格地图上标记组成的密集障碍物区,适用于更多的定位和导航场景。
进一步地,所述间隔分布的障碍物的栅格是:在所述步骤11标记出的障碍物的栅格中,除了连续分布的n个障碍物的栅格后之外的障碍物的栅格;其中,n是根据所述栅格地图中的预先配置的栅格尺寸大小和所述待清洁区域内标记的障碍物的实际尺寸设置的连续分布的栅格的数量。本技术方案将墙体与密集障碍物区别开来,避免所述清洁机器人将墙体区域处理为密集障碍物区而重复清扫墙体区域,因为墙体区域是空旷区域不存在狭小的可通行区域,清洁机器人按照预设弓字形规划路径进行清扫过程中不容易在墙体区域出现漏扫。
进一步地,在所述步骤2中,所述在栅格地图上设置密集障碍物标准单元区域的方法包括:控制所述滑动矩形框在栅格地图上滑动,同时将所述滑动矩形框在栅格地图框定的间隔分布的障碍物的栅格标记为未清扫状态,并实时记录这些框定的间隔分布的障碍物的栅格的数目;当所述滑动矩形框框定的间隔分布的障碍物的栅格的数目大于或等于第一密集阈值时,将滑动矩形框当前框定的矩形区域设置为所述密集障碍物标准单元区域;其中,第一密集阈值用于表示所述密集障碍物点在栅格地图中分布的密集程度,足以让所述间隔分布的障碍物之间的空隙区域成为所述清洁机器人的漏扫区域。
进一步地,在所述步骤3中,所述根据每个定位矩形框在移动之后相对于移动之前框定的新区域的面积与对应的定位矩形框在移动前框定的区域面积的比值与同一定位矩形框在移动前后的所框定的间隔分布的障碍物的栅格数目的大小变化量之间的关系,控制每个定位矩形框是否朝对应的遍历方向继续移动的方法包括:每当存在其中一个定位矩形框朝对应的遍历方向发生一次所述单位遍历距离的移动时,判断移动之后的这个定位矩形框所框定的间隔分布的障碍物的栅格数目与移动之前的这个定位矩形框所框定的间隔分布的障碍物的栅格数目的比值是否大于或等于移动之后的这个定位矩形框中的没与移动之前的这个定位矩形框重叠的区域的面积占比,是则控制这个定位矩形框继续朝同一遍历方向移动所述单位遍历距离,否则控制这个定位矩形框停止移动;其中,移动之后的这个定位矩形框中的没与移动之前的这个定位矩形框重叠的区域的面积占比是这个定位矩形框在移动之后相对于移动之前框定的新区域的面积与同一定位矩形框在移动之前框定的区域面积的比值。该技术方案在前述技术方案建立一个密集障碍物标准单元区域的基础上,通过控制各个定位矩形框在对应遍历方向上移动单位遍历距离,以探测障碍物的栅格的分布密集程度并以固定的矩形框框定的栅格数目为反馈信息,确定密集障碍物区的合理构建范围,其在复杂障碍物狭窄环境下区域构建中具有高效性、有效性和适应性。
进一步地,所述定位矩形框是正方形框,所述预设数量是8;所述关于所述构建起点中心对称的遍历方向包括:设置为所述密集障碍物标准单元区域的正方形框的横向边长向右方向、设置为所述密集障碍物标准单元区域的正方形框的横向边长向左方向、设置为所述密集障碍物标准单元区域的正方形框的纵向边长向上方向、设置为所述密集障碍物标准单元区域的正方形框的纵向边长向下方向、设置为所述密集障碍物标准单元区域的正方形框的对角线的左上指向、设置为所述密集障碍物标准单元区域的正方形框的对角线的左下指向、设置为所述密集障碍物标准单元区域的正方形框的对角线的右上指向、设置为所述密集障碍物标准单元区域的正方形框的对角线的右下指向。该技术方案减少所述定位矩形框在栅格地图中移动路径和实时框定的间隔分布的障碍物的栅格数目的运算复杂度,缩短8个遍历方向上的定位矩形框的移动时间,加快算法收敛速度。
进一步地,所述步骤1中,所述控制清洁机器人在待清洁区域内按照预设弓字形规划路径进行清扫,当清洁机器人在清扫过程中检测到障碍物时,不绕过这个障碍物的方式包括:控制所述清洁机器人沿着所述预设弓字形规划路径行走,当所述清洁机器人在所述预设弓字形规划路径的预设直线路径碰撞到障碍物时,控制所述清洁机器人的机身旋转预设角度,使得所述清洁机器人通过调整当前的前进方向来移动至与预设直线路径段间隔预设距离的未清扫直线路径上;其中,这个未清扫直线路径是属于所述预设弓字形规划路径并与预设直线路径的方向平行;预设距离是所述预设弓字形规划路径的相邻两个平行的直线路径的间隔距离的预设倍数,这个预设倍数与所述清洁机器人当前碰撞的障碍物的尺寸大小相关;其中,所述清洁机器人从所述预设直线路径移动至间隔所述预设距离的未清扫直线路径的过程中都在执行清扫作业。该技术方案在机器人按照预设弓字形规划路径进行清扫的过程中,没有进行绕障行走而是直接按照弓字形清扫模式移动到预设弓字形规划路径的相邻直线路径上,以实现对所述待清洁区域内的空旷区域的清扫,避免在没构建识别出密集障碍物的基础上清扫障碍物密集分布区域过程中出现漏扫现象,降低机器人的清扫工作效率。
进一步地,在控制所述清洁机器人的机身旋转所述预设角度的过程中,如果所述清洁机器人检测到碰撞上障碍物,则控制所述清洁机器人沿这个障碍物的边缘行走,直至到达与所述预设直线路径间隔所述预设距离的未清扫直线路径上以维持弓字形规划清扫,但没有完全绕过这个障碍物。该技术方案利用所述预设弓字形规划路径存在平行间隔设置的直线路径的特点,既完成避障动作,也维持正常的弓字形清扫,提高清洁机器人弓字形清扫工作的环境适应性,保证清洁机器人的工作效率。
进一步地,在控制所述清洁机器人从一个预设起点位置移动至所述预设直线路径的过程中,如果所述清洁机器人检测到碰撞上障碍物,那么控制所述清洁机器人搜索所述预设弓字形规划路径的其他的未清扫直线路径,使得所述清洁机器人按照搜索出的未清扫路径继续进行清扫以避开搜索前所检测到的障碍物;其中,这个预设起点位置是位于所述预设直线路径之外。该技术方案在清洁机器人开始执行弓字形清扫之前,通过搜索有效的预设弓字形规划路径完成避障动作,提高清洁机器人清扫工作的环境适应性,保证清洁机器人的工作效率。
附图说明
图1为本发明一实施例公开一种基于栅格地图的密集障碍物点标记方法。
图2为本发明一实施例公开的在待清洁区域内标记的障碍物的分布图。
图3为在图2所示的待清洁区域内,8个箭头方向上的定位矩形框移动框定障碍物的栅格的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行详细描述。
在本申请中,术语“上”、“下”、“内”、“中”、“外”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
作为一种实施例,本发明公开一种基于栅格地图的密集障碍物点标记方法,如图1所示,具体包括以下步骤:
步骤s101、控制清洁机器人在待清洁区域内按照预设弓字形规划路径进行清扫,其中,当清洁机器人在清扫过程中检测到障碍物时,控制清洁机器人在实时构建的栅格地图中标记出障碍物的栅格但不绕过这个障碍物;然后进入步骤s102。如图2所示,待清洁区域内障碍物的栅格包括间隔分布的障碍物的栅格;图2的方框的左上方的间隔分布的障碍物之间的间距比较小,是本发明申请的背景技术中提及的密集分布的障碍物;图2的方框的右下方的间隔分布的障碍物之间的间距比较大,是离散分布的障碍物。
在本实施例中,所述间隔分布的障碍物的栅格是:在所述步骤s101标记出的障碍物的栅格中,除了连续分布的n个障碍物的栅格之外的障碍物的栅格,本实施例通过将连续分布的n个障碍物的栅格在栅格地图上被标记成已清扫空旷状态来过滤掉连续分布的n个障碍物的栅格;其中,n是根据所述栅格地图中的预先配置的栅格尺寸大小和所述待清洁区域内标记的障碍物的实际尺寸设置的连续分布的栅格的数量。优选地,所述连续分布的n个障碍物的栅格用于表示墙壁,从而可以把墙壁等等边界较长的障碍物过滤掉,这里n是预设墙体栅格数量阈值,用于表示墙壁长度信息,预设墙体栅格数量阈值是根据所述栅格地图中的预先配置的栅格尺寸大小和所述待清洁区域内标记的障碍物的实际尺寸设置的,比如要大于10个连续分布的障碍点才表示为边界长、体型大的障碍物的轮廓。与现有技术相比,本实施例将墙体与密集障碍物区别开来,避免所述清洁机器人将墙体区域处理为密集障碍物区而重复清扫墙体区域,因为墙体区域是空旷区域,不存在狭小的可通行区域,清洁机器人按照预设弓字形规划路径进行清扫过程中不容易在墙体区域出现漏扫。
在所述步骤s101中,所述控制清洁机器人在待清洁区域内按照预设弓字形规划路径进行清扫,当清洁机器人在清扫过程中检测到障碍物时,不绕过这个障碍物的方式包括:控制所述清洁机器人沿着所述预设弓字形规划路径行走,当所述清洁机器人在所述预设弓字形规划路径的预设直线路径碰撞到障碍物时,控制所述清洁机器人的机身旋转预设角度,再控制所述清洁机器人按照旋转后的前进方向移动,直到所述清洁机器人在与预设直线路径垂直的方向上产生预设距离的移动距离,使得所述清洁机器人通过调整当前的前进方向来移动至与预设直线路径段间隔预设距离的未清扫直线路径上,从而没有完整地清扫这个障碍物的轮廓周围的区域,产生漏扫。本实施例中,这个未清扫直线路径是属于所述预设弓字形规划路径并与预设直线路径的方向平行;预设距离是所述预设弓字形规划路径的相邻两个平行的直线路径的间隔距离的预设倍数,这个预设倍数与所述清洁机器人当前碰撞的障碍物的尺寸大小相关。需要说明的是,所述清洁机器人从所述预设直线路径移动至间隔所述预设距离的未清扫直线路径的过程中都在执行清扫作业,以实现对所述待清洁区域内的空旷区域的清扫,这个空旷区域是不存在密集分布的障碍物的。避免在没构建识别出密集障碍物的基础上清扫障碍物密集分布区域出现漏扫现象,降低机器人的清扫工作效率。
优选地,在控制所述清洁机器人的机身旋转所述预设角度的过程中,如果所述清洁机器人检测到碰撞上障碍物,则控制所述清洁机器人沿这个障碍物的边缘行走,直至到达与所述预设直线路径相平行且彼此间隔所述预设距离的未清扫直线路径上以维持正常的弓字形清扫,但没有完全绕过这个障碍物,从而没有完整地清扫这个障碍物的轮廓周围的区域,产生漏扫。其中,这个未清扫直线路径是属于所述预设弓字形规划路径并与预设直线路径的方向平行。
因此,每当所述清洁机器人沿着所述预设弓字形规划路径的预设直线路径行走时,若检测到碰撞上障碍物,则通过调整所述清洁机器人的实时位姿来改变当前前进方向,使得所述清洁机器人跨越一个所述预设距离来移动至与预设直线路径方向平行的未清扫直线路径上,预设距离是所述预设弓字形规划路径的相邻两个平行的直线路径的间隔距离的预设倍数,这个预设倍数与所述清洁机器人当前碰撞的障碍物的尺寸大小相关。从而维持弓字形规划清扫,并有效地避开当前碰撞的障碍物。提高清洁机器人弓字形清扫工作的环境适应性,保证清洁机器人的工作效率。
优选地,在控制所述清洁机器人从一个预设起点位置移动至所述预设直线路径的过程中,即开始按照预设弓字形规划路径进行清扫之前,如果检测到碰撞上障碍物,那么控制所述清洁机器人搜索所述预设弓字形规划路径的其他的未清扫的直线路径,使得所述清洁机器人按照搜索出的未清扫路径继续进行清扫以避开搜索前所检测到的障碍物,也实现选择新的弓字形路径起点位置以开始执行弓字形规划清扫;其中,这个预设起点位置是位于所述预设直线路径之外。本实施例在清洁机器人开始执行弓字形清扫之前,通过搜索有效的预设弓字形规划路径完成避障动作,提高清洁机器人清扫工作的环境适应性,保证清洁机器人的工作效率。
步骤s012、根据滑动矩形框在栅格地图移动的过程中所框定的间隔分布的障碍物的栅格数目,在栅格地图上设置密集障碍物标准单元区域,然后以密集障碍物标准单元区域的中心为构建起点,设置预设数量的与滑动矩形框的尺寸大小相同的定位矩形框,再控制这些定位矩形框从构建起点处开始,分别沿着栅格地图上的预设数量的关于构建起点中心对称的遍历方向移动;然后进入步骤s103。其中,所述滑动矩形框是在实时构建的栅格地图上设置的。
具体地,在所述步骤s102中,所述在栅格地图上设置密集障碍物标准单元区域的方法包括:控制所述滑动矩形框在栅格地图上移动,本实施例控制所述滑动矩形框从所述栅格地图的左上角开始,自左往右地移动,同时将所述滑动矩形框在栅格地图框定的间隔分布的障碍物的栅格标记为未清扫状态,并实时记录所述滑动矩形框实时框定的间隔分布的障碍物的栅格的数目;当所述滑动矩形框框定的间隔分布的障碍物的栅格的数目大于或等于第一密集阈值时,将滑动矩形框当前框定的矩形区域设置为所述密集障碍物标准单元区域,如图2中的矩形框a11所示。其中,第一密集阈值用于表示所述密集障碍物点在栅格地图中分布的密集程度,足以让所述间隔分布的障碍物之间的空隙区域成为所述清洁机器人在常规弓字形规划清扫模式下的漏扫区域或地图产生定位误差的条件下的漏扫区域。
步骤s103、根据每个定位矩形框在移动后相对于移动前框定的新区域的面积与对应的定位矩形框在移动前框定的区域面积的比值与同一定位矩形框在移动前后的所框定的间隔分布的障碍物的栅格数目的变化量之间的关系,控制每个定位矩形框是否朝对应的遍历方向继续移动,同时将每个定位矩形框所框定过的间隔分布的障碍物的栅格标记为密集障碍物点;其中,每个定位矩形框都被配置为按照一个单位遍历距离进行对应的遍历方向的一次移动。
具体地,在所述步骤s103中,所述根据每个定位矩形框在移动后相对于移动前框定的新区域的面积与对应的定位矩形框在移动前框定的区域面积的比值与同一定位矩形框在移动前后的所框定的间隔分布的障碍物的栅格数目的大小变化量之间的关系,控制每个定位矩形框是否朝对应的遍历方向继续移动的方法包括:每当存在其中一个定位矩形框朝对应的遍历方向发生一次所述单位遍历距离的移动时,判断移动之后的这个定位矩形框所框定的间隔分布的障碍物的栅格数目与移动之前的这个定位矩形框所框定的间隔分布的障碍物的栅格数目的比值是否大于或等于移动之后的这个定位矩形框中的没与移动之前的这个定位矩形框重叠的区域的面积占比,是则控制这个定位矩形框继续朝同一遍历方向移动所述单位遍历距离,否则控制这个定位矩形框停止移动;其中,移动之后的这个定位矩形框中的没与移动之前的这个定位矩形框重叠的区域的面积占比是这个定位矩形框在移动之后相对于移动之前框定的新区域的面积与同一定位矩形框在移动之前框定的区域面积的比值。
在前述实施例建立一个密集障碍物标准单元区域的基础上,通过控制各个定位矩形框在对应遍历方向上移动单位遍历距离,以探测障碍物的栅格的分布密集程度并以固定的矩形框框定的栅格数目作为反馈单位面积的障碍物密集程度的信息,从而确定密集障碍物区的合理构建范围,使得其在复杂障碍物狭窄环境下的区域构建中具有高效性、有效性和适应性。
与现有技术相比,前述步骤s101至步骤s103在障碍物位置信息已知和实际完成局部区域清扫的基础上,控制矩形框在栅格地图上以构建中心为起点按照特定的遍历方向进行移动,根据矩形框移动前后所框定的障碍物栅格数目的变化量与其新覆盖区域的面积之间的对应关系(即一定栅格区域面积上存在相应数量的满足密集分布要求的障碍物的栅格),获取能够组成密集障碍物区的间隔分布的障碍物的栅格位置信息,本技术方案在确保栅格地图信息的精度的前提下,获取满足密集分布要求的障碍物的栅格信息,避免后续清洁机器人在所述待清洁区域椅脚之间和桌子脚之间的狭小的可通行区域内出现漏扫。比使用激光传感器直接扫描出密集障碍物的位置的技术手段节省运算内存。
在执行所述步骤s103之后,如图1所示,还包括:步骤s104、当判断到预设数量的定位矩形框都停止移动时,即预设数量的定位矩形框都在对应的一次移动之后所框定的间隔分布的障碍物的栅格数目与对应的一次移动之前所框定的间隔分布的障碍物的栅格数目的比值小于同一定位矩形框在对应的一次移动之后覆盖的新区域的面积与同一定位矩形框在对应的一次移动之前框定的区域面积的比值时,将标记过的所有密集障碍物点对应的栅格组合构建为密集障碍物区。该步骤获取能够组成密集障碍物区的间隔分布的障碍物的栅格位置信息,从而让清洁机器人获取栅格地图上标记组成的密集障碍物区。
作为一种实施例,如图3所示,所述定位矩形框可以设置为正方形框,所述预设数量是8;优选地,这个正方形框的边长对应到实际的待清洁区域内是2m。因此,在本实施例中,所述关于所述构建起点中心对称的遍历方向,如图3所示,包括:设置为所述密集障碍物标准单元区域a11的正方形框的横向边长向右方向、设置为所述密集障碍物标准单元区域a11的正方形框的横向边长向左方向、设置为所述密集障碍物标准单元区域a11的正方形框的纵向边长向上方向、设置为所述密集障碍物标准单元区域a11的正方形框的纵向边长向下方向、设置为所述密集障碍物标准单元区域a11的正方形框的对角线的左上指向、设置为所述密集障碍物标准单元区域a11的正方形框的对角线的左下指向、设置为所述密集障碍物标准单元区域a11的正方形框的对角线的右上指向、设置为所述密集障碍物标准单元区域a11的正方形框的对角线的右下指向。然后,以设置为所述密集障碍物标准单元区域a11的正方形框的对角线交点为中心,也作为所述构建起点,预设数量的遍历方向是构建起点中心对称的,所述单位遍历距离设置为跟随遍历方向的变化而变化以简化所述步骤s103中的面积、比值大小的计算复杂度。
当实际使用到的所述遍历方向为正方形框a11的横向边长向右方向、正方形框a11的横向边长向左方向、正方形框a11的纵向边长向上方向、正方形框a11的纵向边长向下方向时,选择数值为正方形框a11的边长的一半的单位遍历距离,设置4个与正方形框a11的尺寸大小相同的定位矩形框,控制这4个定位矩形框分别往正方形框a11横向边长向左、横向边长向右、纵向边长向上、纵向边长向下这四个遍历方向移动正方形框a11的边长的一半的距离,这4个定位矩形框移动正方形框a11的边长的一半的距离后,每一个定位矩形框新覆盖的区域面积占正方形框a11覆盖的区域面积的一半。此时,如果存在定位矩形框所框定的障碍物的栅格的数量大于或等于正方形框a11框定的障碍物的栅格的数量的一半,则控制这个定位矩形框继续往对应的遍历方向上移动正方形框a11的边长的一半的距离,说明这个定位矩形框当前框定区域内的障碍物的栅格满足所述密集障碍物点的分布特征要求,如果存在定位矩形框所框定的障碍物的栅格的数量小于正方形框a11框定的障碍物的栅格的数量的一半,则控制这个定位矩形框停止移动,说明这个定位矩形框当前框定区域内的障碍物的栅格过少、分布离散。需要说明的是,本实施例用于判断栅格数量的障碍物的栅格只是所述间隔分布的障碍物的栅格。
当实际使用到的所述遍历方向为正方形框a11的对角线的左上指向、正方形框a11的对角线的左下指向、正方形框a11的对角线的右上指向、正方形框a11的对角线的右下指向时,选择数值为正方形框a11的对角线的一半的单位遍历距离,另外设置4个与正方形框a11的尺寸大小相同的定位矩形框,控制这4个定位矩形框分别往正方形框a11的对角线的左上指向、对角线的左下指向、对角线的右上指向、对角线的右下指向这四个遍历方向移动正方形框a11的对角线的一半的距离,这4个定位矩形框移动后,每一个定位矩形框新覆盖的区域面积占正方形框a11覆盖的区域面积的四分之三。此时,如果存在定位矩形框所框定的障碍物的栅格的数量大于或等于正方形框a11框定的障碍物的栅格的数量的四分之三,则控制这个定位矩形框继续往对应的遍历方向上移动正方形框a11的对角线的一半的距离;如果存在定位矩形框所框定的障碍物的栅格的数量小于正方形框a11框定的障碍物的栅格的数量的四分之三,则控制这个定位矩形框停止移动。需要说明的是,本实施例用于判断栅格数量的障碍物的栅格只是所述间隔分布的障碍物的栅格。
综上,本实施例减少所述定位矩形框在栅格地图中移动路径和实时框定的间隔分布的障碍物的栅格数目的运算复杂度,降低了滑动矩形框在栅格地图占用的运行内存空间,缩短8个遍历方向上的定位矩形框的移动时间。然后当判断到所有的定位矩形框都停止移动时,把以正方形框a11的构建起点为开始点四周移动所框定的障碍物的栅格标记为所述密集障碍物点,这些标记的密集障碍物点组成一个所述密集障碍物区。
在前述实施例标记的密集障碍物点的基础上,本发明实施例还公开一种基于密集障碍物的清扫控制方法,通过碰撞障碍物和绕障行走来对密集障碍物周边区域进行绕障遍历清扫,从而只需要很少资源(包括硬件和软件资源)就能控制清洁机器人绕着椅脚之间和桌子脚之间的狭小的可通行区域清扫,避免密集障碍物之间的空隙区域出现漏扫现象。具体的清扫控制方法包括:
步骤s1、按照前述实施例中所述的一种基于栅格地图的密集障碍物点标记方法完成密集障碍物点的标记,然后进入步骤s2;优选地,栅格地图上的障碍物的栅格是清洁机器人通过规划清扫一个待清洁区域而预先标记的,这个待清洁区域内包括连续分布的障碍物的栅格和间隔分布的障碍物的栅格,间隔分布的障碍物的栅格包括密集分布的障碍物的栅格,而密集分布的障碍物的栅格的识别标准是建立在预先设置的滑动矩形框对应移动框定的间隔分布的障碍物的栅格数目的基础上。
步骤s2、根据栅格地图中标记出的密集障碍物点,规划出终点位置是对应密集障碍物点且没有经过其他的障碍物的栅格的导航路径;然后进入步骤s3;该步骤s2可以是根据栅格地图中标记出的密集障碍物点,在所述待清洁区域内规划出终点位置是对应密集障碍物点且没有经过其他的障碍物的栅格的导航路径。需要说明的是,正常规划出的导航路径在地图不出现偏差的情况下,是不会经过障碍物的栅格的,导航路径的终点位置才是密集障碍物点。
步骤s3、在所述清洁机器人按照所述步骤s2规划出的导航路径导航至待清扫的密集障碍物点对应的实际位置之前,判断是否碰撞上障碍物,是则控制所述清洁机器人绕当前碰撞的障碍物行走一圈,当所述清洁机器人完成绕当前碰撞的障碍物行走一圈后,实现对当前碰撞的障碍物轮廓边缘区域的覆盖清扫,将这个障碍物标记为已清扫障碍物状态,再进入步骤s4;否则直接进入步骤s4。需要说明的是,所述清洁机器人在绕当前碰撞的障碍物行走的过程中保持执行清扫作业。所述步骤s2规划出的导航路径在地图不出现偏差的情况下,导航路径的终点位置是待清扫的密集障碍物点,而导航路径不会经过其他的障碍物的栅格。
需要说明的是,用于检测碰撞的传感器包括但不限于红外传感器、超声波传感器或者物理碰撞装置。所述待清扫的密集障碍物点是从所述步骤s1标记出的密集障碍物点中挑选出来的,用于作为待清扫的目标位置。
步骤s4、在所述清洁机器人已经导航至待清扫的密集障碍物点对应的实际位置时,判断是否碰撞上这个待清扫的密集障碍物点处的障碍物,是则控制所述清洁机器人绕这个待清扫的密集障碍物点处的障碍物行走一圈,当所述清洁机器人完成绕这个待清扫的密集障碍物点处的障碍物行走一圈后,实现对所述待清扫的密集障碍物点对应的实际位置的周围区域的覆盖清扫,将这个待清扫的密集障碍物点标记为已清扫障碍物状态,再进入步骤s5;否则直接进入步骤s5。需要说明的是,所述清洁机器人在绕这个待清扫的密集障碍物点处的障碍物行走的过程中保持执行清扫。
前述步骤实现:在所述清洁机器人按照所述步骤2规划出的导航路径导航至每个密集障碍物点对应的实际位置的过程中(视为导航移动至密集障碍物点对应的实际位置之前和刚好导航移动至密集障碍物点对应的实际位置处),根据所述清洁机器人检测到的障碍物碰撞情况,控制所述清洁机器人完成绕当前碰撞的障碍物行走一圈,并标记当前碰撞的障碍物对应栅格的清扫状态。与现有技术相比,本实施例通过规划所述清洁机器人到达密集障碍物点对应的实际位置之前和到达密集障碍物点对应的实际位置之时的绕障行走方式,来克服地图漂移误差为清洁机器人实际导航带来的障碍物的影响,使得清洁机器人按照地图规划的导航路径导航至密集障碍物点对应的实际位置,减少因为地图漂移而让原先不经过障碍物的栅格的导航路径变成实际覆盖过障碍物的导航路径的情况,需要注意的是,步骤s2正常规划出的导航路径在地图不出现偏差的情况下,是不会经过障碍物的栅格的,导航路径的终点位置才是密集障碍物点。进而控制清洁机器人完成不同的密集障碍物点之间的狭小空隙位置和当前到达的密集障碍物点周围窄小区域的清扫,避免在密集障碍物分布区域内出现漏扫现象。
步骤s5、在所述清洁机器人已经导航至待清扫的密集障碍物点对应的实际位置后,判断所述清洁机器人是否直接穿过待清扫的密集障碍物点对应的实际位置,是则将这个待清扫的密集障碍物点标记为已清扫空地状态,即所述清洁机器人在沿着所述步骤s2规划的导航路径到达所述待清扫的密集障碍物点对应的障碍物所占据的实际位置,表示所述待清扫的密集障碍物点对应的实际位置处不存在障碍物,地图出现定位标记误差,需要排除掉,但所述清洁机器人还是遍历清扫过所述待清扫的密集障碍物点对应的实际位置,所以该优选例将栅格地图中标记为密集障碍物点但不符合实际位置的栅格标记为已清扫空地状态,防止清洁机器人再次清扫遍历这个位置,克服栅格地图误差的影响,然后再进入步骤s6;否则直接进入步骤s6。
步骤s6、判断所述步骤s1标记出的所有密集障碍物点是否都对应标记为所述已清扫障碍物状态或所述已清扫空地状态,即判断所述清洁机器人沿着所述步骤s2规划的导航路径导航的过程中是否将所有已标记的密集障碍物点都遍历过一次并分别加以标记障碍物对应栅格的清扫状态,是则进入步骤s7,否则返回步骤s3以重复执行步骤s3至步骤s5,直到清扫遍历标记完所述步骤s1标记出的所有密集障碍物点。
步骤s7、控制所述清洁机器人导航至未清扫区域,然后返回所述步骤s1以标记出新的密集障碍物点,再重复前述步骤,直到所述清洁机器人遍历完所述栅格地图对应的全部区域。具体地,通过执行步骤s1至步骤s7,所述清洁机器人沿着所述步骤s2规划的导航路径,能够将一个待清洁区域内所有已标记的密集障碍物点遍历过一次后,控制所述清洁机器人移动至未遍历区域,然后返回所述步骤s1以标记出新的密集障碍物点,再重复前述步骤,直到所述清洁机器人遍历完所述栅格地图对应的全部区域。从而完成所有存在的密集障碍物的分布区域的覆盖清扫。
与现有技术相比,前述步骤s1至步骤s7通过碰撞障碍物和绕障行走来获取密集障碍物的位置分布信息,不需要激光传感器参与密集障碍物群的线段扫描定位,从而只需要很少运行内存资源(包括硬件和软件资源)就能控制扫地机机器人清扫椅脚之间和桌子脚之间的狭小的可通行区域,避免密集障碍物之间的空隙区域出现漏扫现象。
作为一种实施例,控制清洁机器人按照第一预设导航路径向待清扫的密集障碍物点对应的实际位置导航移动的过程中,包括在所述清洁机器人按照第一预设导航路径移动至待清扫的密集障碍物点对应的实际位置之前和按照第一预设导航路径移动至待清扫的密集障碍物点对应的实际位置处,需要保持实时检测所述清洁机器人是否导航至所述待清扫的密集障碍物点对应的实际位置。所述步骤2规划出的导航路径包括第一预设导航路径和第二预设导航路径。
所述步骤s3还包括:
步骤31、在所述清洁机器人按照第一预设导航路径移动至待清扫的密集障碍物点对应的实际位置之前,当所述清洁机器人检测到碰撞上障碍物(不是待清扫的密集障碍物点处的障碍物),则控制所述清洁机器人开始绕当前碰撞的障碍物行走一圈,同时保持检测所述清洁机器人是否导航至所述待清扫的密集障碍物点对应的实际位置;然后进入步骤32;需要说明的是,用于检测碰撞的传感器包括但不限于红外传感器、超声波传感器或者物理碰撞装置。所述待清扫的密集障碍物点是从所述步骤s1标记出的密集障碍物点中挑选出来的,用于作为待清扫的目标位置。
优选地,所述步骤31中,所述检测所述清洁机器人是否导航至所述待清扫的密集障碍物点对应的实际位置的方法为:若所述清洁机器人当前位置与所述待清扫的密集障碍物点对应的实际位置的距离小于所述清洁机器人的机身直径的四分之一,则确定所述清洁机器人导航至(移动至)所述待清扫的密集障碍物点对应的实际位置,否则确定所述清洁机器人没有导航至(没移动至)所述待清扫的密集障碍物点对应的实际位置,从而克服地图漂移等误差的影响,提高绕障判断的鲁棒性。提高清洁机器人导航定位的精度。其中,待清扫的密集障碍物点是预先配置的用于清洁机器人清扫的密集障碍物点。
步骤32、当所述清洁机器人完成绕当前碰撞的障碍物行走一圈时,如果检测到所述清洁机器人没有导航至所述待清扫的密集障碍物点对应的实际位置,则进入步骤33。即清洁机器人按照第一预设导航路径向待清扫的密集障碍物点对应的实际位置导航移动的过程中,当所述清洁机器人完成绕同一障碍物(即步骤s3检测到的相碰撞的障碍物)行走一圈时,检测所述清洁机器人是否移动至所述待清扫的密集障碍物点对应的实际位置,认为是:检测所述清洁机器人是否移动至所述待清扫的密集障碍物点处的障碍物轮廓的周围区域。
步骤32用于判断所述清洁机器人完成绕当前碰撞的障碍物行走一圈的判断方法包括两种实施方式。具体地,一种实施方式包括:在控制所述清洁机器人绕障碍物行走一圈之前,获取所述清洁机器人与障碍物的碰撞位置;然后控制所述清洁机器人从碰撞位置开始绕障碍物行走,并实时判断所述清洁机器人转动的角度是否大于或等于360度,同时判断所述清洁机器人当前位置与所述碰撞位置的距离是否小于所述清洁机器人的机身直径的四分之一,如果所述转动的角度的判断条件和所述距离的判断条件都成立,那么确定所述清洁机器人已经完成绕这个障碍物行走一圈,否则确定所述清洁机器人没有完成绕这个障碍物行走一圈。比如,所述清洁机器人移动至椅脚并与之碰撞时,由于椅脚之间的距离小于所述清洁机器人的机身直径的,所以所述清洁机器人是无法绕当前碰撞到的椅子完整地行走一圈。与现有技术相比,该实施方式将清洁机器人与障碍物的碰撞点作为越障起点,再根据清洁机器人当前位置相对于越障起点转动过的角度以及清洁机器人当前位置相对于越障起点的直线距离判断所述清洁机器人是否完成绕障碍物行走一圈,克服地图漂移等误差的影响,提高绕障判断的鲁棒性。
另一种实施方式包括:在控制所述清洁机器人绕障碍物行走一圈之前,获取所述清洁机器人与障碍物的碰撞位置;然后控制所述清洁机器人从碰撞位置开始绕障碍物行走,并实时判断所述清洁机器人转动的角度是否大于或等于400度,是则确定所述清洁机器人已经完成绕这个障碍物行走一圈,否则确定所述清洁机器人没有完成绕这个障碍物行走一圈。该实施方式为所述清洁机器人判断完成绕障碍物行走一圈提供转动角度的40度的冗余量,提高判断精度。
步骤33、判断步骤32执行的次数是否达到3,是则将所述待清扫的密集障碍物点标记为所述已清扫障碍物状态,否则进入步骤34;具体地,所述清洁机器人若连续两次次更变导航路径都无法到达同一个待清扫的密集障碍物点,这个待清扫的密集障碍物点对应的实际位置(清洁工作区域内的物理位置)被清洁机器人放弃搜索,但在这连续三次的密集障碍物点对应的实际物理位置的搜索过程中,清洁机器人可以完成这个待清扫的密集障碍物点对应的实际位置周围区域的覆盖清扫,比如,所述清洁机器人移动至椅脚周围区域时与其他的障碍物发生碰撞,由于椅脚之间的距离小于所述清洁机器人的机身直径的,所以所述清洁机器人在绕当前碰撞到的障碍物行走一圈的过程中没有移动至椅脚之间的空隙区域,而是避开椅脚之间的空隙区域,虽然所述清洁机器人绕障行走过程中经过的位置与椅脚比较近,最后使得所述清洁机器人这连续三次导航都没有搜索到椅脚这一密集障碍物点对应的实际位置,但是所述清洁机器人在这一导航绕障过程中完成椅脚之间的空隙区域的覆盖清扫。适用于更多的障碍物分布场景的导航清扫。需要说明的是,本实施例中移动至所述待清扫的密集障碍物点对应的实际位置不是到达所述待清扫的密集障碍物点对应的障碍物所占据的实际位置,而是到达所述待清扫的密集障碍物点对应的实际位置周围的一个预配置的目标位置,使得清洁机器人的能够清扫遍历这个待清扫的密集障碍物点对应的障碍物轮廓周围的区域。
步骤34、从所述步骤s2规划好的所有导航路径中搜索出第二预设导航路径,其中,第二预设导航路径的终点栅格位置为所述待清扫的密集障碍物点,第二预设导航路径不同于第一预设导航路径;然后进入步骤35;其中,第一预设导航路径表示当前遍历的导航路径;第二预设导航路径表示下一次遍历的导航路径,是属于未遍历的导航路径,所以,从整体路径走向上看,所述第二预设导航路径不同于所述第一预设导航路径。
步骤35、控制所述清洁机器人沿着步骤34搜索出的第二预设导航路径移动,再返回步骤31,以将所述步骤31中的第一预设导航路径替换为步骤34搜索出的所述第二预设导航路径,然后重复步骤31至步骤34,直到步骤32执行的次数从0增加到3为止,或检测所述清洁机器人是否导航至所述待清扫的密集障碍物点对应的实际位置。
与现有技术相比,前述步骤31至步骤35,本实施例在考虑到栅格地图上预先规划的导航路径与实际环境存在定位误差的条件下,沿着预先规划的导航路径反复搜索待清扫的密集障碍物点,并至多通过三次搜索完成对这个待清扫的密集障碍物点周围区域的清扫,使得同一待清扫的密集障碍物点在连续三次导航都无法到达的情况下被标记为已清扫障碍物状态,从而适用于更多的障碍物分布场景的导航清扫。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除