掌桥专利:专业的专利平台
掌桥专利
首页

机器人地图数据处理方法、装置、机器人及介质

文献发布时间:2023-06-19 18:35:48


机器人地图数据处理方法、装置、机器人及介质

技术领域

本发明涉及机器人领域,尤其涉及一种机器人地图数据处理方法、装置、机器人及介质。

背景技术

扫地机器人,又称自动打扫机、智能吸尘器或洗地机器人吸尘器等,是智能家用电器的一种,能凭借一定的人工智能,自动在室内和室外完成地板清理工作。现有技术中,扫地机器人在清扫时,会对清扫区域进行建图,并且把清扫区域的地图通过APP(application,应用)等方式直观地呈现于用户。某些种类的扫地机器人由于受机器硬件本身的限制,只能通过运动轨迹以及障碍物识别记录地图数据并生成地图,现有技术中,此种地图数据记录方式存在由于漏扫而无法全面覆盖清扫区域的情况,并且对于整个清扫区域的边界也可能无法全面识别,因此生成的地图可能存在中间有小孔洞和边界不连续等问题。

发明内容

基于此,有必要针对上述技术问题,提供一种机器人地图数据处理方法、装置、机器人及介质,以解决扫地机器人生成的地图中间有小孔洞和边界不连续等问题。

一种机器人地图数据处理方法,包括:

获取扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图;

对所述初始清扫点阵图进行第一闭运算处理,得到去孔洞清扫点阵图;

对所述去孔洞清扫点阵图进行提取边界处理,得到清扫边界点阵图;

合并所述初始障碍物点阵图与所述清扫边界点阵图,生成第一合并点阵图;

对所述第一合并点阵图进行线段合并处理,得到合并线段点阵图;

合并所述合并线段点阵图与所述去孔洞清扫点阵图,生成第二合并点阵图;

对所述第二合并点阵图进行第二闭运算处理,得到与所述预设区域对应的最终点阵地图。

一种机器人地图数据处理装置,包括:

获取模块,用于获取扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图;

第一闭运算处理模块,用于对所述初始清扫点阵图进行第一闭运算处理,得到去孔洞清扫点阵图;

提取边界处理模块,用于对所述去孔洞清扫点阵图进行提取边界处理,得到清扫边界点阵图;

第一图合并处理模块,用于合并所述初始障碍物点阵图与所述清扫边界点阵图,生成第一合并点阵图;

线段合并处理模块,用于对所述第一合并点阵图进行线段合并处理,得到合并线段点阵图;

第二图合并处理模块,用于合并所述合并线段点阵图与所述去孔洞清扫点阵图,生成第二合并点阵图;

第二闭运算处理模块,用于对所述第二合并点阵图进行第二闭运算处理,得到与所述预设区域对应的最终点阵地图。。

一种机器人,包括控制模块,所述控制模块用于执行上述机器人地图数据处理方法。

一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述机器人地图数据处理方法。

本发明中,所述机器人地图数据处理方法,通过对扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图进行的优化处理,得到障碍物数据连续闭合的合并线段点阵图,以及清扫数据全面覆盖清扫区域的去孔洞清扫点阵图,再将合并线段点阵图与去孔洞清扫点阵图合并后得到第二合并点阵图,最后对第二合并点阵图进行优化处理后得到与预设区域对应的最终点阵地图。上述过程中,将存在边界断续不闭合问题的初始障碍物点阵图处理为边界连续闭合的合并线段点阵图,并且将覆盖区域不全面的初始清扫点阵图处理为覆盖区域全面的去孔洞清扫点阵图,之后将上述两者合并后经过优化处理形成的最终点阵地图,使得最终得到的最终点阵地图中间中不再存在有小孔洞,且最终点阵地图的边界连续,本发明提升了扫地机器人通过建图清扫之后得到的地图的精准性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中机器人地图数据处理方法的流程示意图。

图2是本发明一实施例中机器人地图数据处理方法的步骤S200的流程示意图。

图3是本发明一实施例中机器人地图数据处理方法的步骤S500的流程示意图。

图4是本发明一实施例中机器人地图数据处理方法的线段合并处理的示意图。

图5是本发明一实施例中机器人地图数据处理装置的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,在一实施例中,提供一种机器人地图数据处理方法,包括如下步骤:

S100,获取扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图。其中,所述预设区域是指所述扫地机器人执行建图清扫的区域,所述预设区域中可能存在障碍物(例如:墙壁、沙发或桌椅板凳等)。可以理解地,所述扫地机器人在预设区域的建图清扫过程中通过内置的传感器记录运动轨迹和/或障碍物并生成对应于所述预设区域的所述初始清扫点阵图和所述初始障碍物点阵图。

在一实施例中,所述扫地机器人内置的所述传感器包括但不限于陀螺仪和/或碰撞传感器。所述扫地机器人在预设区域内进行建图清扫过程中,通过所述陀螺仪记录运动轨迹,得到包括其运动轨迹对应的坐标位置的初始清扫数据,根据所述初始清扫数据对应的运动轨迹的坐标位置进行二维化转换,从而形成所述初始清扫点阵图。并且,所述扫地机器人在上述建图清扫过程中通过所述碰撞传感器记录碰撞到的障碍物,得到包括障碍物的坐标位置的初始障碍物数据,根据所述初始障碍物数据中对应的障碍物的坐标位置进行二维化转换,从而形成所述初始障碍物点阵图。

S200,对所述初始清扫点阵图进行第一闭运算处理,得到去孔洞清扫点阵图。可以理解地,扫地机器人在记录运动轨迹时,可能存在一些识别错误或漏扫的区域,如此将导致所述初始清扫点阵图中存在一些由于识别错误或漏扫而形成的孔洞,因此,该步骤中通过对所述初始清扫点阵图进行第一闭运算处理,在去除所述初始清扫点阵图中的孔洞的同时,还不会改变所述初始清扫点阵图的面积,以最终得到去除孔洞且未改变面积的去孔洞清扫点阵图。

如图2所示,在一实施例中,所述步骤S200,也即所述对所述初始清扫点阵图进行第一闭运算处理,得到去孔洞清扫点阵图包括:

S210,对所述初始清扫点阵图中的每个像素点,以第二预设结构像素为基准进行第一相或处理,使所述初始清扫点阵图膨胀形成第一膨胀点阵图。可以理解地,所述第一闭运算处理包括但不限定于初始膨胀处理和初始腐蚀处理等步骤,所述步骤S210中以第二预设结构像素为基准进行第一相或处理即为所述初始膨胀处理。其中,所述第二预设结构像素即所述初始膨胀处理和初始腐蚀处理中使用的基本单位。在一实施例中,所述第二预设结构像素包括2×2至5×5的像素矩阵,所述第二预设结构像素的第一原点可以为像素矩阵中的任意像素点。优选地,所述第二预设结构像素为3×3的像素矩阵,所述第一原点为3×3矩阵的中心点。可以理解地,点阵图一般由多个像素点组成,点阵图中的像素点包括被填充的像素点和未被填充的像素点,其中,被填充的像素点可以按照被填充图像的属性(例如:颜色、种类等)在点阵图中被标记为1、2、a、b、真或其他任何形式的符号,未被填充的像素点可以在点阵图中被标记为0、空或其他任何形式的符号。在本发明中,在所述初始清扫点阵图和所述初始障碍物点阵图中,所述运动轨迹的坐标位置对应的像素点和所述障碍物的坐标位置对应的像素点属于被填充的像素点,记为真像素点;其它坐标位置对应的像素点属于未被填充的像素点,记为空像素点。所述第一相或处理是指:在所述初始清扫点阵图中使用所述第二预设结构像素对所有像素点进行膨胀对比,也即,在初始清扫点阵图中进行第一相或处理时,将第二预设结构像素视为一个第一滑动窗,并沿行或列的方向以一个像素点为一次滑动的距离,逐渐滑动该第一滑动窗,每一次滑动之后,被第一滑动窗(也即第二预设结构像素)覆盖的范围,即为第一膨胀对比范围;使用所述第二预设结构像素进行膨胀对比是指,在第一滑动窗滑动到对应于一个第一膨胀对比范围时,只要该第一膨胀对比范围内存在一个真像素点,就需要将该第一膨胀对比范围中对应于第二预设结构像素的第一原点位置的像素点记录为真像素点;之后再进行下一次滑动,在该第一滑动窗在初始清扫点阵图中已经滑动到了所有可以滑动的位置,并与每一次滑动对应的第一膨胀对比范围对比完毕(已记录所有的真像素点)之后,即认为已经完成了初始膨胀处理(也即第一相或处理),得到了第一膨胀点阵图。在本实施例中,通过上述步骤对所述初始清扫点阵图进行第一相或处理,从而使所述初始清扫点阵图边界膨胀且内部的孔洞同时被膨胀填充,进而使所述初始清扫点阵图膨胀形成第一膨胀点阵图。

S220,对所述第一膨胀点阵图中的每个像素点,以所述第二预设结构像素为基准进行第二相与处理,形成所述去孔洞清扫点阵图。可以理解地,所述步骤S220以所述第二预设结构像素为基准进行第二相与处理,即为所述初始腐蚀处理。所述第二相与处理是指:在所述第一膨胀点阵图中使用所述第二预设结构像素对所有像素点进行腐蚀对比,也即,在第一膨胀点阵图中进行第二相与处理时,首先将第二预设结构像素视为一个第一滑动窗,并沿行或列的方向以一个像素点为一次滑动的距离,逐渐滑动该第一滑动窗,每一次滑动之后,被第一滑动窗(也即第二预设结构像素)覆盖的范围,即为第一腐蚀对比范围;使用所述第二预设结构像素进行腐蚀对比是指,在第一滑动窗滑动到对应于一个第一腐蚀对比范围时,只要该第一腐蚀对比范围内存在一个空像素点,就需要将该第一腐蚀对比范围中对应于第二预设结构像素的第一原点位置的像素点记录为空像素点;之后再进行下一次滑动,在该第一滑动窗在第一膨胀点阵图中已经滑动到了所有可以滑动的位置,并与每一次滑动对应的第一腐蚀对比范围对比完毕(已记录所有的空像素点)之后,即认为已经完成了初始腐蚀处理(也即第二相与处理),得到了所述去孔洞清扫点阵图。在本实施例中,所述步骤S210中,对所述初始清扫点阵图中的每个像素点,以第二预设结构像素为基准进行第一相或处理,使所述初始清扫点阵图内部的孔洞被膨胀填充的同时,还使其边界被膨胀从而扩大了面积,因此,为了膨胀之后的所述初始清扫点阵图(也即第一膨胀点阵图)内部的孔洞被膨胀填充的同时不改变面积,在所述步骤S220中,对所述步骤S210中形成的第一膨胀点阵图进行初始腐蚀处理(第二相与处理),使其恢复原有面积,最终形成所述去孔洞清扫点阵图。

S300,对所述去孔洞清扫点阵图进行提取边界处理,得到清扫边界点阵图。可以理解地,所述初始清扫点阵图中的真像素点覆盖的区域属于所述预设区域中的可清扫区域。所述去孔洞清扫点阵图根据所述初始清扫点阵图优化处理(即进行第一闭运算处理)之后得到,因此,所述去孔洞清扫点阵图中的真像素点覆盖的区域仍然属于所述预设区域中的可清扫区域。一般来说所述预设区域中的可清扫区域的边界可以认为是障碍物,因此,在本实施例中,为了优化处理所述初始障碍物点阵图,对经过优化处理后的所述去孔洞清扫点阵图进行提取边界处理后得到连续的边界,即为清扫边界点阵图。所述清扫边界点阵图用于在后续步骤中进一步地对所述初始障碍物点阵图进行优化处理。

在一实施例中,所述步骤S300,也即所述对所述去孔洞清扫点阵图进行提取边界处理,得到清扫边界点阵图,包括:

对所述去孔洞清扫点阵图中的每个像素点,以第三预设结构像素为基准进行第二相或处理,使所述去孔洞清扫点阵图膨胀形成第二膨胀点阵图。可以理解地,对所述去孔洞清扫点阵图进行提取边界处理,即需要对所述去孔洞清扫点阵图进行边界膨胀处理(也即第二相或处理)后,提取经过所述边界膨胀处理后变化的部分作为边界。在本实施例中,所述第三预设结构像素即所述边界膨胀处理中使用的基本单位。在一实施例中,所述第三预设结构像素包括2×2至5×5的像素矩阵,所述第三预设结构像素的第二原点可以为像素矩阵中的任意像素点。优选地,所述第三预设结构像素为3×3的像素矩阵,所述第二原点为3×3矩阵的中心点。所述第二相或处理是指:在所述去孔洞清扫点阵图中使用所述第三预设结构像素对所有像素点进行膨胀对比,也即,在去孔洞清扫点阵图中进行第二相或处理时,将第三预设结构像素视为一个第二滑动窗,并沿行或列的方向以一个像素点为一次滑动的距离,逐渐滑动该第二滑动窗,每一次滑动之后,被第二滑动窗(也即第三预设结构像素)覆盖的范围,即为第二膨胀对比范围;使用所述第三预设结构像素进行膨胀对比是指,在第二滑动窗滑动到对应于一个第二膨胀对比范围时,只要该第二膨胀对比范围内存在一个真像素点,就需要将该第二膨胀对比范围中对应于第三预设结构像素的第二原点位置的像素点记录为真像素点;之后再进行下一次滑动,在该第二滑动窗在去孔洞清扫点阵图中已经滑动到了所有可以滑动的位置,并与每一次滑动对应的第二膨胀对比范围对比完毕(已记录所有的真像素点)之后,即认为已经完成了边界膨胀处理(也即第二相或处理),得到了第二膨胀点阵图。在本实施例中,对所述去孔洞清扫点阵图中的每个像素点,以第三预设结构像素为基准进行第二相或处理,可以使所述去孔洞清扫点阵图边界膨胀,进而使所述去孔洞清扫点阵图形成第二膨胀点阵图。

提取所述第二膨胀点阵图相对于所述去孔洞清扫点阵图膨胀的边界点阵,并将提取的所述边界点阵记录为所述清扫边界点阵图。在本实施例中,提取经过所述边界膨胀处理后变化的部分,即所述第二膨胀点阵图区别于所述去孔洞清扫点阵图的被膨胀之后的边界点阵,得到清扫边界点阵图,清扫边界点阵图作为一个连续边界,其中的真像素点对应的坐标位置为理论上的障碍物位置,可以用于在后续步骤中进一步对所述初始障碍物点阵图进行优化处理。

S400,合并所述初始障碍物点阵图与所述清扫边界点阵图,生成第一合并点阵图。可以理解地,所述初始障碍物点阵图为所述扫地机器人通过所述碰撞传感器记录的初始障碍物数据经过二维化转换后形成,因此,所述初始障碍物点阵图中由真像素点组成的点阵可能并不连续连接。所述清扫边界点阵图为对经过优化处理后的所述去孔洞清扫点阵图进行提取边界处理后得到连续的边界,因此,所述清扫边界点阵图中由真像素点组成的点阵为连续闭合点阵。在本实施例中,通过对所述初始障碍物点阵图与所述清扫边界点阵图的合并,生成了真像素点连续闭合的所述第一合并点阵图。

S500,对所述第一合并点阵图进行线段合并处理,得到合并线段点阵图。可以理解地,所述扫地机器人通过所述碰撞传感器只能记录碰撞到的障碍物的边界位置,每次通过所述碰撞传感器碰撞的位置通常被记录为一个点,因此在障碍物的坐标位置的二维化转换过程中,每次通过所述碰撞传感器碰撞的位置坐标往往会转换为一个像素点,由此可以看出,代表障碍物的多个真像素点一般会构成宽度为一个像素点的线段。因此,在所述步骤S400中,所述初始障碍物点阵图与所述清扫边界点阵图直接进行合并生成第一合并点阵图后,可能存在相邻的多条宽度为一个像素点的线段,因此,需要对合并后的所述第一合并点阵图进行线段合并处理,用于将相邻的多条宽度为一个像素点的线段合并为一条为宽度为一个像素点的线段。

如图3所示,在一实施例中,所述步骤S500,也即所述对所述合并点阵图进行线段合并处理,得到合并线段点阵图,包括:

S510,确定所述合并点阵图中的合并单元,每一个所述合并单元中均包含在列的方向上相邻的第一预设数量的点阵行,或在行的方向上相邻的第一预设数量的点阵列。其中,由于后续需要针对每一个合并单元进行线段合并处理,因此,所述第一预设数量必须设置为大于或等于二,才能存在线段合并的可能。并且,本实施例中的每一个点阵行对应于预设区域中从一端到另一端的一个像素行,每一个点阵行中可能存在连续分布或中断分布的真像素点(或空像素点);每一个点阵列对应于预设区域中从一端到另一端的一个像素列,每一个点阵列中可能存在连续分布或中断分布的真像素点(或空像素点)。

可以理解地,该步骤中需要对所述合并点阵图中的每一个合并单元进行线段合并处理,因此,需要首先确定上述合并点阵图中的所有合并单元;具体地,每一个合并单元中仅包含在列的方向上相邻的第一预设数量个点阵行,或仅包含在行的方向上相邻的第一预设数量个点阵列,作为优选,所述第一预设数量为三,即所述点阵行或点阵列的宽度为三个像素点。如图4所示,a、b、c三者分别对应的方框内的点阵,均分别对应于一个合并单元,且合并单元a、b、c对应的点阵列的第一预设数量为三;也即,合并单元a、b、c均为进行线段合并处理之前的宽度为三个像素点的合并单元。

S520,确定所述合并单元中的行线段和列线段;所述行线段是指一个所述点阵行中,在行的方向上连续排列且数量达到第二预设数量的真像素点组成的线段;所述列线段是指一个所述点阵列中,在列的方向上连续排列且数量达到第二预设数量的真像素点组成的线段。可以理解地,该步骤中需要对所述合并点阵图中的每一个合并单元中的各点阵行中的行线段或点阵列中的列线段进行线段合并处理,因此,需要首先确定每一个合并单元中可供进行合并的行线段或者列线段。在该实施例中,所述第二预设数量为大于或等于二(比如优选为三),也即,在合并单元的同一个点阵行或点阵列中,只要连续的真像素点数量大于或等于第二预设数量即可被看作是一个行线段或一个列线段,对应地,若在合并单元的同一个点阵行或点阵列中,连续的真像素点数量小于第二预设数量的像素点,均不被视为属于一个行线段或一个列线段中,也即,该部分不属于一个行线段或一个列线段中的真像素点,不考虑对其进行线段合并处理。可理解地,所述第二预设数量为三时,即代表在一个所述点阵行中,在行的方向上由连续排布的至少三个真像素点组成的线段才能称之为一个行线段;而一个所述点阵列中,在列的方向上由连续排布的至少三个真像素点排列组成的线段才能称之为一个列线段。比如,在如图4所示的实施例中,a1、a2、a3、a4均为合并单元a中的列线段;而b1、b2、b3均为合并单元b中的列线段;而由于合并单元c中,在列的方向上,均并不存在连续排布的至少三个真像素点组成的线段,因此,合并单元c中不存在可以合并的列线段,通过上述第二预设数量限定个像素点是否从属于可以合并的列线段或列线段,可以避免在像素点的排列近似于曲线(比如图4的合并单元c中的像素点近似于曲线)时,对其进行误合并,而使得最终进行线段合并处理之后的合并线段点阵图更为精准。

S530,对所述合并点阵图中的每一个所述合并单元中的所有所述行线段或所有所述列线段进行线段合并处理,得到所述合并线段点阵图。

在一实施例中,所述步骤S530,所述对所述合并点阵图中的每一个所述合并单元中的所有所述行线段或所有所述列线段进行线段合并处理,得到所述合并线段点阵图,包括:

对每一个所述合并单元中的所有所述行线段或所有所述列线段的首像素值进行排序。其中,首像素值是指所述行线段从左向右(或从右向左,该方向并不被限定,但所有行线段的计算方向需预先设定统一)数第一个真像素点在所述点阵行中的行序列(也即,点阵行中从左向右数,行线段的第一个真像素点排第几);或所述列线段从上向下(或从下向上,该方向并不被限定,但所有行线段的计算方向需预先设定统一)数第一个真像素点在所述点阵列中的列序列(也即,点阵列中从上向下数,列线段的第一个真像素点排第几)。可以理解地,所述行线段或所述列线段对应的首像素值越小,代表所述行线段或所述列线段排序越靠前。

在确定同一个所述合并单元中存在相邻的所述行线段或相邻的所述列线段时,将相邻的所述行线段中首像素值排序在后的所述行线段在列方向上整体平移一个像素列,以合并至首像素值排序在先的所述行线段中,或将相邻的所述列线段中首像素值排序在后的所述列线段在行方向上整体平移一个像素行,以合并至首像素排序在先的所述列线段中。可理解地,在一个合并单元中,由于仅存在行线段或者列线段,因此,两者的线段合并方式是类似的,只是合并的方向分别对应于行或列的方向,因此,在该实施例中,仅对于列线段的合并为例,说明线段合并过程,行线段的合并同理,在此不再赘述。可理解地,对于一个仅包含列线段的合并单元来说,若仅存在一个列线段,则无需进行线段合并处理;而在合并单元中存在至少两个列线段时,针对于每一组相邻的两个列线段,若将其分别记录为第一列线段和第二列线段,且所述第一列线段首像素值小于或等于所述第二列线段首像素值,则将第一列线段在行方向上朝向第二列线段平移一个像素列,以将其合并至第二列线段中。

进一步地,在一实施例中,在第一列线段首像素值小于或等于所述第二列线段首像素值时,若第一列线段和第二列线段在列方向上间隔的像素点的数量大于第三预设数量,则认为两者并不需要进行合并,也即,此时认为两者之间距离过远无需合并,以提升地图精度。具体地,在该实施例中,若第一列线段首像素值小于所述第二列线段的首像素值和末像素值(末像素值是指一个行线段或列线段中,位于与首像素值相反的一端端部的真像素点,在所述点阵行中的行序列或在所述点阵列中的列序列),且所述第一列线段的首像素值与所述第二列线段末像素值在列方向上的差值大于第三预设数量,则认为两者并不需要进行合并。例如,图4中的列线段a1为第二列线段,列线段a2为第一列线段,列线段a2的首像素值小于列线段a1的首像素值,但并不小于列线段a1的末像素值,因此,需要将列线段a2在行方向上朝向列线段a1平移一个像素列,以将其合并至列线段a1中。但图4中的列线段b2同样可以视为第一列线段,列线段b1为第二列线段,此时,列线段b2的首像素值小于或等于列线段b1的首像素值,且列线段b2的首像素值小于列线段b1的末像素值,并且,列线段b1的末像素值与列线段b2的首像素值在列方向上间隔的像素点的数量为5个像素点,大于第三预设数量(3个),此时,则认为两者并不需要进行合并,也即,此时认为两者之间距离过远无需合并,以提升地图精度。如此,在合并单元a中,图4中相邻的列线段a1与a2,通过列线段a2向列线段a1在行方向上整体平移一个像素行,合并后生成第一新线段,第一新线段与列线段a3在行方向上相邻,且两者之间在列方向上间隔的像素点的数量小于第三预设数量,则继续将列线段a3与第一新线段合并生成第二新线段,第二新线段与列线段a4在行方向上相邻,且两者之间在列方向上间隔的像素点的数量小于第三预设数量,则继续将列线段a4与第二新线段合并,最终生成列线段A1。

在确定每一个所述合并单元中均不存在相邻的所述行线段或相邻的所述列线段时,确认合并完成。在本实施例中,对所述第一合并点阵图进行线段合并处理,使相邻的多条宽度为一个像素点的线段合并为一条为宽度为一个像素点的线段,以明确地图边界。

S600,合并所述合并线段点阵图与所述去孔洞清扫点阵图,生成第二合并点阵图。也即,两者合并之后,得到了进行初步优化处理之后的点阵图。

S700,对所述第二合并点阵图进行第二闭运算处理,得到与所述预设区域对应的最终点阵地图。可以理解地,所述合并线段点阵图与所述去孔洞清扫点阵图合并之后生成的所述第二合并点阵图,可能仍然存在一些由于误差等原因而形成的空像素点,因此,需要对所述第二合并点阵图进行第二闭运算处理,以在去除所述第二合并点阵图中的由于误差等原因而形成的空像素点的同时,还不会改变所述第二合并点阵图的面积,最终得到所述最终点阵地图。

在一实施例中,所述步骤S700,对所述第二合并点阵图进行第二闭运算处理,得到与所述预设区域对应的最终点阵地图,包括:

对所述第二合并点阵图中的每个像素点,以第四预设结构像素为基准进行第三相或处理,使所述第二合并点阵图膨胀形成第三膨胀点阵图。可以理解地,所述第二闭运算处理包括但不限定于最终膨胀处理和最终腐蚀处理等步骤,本步骤中以第四预设结构像素为基准进行第三相或处理,即为所述最终膨胀处理。其中,所述第四预设结构像素即所述最终膨胀处理和最终腐蚀处理中使用的基本单位。在一实施例中,所述第四预设结构像素包括2×2至5×5的像素矩阵,所述第四预设结构像素的第四原点可以为像素矩阵中的任意像素点。优选地,所述第四预设结构像素为3×3的像素矩阵,所述第四原点为3×3矩阵的中心点。所述第三相或处理是指:在所述第二合并点阵图中使用所述第四预设结构像素对所有像素点进行膨胀对比,也即,在第二合并点阵图中进行第三相或处理时,将第四预设结构像素视为一个第三滑动窗,并沿行或列的方向以一个像素点为一次滑动的距离,逐渐滑动该第三滑动窗,每一次滑动之后,被第三滑动窗(也即第四预设结构像素)覆盖的范围,即为第三膨胀对比范围;使用所述第四预设结构像素进行膨胀对比是指,在第三滑动窗滑动到对应于一个第三膨胀对比范围时,只要该第三膨胀对比范围内存在一个真像素点,就需要将该第三膨胀对比范围中对应于第四预设结构像素的第四原点位置的像素点记录为真像素点;之后再进行下一次滑动,在该第三滑动窗在第二合并点阵图中已经滑动到了所有可以滑动的位置,并与每一次滑动对应的第三膨胀对比范围对比完毕(已记录所有的真像素点)之后,即认为已经完成了最终膨胀处理(也即第三相或处理),得到了第三膨胀点阵图。在本实施例中,通过上述步骤对所述第二合并点阵图进行第三相或处理,从而使所述第二合并点阵图边界膨胀且内部的孔洞同时被膨胀填充,进而使所述第二合并点阵图膨胀形成第三膨胀点阵图。

对所述第三膨胀点阵图中的每个像素点,以所述第四预设结构像素为基准进行第三相与处理,形成所述最终点阵地图。可以理解地,本步骤中以所述第四预设结构像素为基准进行第三相与处理,即为所述最终腐蚀处理。所述第三相与处理是指:在第三膨胀点阵图中使用所述第四预设结构像素对所有像素点进行腐蚀对比,也即,在第三膨胀点阵图中进行第三相与处理时,首先将第四预设结构像素视为一个第三滑动窗,并沿行或列的方向以一个像素点为一次滑动的距离,逐渐滑动该第三滑动窗,每一次滑动之后,被第三滑动窗(也即第四预设结构像素)覆盖的范围,即为第二腐蚀对比范围;使用所述第四预设结构像素进行腐蚀对比是指,在第三滑动窗滑动到对应于一个第二腐蚀对比范围时,只要该第二腐蚀对比范围内存在一个空像素点,就需要将该第二腐蚀对比范围中对应于第四预设结构像素的第三原点位置的像素点记录为空像素点;之后再进行下一次滑动,在该第三滑动窗在第三膨胀点阵图中已经滑动到了所有可以滑动的位置,并与每一次滑动对应的第二腐蚀对比范围对比完毕(已记录所有的空像素点)之后,即认为已经完成了最终腐蚀处理(也即第三相与处理),得到了所述最终点阵地图。在本实施例中,为了膨胀后的所述第二合并点阵图(也即第三膨胀点阵图)内部的孔洞被膨胀填充的同时不改变面积,对所述第三膨胀点阵图进行最终腐蚀处理,使其恢复原有面积,最终形成所述最终点阵地图。

本发明提供的机器人地图数据处理方法,通过对扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图进行的优化处理,得到障碍物数据连续闭合的合并线段点阵图,以及清扫数据全面覆盖清扫区域的去孔洞清扫点阵图,再将合并线段点阵图与去孔洞清扫点阵图合并后得到第二合并点阵图,最后对第二合并点阵图进行优化处理后得到与预设区域对应的最终点阵地图。上述过程中,将存在边界断续不闭合问题的初始障碍物点阵图处理为边界连续闭合的合并线段点阵图,将覆盖区域不全面的初始清扫点阵图处理为覆盖区域全面的去孔洞清扫点阵图,将上述两者合并后经过优化处理形成的最终点阵地图,使得最终得到的最终点阵地图中间中不再存在有小孔洞,且最终点阵地图的边界连续,提升了最终点阵地图的精准性。

在一实施例中,所述最终点阵地图包括最终障碍物点阵图和最终清扫点阵图;所述对所述第二合并点阵图进行第二闭运算处理,得到最终点阵地图之后,还包括:

对所述最终点阵地图进行边界腐蚀处理,将边界腐蚀处理过程中的被腐蚀点阵提取并记录为所述最终障碍物点阵图,将边界腐蚀处理之后剩余的点阵记录为所述最终清扫点阵图。在一实施例中,所述对所述最终点阵地图进行边界腐蚀处理,包括:对所述最终点阵地图中的每个像素点,以第一预设结构像素为基准进行第一相与处理。其中,所述第一预设结构像素即边界腐蚀处理中使用的基本单位。在一实施例中,所述第一预设结构像素包括2×2至5×5的像素矩阵,所述第一预设结构像素的第三原点可以为像素矩阵中的任意像素点。优选地,所述第一预设结构像素为3×3的像素矩阵,所述第三原点为3×3矩阵的中心点。所述第一相与处理是指:在所述最终点阵地图中使用所述第一预设结构像素对所有像素点进行腐蚀对比,也即,在最终点阵地图中进行第一相与处理时,首先将第一预设结构像素视为一个第四滑动窗,并沿行或列的方向以一个像素点为一次滑动的距离,逐渐滑动该第四滑动窗,每一次滑动之后,被第四滑动窗(也即第一预设结构像素)覆盖的范围,即为第三腐蚀对比范围;使用所述第一预设结构像素进行腐蚀对比是指,在第四滑动窗滑动到对应于一个第三腐蚀对比范围时,只要该第三腐蚀对比范围内存在一个空像素点,就需要将该第三腐蚀对比范围中对应于第一预设结构像素的第三原点位置的像素点记录为空像素点;之后再进行下一次滑动,在该第四滑动窗在最终点阵地图中已经滑动到了所有可以滑动的位置,并与每一次滑动对应的第三腐蚀对比范围对比完毕(已记录所有的空像素点)之后,即认为已经完成了边界腐蚀处理(也即第三相与处理),得到了所述最终清扫点阵图,同时还可以确定最终点阵地图中被腐蚀掉的点阵部分,也即最终障碍物点阵图。在本实施例中,对所述最终点阵地图进行边界腐蚀处理,相当于去除所述最终点阵地图的边界之后,剩余的像素点阵记录为所述最终清扫点阵图,并且去除的边界像素点阵也将被记录为所述最终障碍物点阵图。

根据所述最终障碍物点阵图与所述最终清扫点阵图构建与所述预设区域对应的清扫地图。可以理解地,所述最终点阵地图包括最终障碍物点阵图和最终清扫点阵图,所述最终障碍物点阵图中包括通过上述步骤优化处理之后的障碍物的坐标位置分布,所述最终清扫点阵图中包括通过上述步骤优化处理之后的运动轨迹的坐标位置分布。所述扫地机器人可以依据所述最终障碍物点阵图与所述最终清扫点阵图更加方便快捷以及精准地构建与所述预设区域对应的所述清扫地图。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

如图5所示,在一实施例中,还提供一种机器人地图数据处理装置,包括:

获取模块100,用于获取扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图;

第一闭运算处理模块200,用于对所述初始清扫点阵图进行第一闭运算处理,得到去孔洞清扫点阵图;

提取边界处理模块300,用于对所述去孔洞清扫点阵图进行提取边界处理,得到清扫边界点阵图;

第一图合并处理模块400,用于合并所述初始障碍物点阵图与所述清扫边界点阵图,生成第一合并点阵图;

线段合并处理模块500,用于对所述第一合并点阵图进行线段合并处理,得到合并线段点阵图;

第二图合并处理模块600,用于合并所述合并线段点阵图与所述去孔洞清扫点阵图,生成第二合并点阵图;

第二闭运算处理模块700,用于对所述第二合并点阵图进行第二闭运算处理,得到与所述预设区域对应的最终点阵地图。

在一实施例中,还提供一种扫地机器人,包括控制模块,所述控制模块用于执行上述机器人地图数据处理方法。该控制模块的执行功能与上述实施例中机器人地图数据处理方法一一对应。关于控制模块的具体限定可以参见上文中对于机器人地图数据处理方法的限定,在此不再赘述。上述控制模块中的各个子模块可全部或部分通过软件、硬件及其组合来实现。上述各子模块可以硬件形式内嵌于或独立于控制模块中的处理器中,也可以以软件形式存储于控制模块中的存储器中,以便于处理器调用执行以上各个子模块对应的操作。

在一实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取扫地机器人在预设区域的建图清扫过程中得到的初始障碍物点阵图和初始清扫点阵图;

对所述初始清扫点阵图进行第一闭运算处理,得到去孔洞清扫点阵图;

对所述去孔洞清扫点阵图进行提取边界处理,得到清扫边界点阵图;

合并所述初始障碍物点阵图与所述清扫边界点阵图,生成第一合并点阵图;

对所述第一合并点阵图进行线段合并处理,得到合并线段点阵图;

合并所述合并线段点阵图与所述去孔洞清扫点阵图,生成第二合并点阵图;

对所述第二合并点阵图进行第二闭运算处理,得到与所述预设区域对应的最终点阵地图。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,所述的计算机可读指令可存储于一非易失性可读取存储介质或易失性可读存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

技术分类

06120115628812