扫地机器人地图的生成方法、扫地机器人控制方法及终端
技术领域
本发明涉及扫地机器人技术领域,特别涉及一种扫地机器人地图的生成方法、扫地机器人的控制方法,以及相应的终端。
背景技术
视觉扫地机器人可依赖于摄像头来定位和建图(视觉Vslam),因此其不但可以在对清扫区域进行清扫时获得其当前的位置坐标,从而形成原始扫地记录图(本文下称第一扫描记录图),还可以获得以坐标位图等形式表示的视觉扫描记录图(下文称第一校准扫描记录图)。理论上,用于控制视觉扫地机器人的APP启动后,可以从云端下载这些扫描记录图;APP根据这些扫地记录图来绘制视觉扫地机器人的运动轨迹,如此,便可在APP上实时显示视觉扫地机器人的运动情况及扫地记录情况。但是,由于传输带宽的限制和存储器容量的限制,在实际中通常并不会把这些扫地记录图传输到终端,而一般只是传输了机器人的坐标,基于这样的工作过程,APP上显示的将一直是只有视觉扫地机器人的运动轨迹,使得在APP上对视觉扫地机器人可开展的控制非常有限。当终端需要控制或限制机器人的清扫区域时,上述现有技术无法精准地实现。
以上背景技术内容的公开仅用于辅助理解本发明的发明构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述背景技术不应当用于评价本申请的新颖性和创造性。
发明内容
本发明解决的技术问题是:提出一种生成扫地机器人地图的方法、扫地机器人的控制方法、以及相应的终端,使终端能更精准灵活地对机器人进行控制。
为解决上述技术问题,本发明提出如下技术方案:
一种扫地机器人地图的生成方法,包括:T1、从云端或经由云端接收第二扫地记录图信息和第二校准扫地记录图信息,将第二扫地记录图中坐标与第二校准扫地记录图重合的部分以第二校准扫地记录图替换,实现对第二扫地记录图的校准,形成第三校准扫地记录图;或者,直接从云端或经由云端接收第三校准扫地记录图;或者,接收来自扫地机器人的通讯模组对第一校准扫地记录图进行转换处理形成的第二校准扫地记录图;
其中第二扫地记录图是对来自扫地机器人的通讯模组对第一扫地记录图进行转换处理形成的;所述第一扫地记录图来自于扫地机器人轨迹记录装置;所述第一校准扫地记录图由扫地机器人上的视觉装置经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息;所述第二校准扫地记录图所占存储空间的大小小于所述第一校准扫地记录图;T2、将所述第二校准扫地记录图或第三校准扫地记录图进行处理,以使所述第二校准扫地记录图或第三校准扫地记录图中的已扫区域的轮廓凸显出来,得到展示记录图;T3、将所述展示记录图显示出来。
在一些实施例中,步骤T2中,使所述第二校准扫地记录图或第三校准扫地记录图中的已扫区域的轮廓凸显出来包括:用线条表示所述轮廓,清空所述轮廓中包围的内容;或者,使所述轮廓与其包围的内容区分开来。
在一些实施例中,
步骤T2具体为:T2A、将所述第二校准扫地记录图或第三校准扫地记录图的轮廓向外膨胀设定的厚度,得到膨胀轮廓记录图,在所述膨胀轮廓记录图中减去被轮廓包围的内容,得到记录有墙体的图,所述展示记录图为所述记录有墙体的图。
在一些实施例中,步骤T2A中将所述第二校准扫地记录图或第三校准扫地记录图的轮廓向外膨胀设定的厚度具体包括:用第一数值表示所述轮廓,用第二数值表示所述轮廓包围的内容,用第三数值表示所述轮廓外围的内容;将所述轮廓按照所述第一数值所在区域指向所述第三数值所在区域的方向膨胀设定的厚度。
在一些实施例中,所述轮廓分为外轮廓和内轮廓,所述外轮廓包围所述内轮廓,将所述外轮廓和内轮廓之间的内容填充成墙体。
在一些实施例中,对所述墙体填充颜色或图案。
在一些实施例中,还包括当收到新的第二校准扫地记录图或第三校准扫地记录图后,重复步骤T2,得到新的展示记录图,用所述新的展示记录图替换旧的所述展示记录图,以实现对轮廓或墙体的校准。
在一些实施例中,还包括:
T4、将具有四个拖动点的方形选框放置于所述展示记录图中的人的视觉可感知的某个区域;T5、接收作用于所述方形选框上的拖放操作信号,使所述方形选框变形至与该区域部分重合或者全部重合,以选中方形框中的区域;T6、根据输入的命名信号,对所述选中的方形框中的区域进行命名,得到命名区域。
在一些实施例中,步骤T1的所述第二校准扫地记录图具体为:
内部区域划分成多个方形小格;
每个方形小格内的清扫情况用数位进行表示,形成数位方格图。
在一些实施例中,所述方形小格为正方形方格,各方格面积相等。
在一些实施例中,所述数位为二进制数位,即分别用“0”和“1”来分别表示“清扫过”和“未清扫过”,或者反之。
在一些实施例中,所述数位为四进制数位或更高进制数位,以便能有更多的数位值用来表示更多的方格状态,所述方格状态至少包括“清扫过”和“未清扫过”。
在一些实施例中,步骤T3中,将所述展示记录图显示出来包括:形成用户可视的具有色彩或灰度的图并显示出来。
在一些实施例中,步骤T1中,在所述通讯模组对第一校准扫地记录图进行转换处理之前还包括:
接收以数据包的形式发送的一块地图;
所述数据包的内容包括一个或多个清扫情况数据;
对于所述一块地图上清扫情况连续的多个点:用一个二进制数表示所述多个点的清扫情况,用另一个二进制数表示所述多个点的数量,将所述一个二进制数和所述另一个二进制数用一个三以上进制的数表示,一个所述清扫情况数据包括所述三以上进制的数;和/或,对于所述一块地图上清扫情况不连续的多个点:用一个二进制数表示所述多个点为清扫情况不连续的,将每个点的清扫状况用一个或多个数位表示,将表示每个点的清扫状况的所述一个或多个数位按照设定的顺序组合成另一个二进制数以对应所述多个点的清扫情况,将所述一个二进制数和所述另一个二进制数用一个三以上进制的数表示,一个所述清扫情况数据包括所述三以上进制的数;
根据所述数据包得到所述第一校准扫地记录图。
在一些实施例中,后一个所述数据包中包含前一个所述数据包中的全部或者部分数据;所述一块地图是方形地图,所述数据包的内容还包括清扫情况数据数量、方形地图最小X坐标、方形地图最小Y坐标、行方向坐标数量、机器人当前X坐标、机器人当前Y坐标。
本发明还提出一种终端,包括计算机程序,该程序用于运行后执行上述方法。
本发明还提出一种扫地机器人的控制方法,执行上述方法后:接收用户在显示出来的凸显轮廓的图上的操作指示,形成操作指令以对扫地机器人进行控制。
在一些实施例中,所述操作指示包括:指定清扫地点、设置虚拟墙壁、指定清扫区域、指定禁止清扫区域。
本发明还提出一种终端,包括计算机程序,该程序用于运行后执行上述控制方法。
本发明还提出一种扫地机器人地图的传输方法,包括:
将一块地图以数据包的形式发送出去;
所述数据包的内容包括一个或多个清扫情况数据;
对于所述一块地图上清扫情况连续的多个点:用一个二进制数表示所述多个点的清扫情况,用另一个二进制数表示所述多个点的数量,将所述一个二进制数和所述另一个二进制数用一个三以上进制的数表示,一个所述清扫情况数据包括所述三以上进制的数;和/或,对于所述一块地图上清扫情况不连续的多个点:用一个二进制数表示所述多个点为清扫情况不连续的,将每个点的清扫状况用一个或多个数位表示,将表示每个点的清扫状况的所述一个或多个数位按照设定的顺序组合成另一个二进制数以对应所述多个点的清扫情况,将所述一个二进制数和所述另一个二进制数用一个三以上进制的数表示,一个所述清扫情况数据包括所述三以上进制的数。
在一些实施例中,所述三以上进制的数的形式包括四进制数、八进制数、十进制数、十六进制数、三十二进制数。
在一些实施例中,后一个所述数据包中包含前一个所述数据包中的全部或者部分数据。
在一些实施例中,所述一块地图是方形地图,所述数据包的内容还包括清扫情况数据数量、方形地图最小X坐标、方形地图最小Y坐标、行方向坐标数量、机器人当前X坐标、机器人当前Y坐标。
在一些实施例中,所述数据包的内容还包括索引和校验和。
在一些实施例中,根据收到的请求,重发所述索引对应的所述数据包。
本发明还提出一种由扫地机器人生成及传输地图的方法,包括:
R1、接收来自扫地机器人视觉装置的第一校准扫地记录图;所述第一校准扫地记录图由扫地机器人上的视觉装置经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息;
R2、对所述第一校准扫地记录图进行转换处理形成第二校准扫地记录图,并备份存储;其中所述第二校准扫地记录图所占存储空间的大小小于所述第一校准扫地记录图,以使扫地机器人上的通讯模组可存储所述第二校准扫地记录图;
R3、将所述第二校准扫地记录图发送给可将所述第二校准扫地记录图处理成展示记录图以进行显示的云端或者终端。
在一些实施例中,步骤R2具体包括:
R21、提取第一校准扫地记录图的完整外轮廓,并将其内部区别划分成多个方形小格;
R22、判断每个方形小格内的清扫情况,用数位进行表示,形成数位方格图。
在一些实施例中,在步骤R21中,所述方形小格为正方形方格,各方格面积相等。
在一些实施例中,所述扫地机器人为视觉扫地机器人,在步骤R22中,数位为二进制数位,即分别用“0”和“1”来分别表示“清扫过”和“未清扫过”,或者反之。
在一些实施例中,步骤R22中,数位为四进制数位或更高进制数位,以便能有更多的数位值用来表示更多的方格状态,所述方格状态至少包括“清扫过”和“未清扫过”。
在一些实施例中,在步骤R3中:以设定的时间间隔,将所述第二校准扫地记录图发送给可将所述第二校准扫地记录图处理成展示记录图以进行显示的云端或者终端,以实现校准。
本发明还提出一种由云端生成及传输扫地机器人地图的方法,包括:
S1、获取扫地机器人通讯模组对来自扫地机器人视觉装置的第一校准扫地记录图进行转换处理形成的第二校准扫地记录图;所述第一校准扫地记录图由所述视觉装置经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息;所述第二校准扫地记录图所占存储空间的大小小于所述第一校准扫地记录图;
S2、将所述第二校准扫地记录图进行处理,以使所述第二校准扫地记录图中的已扫区域的轮廓凸显出来,得到展示记录图;
S3、将所述展示记录图发送给可将所述展示记录图显示出来的终端。
在一些实施例中,步骤S2中,使所述第二校准扫地记录图中的已扫区域的轮廓凸显出来包括:用线条表示所述轮廓,清空所述轮廓中包围的内容;或者,使所述轮廓与其包围的内容区分开来。
在一些实施例中,步骤S2具体为:
S2A、将所述第二校准扫地记录图还原,得到记录有轮廓的还原图像,将所述还原图像的已扫区域的轮廓区分出来,得到轮廓被区分的图,将所述轮廓被区分的图中的轮廓向外膨胀设定的厚度,得到膨胀轮廓记录图,在所述膨胀轮廓记录图中减去所述轮廓被区分的图中的轮廓包围的内容,得到记录有墙体的图,所述展示记录图为所述记录有墙体的图;
或者,步骤S2具体为:
S2B、将所述第二校准扫地记录图还原,得到记录有轮廓的还原图像,将所述还原图像中的轮廓向外膨胀设定的厚度,得到膨胀轮廓记录图,在所述膨胀轮廓记录图中减去所述还原图像中的轮廓包围的内容,得到记录有墙体的图,所述展示记录图为所述记录有墙体的图。
在一些实施例中,还包括:向扫地机器人发送用于使其判断所处的当前清扫区域是否有对应的扫地记录图的第三请求,以获得所述第二校准扫地记录图。
在一些实施例中,所述使所述轮廓与其包围的内容区分开来具体包括:用一种颜色表示所述轮廓,用另一种颜色表示所述轮廓包围的内容。
在一些实施例中,在步骤S3中:以设定的时间间隔,将所述展示记录图发送给可将所述展示记录图显示出来的终端,以实现对轮廓的校准。
本发明还提出一种由云端生成及传输扫地机器人地图的方法,包括:
S1、获取扫地机器人通讯模组对来自扫地机器人视觉装置的第一校准扫地记录图进行转换处理形成的第二校准扫地记录图;所述第一校准扫地记录图由所述视觉装置经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息;所述第二校准扫地记录图所占存储空间的大小小于所述第一校准扫地记录图;
S4、将所述第二校准扫地记录图发送给可将所述第二校准扫地记录图处理成可凸显已扫区域的轮廓的展示记录图并可将所述展示记录图显示出来的终端。
在一些实施例中,还包括:向扫地机器人发送用于使其判断所处的当前清扫区域是否有对应的扫地记录图的第三请求,以获得所述第二校准扫地记录图。
在一些实施例中,还包括:向扫地机器人发送第一请求,以获得所述第二校准扫地记录图。
在一些实施例中,在所述S4中:以设定的时间间隔,将所述第二校准扫地记录图发送给可将所述第二校准扫地记录图处理成可凸显已扫区域轮廓的展示记录图并可将所述展示记录图显示出来的终端,以实现对轮廓的校准。
本发明还提出一种计算机可读存储介质,其存储有与计算设备结合使用的计算机程序,所述计算机程序可被处理器执行以实现上述方法。
本发明还提出一种扫地机器人,包括视觉装置、与云端通讯的通讯模组,其特征在于:所述通讯模组设置有计算机程序,用于实现前述的扫地记录图的校准方法。
本发明有的益效果是:终端或云端接收来自扫地机器人的通讯模组对第一校准扫地记录图进行转换处理形成的第二校准扫地记录图。第二校准扫地记录图所占存储空间的大小小于第一校准扫地记录图,减小了存储空间,以保证通讯模组可备份完整的第二校准扫地记录图并将其发送给终端或云端,无需对通讯模组的存储空间做太大的升级。第二校准扫发记录图还可以用于对第二扫地记录图(通过对第一扫地记录图进行压缩转换而得到)进行修正,形成第三校准扫地记录图。终端或云端将第二或第三校准扫地记录图进行处理,使其中的已扫区域的轮廓凸显出来,得到展示记录图以进行显示。如此,用户便可看到扫地机器人所处的当前清扫区域的被凸显出来的轮廓,也就可在凸显轮廓的图上操作,比如指定清扫地点、设置虚拟墙壁、指定清扫区域、指定禁止清扫区域。
在优选的实施方式中,本发明还具有如下有益效果:
利用来自扫地机器人视觉装置的校准扫地记录图对来自扫地机器人轨迹记录装置的基本扫地记录图进行校准,可以把因扫地机器人打滑或者碰到障碍物而造成的地图偏差纠正过来,从而为后续扫地机器人精准控制创造了条件。
由于第一扫地记录图和第一校准扫地记录图均进行了转换处理,形成的第二扫地记录图和第二校准扫地记录图分别小于第一扫地记录图和第一校准扫地记录图,减小了存储空间,这样就可以在扫地机器人的WiFi通讯模组上或机器人的控制主板(ARM主板)的内存中备份完整的第二扫地记录图和第二校准扫地记录图而无须对WiFi通讯模组的存储空间或机器人的内存空间做太大的升级。
附图说明
图1是本发明实施例一的视觉扫地机器人的结构示意图。
图2是本发明实施例一的视觉扫地机器人通讯系统的交互图。
图3是本发明实施例二的视觉扫地机器人通讯系统的交互图。
图4是本发明实施例三的视觉扫地机器人通讯系统的交互图。
图5是本发明实施例七的轮廓被区分的图。
图6是本发明实施例七的膨胀轮廓记录图。
图7是本发明实施例七的记录有墙体的图。
图8是本发明实施例七的存在闭合的边界的图。
图9是本发明实施例七的闭合的边界被填充成墙体的图。
图10A是本发明实施例九的总体流程示意图。
图10B是本发明实施例九的交互示意图。
图11是本发明实施例九形成第二校准扫地记录图的流程示意图。
具体实施方式
下面结合具体实施方式并对照附图对本发明作进一步详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
参照图1至图11,将描述非限制性和非排他性的实施例,其中相同的附图标记表示相同的部件,除非另外特别说明。
实施例一
参考图2,本发明实施例的视觉扫地机器人通讯系统包括视觉扫地机器人1、云端2和终端3。终端3为移动终端。参考图1,视觉扫地机器人1包括机器人主体11和通讯模组12。
视觉扫地机器人1的通讯模组12可与云端2相互通讯,云端2可与终端3相互通讯,云端2用于使视觉扫地机器人1的通讯模组12可与终端3通讯。当然,视觉扫地机器人1也可直接与终端3相互通讯。
视觉扫地机器人1采用基于视觉的定位与建图(VSLAM,Visual SimultaneousLocalization and Mapping),其设有视觉装置13。具体的,参考图1,机器人主体11包括视觉装置13和轨迹记录装置14。
终端3运行有用于控制视觉扫地机器人1的APP。
云端2的形式包括服务器、服务器集群、专用路由器、无线猫或者中继站。终端3还可以是个人电脑、平板电脑或者智能穿戴设备。通讯模组12的形式包括WIFI通讯模组和5G通讯模组。
参考图2,在本发明实施例一的视觉扫地机器人通讯系统中,视觉扫地机器人可生成及传输地图,终端也可生成及传输视觉扫地机器人地图,云端2也可生成及传输视觉扫地机器人地图。以下对此进行说明。
在本发明实施例一中,由终端生成视觉扫地机器人地图的方法包括步骤T1至步骤T3,由云端生成及传输扫地机器人地图的方法包括步骤S1和步骤S4,由扫地机器人的通讯模组生成及传输地图的方法包括步骤R1至步骤R3。参考图2,在整个系统的通讯过程中,视觉扫地机器人1的通讯模组12与云端2通讯,云端2与终端3通讯,具体如下。
步骤R1、接收来自扫地机器人1的视觉装置13的第一校准扫地记录图;该第一校准扫地记录图由扫地机器人1上的视觉装置13经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息。
视觉扫地机器人在工作时,其上的轨迹记录装置14会以坐标位图形式记录扫地机器人行走轨迹,形成第一扫地记录图,用于显示视觉扫地机器人的扫地轨迹。
除了第一扫地记录图之外,视觉扫地机器人在工作时还会生成第一校准扫地记录图。第一校准扫地记录图是由视觉扫地机器人依赖于摄像头来定位和建图的,即基于视觉的定位与建图(视觉Vslam)。其图的形式也可以是坐标位图形式。第一校准扫地记录图可用于对视觉扫地机器人记录的扫地轨迹进行校正。
扫地机器人的扫地范围很大,要记录的像素数通常达255*255,因此单幅扫地记录图数据的大小即达到65K以上(指Byte数),存储第一扫地记录图已经占用很大的存储空间了,如此再存储一个第一校准记录图,则存储空间会紧上加紧。为此,本发明实施例一对第一校准记录图进行如下处理:
步骤R2、对第一校准扫地记录图进行转换处理形成第二校准扫地记录图,使得第二校准扫地记录图所占存储空间的大小小于第一校准扫地记录图,以使扫地机器人上的通讯模组12可存储第二校准扫地记录图,然后进行备份存储。具体方法包括如下步骤:
步骤R21、提取第一校准扫地记录图的完整外轮廓,并将其内部区别划分成多个方格,各方格为正方形,面积相等(边缘部位除外);
步骤R22、判断每个方格内的清扫情况,用数位进行表示,形成数位方格图。数位可采用二进制数位,即分别用“0”和“1”来分别表示“未清扫过”和“清扫过”,或者反之。
如此一来,假设数位方格图仍为255*255像素大小,则由于每个方格只需要存储0和1两个状态,则每个方格事实上只占用一个bit的存储空间而非一个Byte。因此,所占用的总空间只有65Kbit,而非65KByte。存储空间只有原来的1/8。
在其他一些实施例中,数位也可以为四进制数位或更高进制数位(如5进制或6进制),以便能有更多的数位值用来表示更多的方格状态,这样,方格状态不仅可包括“清扫过”和“未清扫过”,还可以包括诸如:“障碍物”、“扫过待重扫”等更多状态,比如:00为“清扫过”、01为“未清扫过”、10为“障碍物”、11为“扫过待重扫”。但所占用的存储空间变大了。
此外,方格为正方形方格,各方格面积相等。这样便于处理,可减少运算量。
也可将第一扫地记录图进行转换处理形成第二扫地记录图,以使第二扫地记录图所占存储空间的大小小于第一扫地记录图。
第一、二校准扫地记录图可以是定期进行,也可以是应终端客户发出的请求进行,因为它图片较大,不一定要做到很实时。
参考图2,步骤R2完成后,第二校准扫地记录图被形成。通讯模组12执行步骤R3。
步骤R3、通讯模组12将第二校准扫地记录图发送给可将第二校准扫地记录处理成展示记录图以进行显示的云端2。
经过处理后的第一校准扫地记录图也即第二校准扫地记录图已可存储在通讯模组中。视觉扫地机器人1将第二校准扫地记录图主动上报给云端2,比如按设定的时间间隔上报。在其他一些实施例中,视觉扫地机器人1是在收到云端2或者终端3的请求之后才将第二校准扫地记录图发送出去。
参考图2,接下来,云端2执行步骤S1和步骤S4,以生成及传输视觉扫地机器人地图。
步骤S1、获取视觉扫地机器人1的通讯模组12对来自视觉扫地机器人1的视觉装置13的第一校准扫地记录图进行转换处理形成的第二校准扫地记录图;如前所述,第一校准扫地记录图由视觉装置13经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息,第二校准扫地记录图所占存储空间的大小小于第一校准扫地记录图。也即,云端2接收视觉扫地机器人1主动上报的第二校准扫地记录图。
终端3上用于控制视觉扫地机器人1的APP运行,比如APP进入工作状态或者收到用户的操作指示,终端3向云端2发送第一请求,以获取第二校准扫地记录图。
云端2执行步骤S4以对终端3回应。
步骤S4、接收终端3发送的第一请求,将第二校准扫地记录图发送给可将第二校准扫地记录图处理成可凸显已扫区域的轮廓的展示记录图并可将所述展示记录图显示出来的终端3。
此后,也可以利用第二校准扫地记录图对第二扫地记录图,校准的方法是将第二扫地记录图中坐标与第二校准扫地记录图重合的部分以第二校准扫地记录图替换,形成第三校准扫地记录图。
参考图2,终端3收到云端2发送的第二校准扫地记录图或第三校准扫地记录图后,执行步骤T2和步骤T3。
步骤T2、将第二校准扫地记录图或第三校准扫地记录图进行处理,以使第二校准扫地记录图或第三校准扫地记录图中的已扫区域的轮廓凸显出来,得到展示记录图。步骤T2具有多种形式,其中的一种形式为:将第二校准扫地记录图或第三校准扫地记录图还原,比如还原成单通道图像或者多通道图像,得到记录有轮廓的还原图像;将还原图像中的已扫区域的轮廓区分出来,得到轮廓被区分的图;在这种情况下,展示记录图为轮廓被区分的图。
其中,将还原图像中的已扫区域的轮廓区分出来是使轮廓被区分出来,具体包括:用线条表示轮廓,清空轮廓中包围的内容;或者,使轮廓与其包围的内容区分开来,比如:用一种颜色表示轮廓,用另一种颜色表示轮廓包围的内容。
步骤T3、将展示记录图显示出来。终端3将展示记录图在显示部件比如显示屏上显示出来。如前所述,步骤T2有不同的形式,那么得到的展示记录图也就有不同的形式,比如:展示记录图为轮廓被区分的图。如此,用户便可看到视觉扫地机器人1所处的当前清扫区域的轮廓。
根据上述可知,终端3接收来自扫地机器人1的通讯模组12对第一校准扫地记录图进行转换处理形成的第二校准扫地记录图。第二校准扫地记录图所占存储空间的大小小于第一校准扫地记录图,减小了存储空间,以保证通讯模组12可备份完整的第二校准扫地记录图并将其发送给终端3,无需对通讯模组12的存储空间做太大的升级。终端3将第二校准扫地记录图或第三校准扫地记录图进行处理,使其中的已扫区域的轮廓凸显出来,得到展示记录图并进行显示。如此,用户便可看到视觉扫地机器人1所处的当前清扫区域的轮廓,也就可在轮廓被区分的图上操作,比如指定清扫地点、设置虚拟墙壁、指定清扫区域、指定禁止清扫区域。凸显轮廓的图为轮廓被区分的图。
为了提高对用户的友好程度,在步骤T3中,将展示记录图显示出来包括:对展示记录图进行处理,形成用户可视的具有色彩或灰度的图并显示出来。
在本发明实施例一中,由扫地机器人生成及传输地图的方法的执行主体是设置于扫地机器人上的WiFi通讯模组。在另一些实施例中,其执行主体可以是其他形式,比如5G通讯模组、机器人的控制主板(如ARM主板)等。
本发明实施例一还可以有一些变型的形式,比如:
视觉扫地机器人1执行步骤R4、判断所处的当前清扫区域是否有对应的扫地记录图。视觉扫地机器人1在开始新的清扫任务时,在所处的当前清扫区域进行定位,判断之前是否有清扫过该区域,若清扫过,则会查找到对应的第一校准扫地记录图,若没有清扫过,则找不到对应的第一校准扫地记录图,识别为首次清扫该清扫区域。如果视觉扫地机器人1是首次清扫一个清扫区域,第一校准扫地记录图是从无到有生成并且保存的,比如一边清扫一边按照指定时间生成第一校准扫地记录图。如此,视觉扫地机器人1清扫一段时间后,步骤R4的判断结果就是所处的当前清扫区域有对应的历史扫地记录图也即第一校准扫地记录图,然后将第一校准扫地记录图发送出去比如发送给通讯模组。
实施例二
参考图2和图3,本发明实施例二与本发明实施例一的区别在于:参考图2,在本发明实施例一中,由终端3执行步骤T2将第二校准扫地记录图进行处理;参考图3,在本发明第二实施例中,则是由云端2将第二校准扫地记录图后发送给终端3,具体如下文。
参考图3,视觉扫地机器人1执行步骤R1至步骤R3。云端2执行步骤S1获取第二校准扫地记录图,然后执行步骤S2。
步骤S2、将第二校准扫地记录图进行处理,以使第二校准扫地记录图中的已扫区域的轮廓凸显出来,得到展示记录图。
终端3上用于控制视觉扫地机器人1的APP运行,比如APP从后台进入工作状态或者收到用户的操作指示,终端3向云端2发送第二请求,以获取展示记录图。
云端2执行步骤S3以对终端3回应。
步骤S3、将展示记录图发送给可将展示记录图显示出来的终端3。
终端3收到云端2发送的展示记录图后,执行步骤T3,将展示记录图显示出来。
根据上述可知,本发明实施例二也具有本发明实施例一的有益效果。此外,由云端2将第二校准扫地记录图处理成展示记录图,在接收到终端3发送的第二请求后将展示记录图发送给终端3,也即提前形成了展示记录图,可加快云端2对终端3的响应速度,提高用户体验。
本发明实施例二还可以有一些变型的形式,比如:
视觉扫地机器人1执行步骤R1至R3,将第二校准扫地记录图主动上报给云端2。云端2执行步骤S1获取第二校准扫地记录图。终端3向云端2发送用于获取展示记录图的第二请求。云端2执行步骤S2和步骤S3,将第二校准扫地记录图处理成展示记录图并发给终端3。终端3收到云端2发送的展示记录图后,执行步骤T3,将展示记录图显示出来。
视觉扫地机器人1执行步骤R1和步骤R2,得到第二校准扫地记录图。终端3发送第二请求给云端2,以获取展示记录图。云端2收到终端3发送的第二请求后,向视觉扫地机器人1发送第一请求,以获得第二校准扫地记录图。视觉扫地机器人1执行步骤R3,将第二校准扫地记录图发送给云端2。云端2执行步骤S1至步骤S3。终端3则执行步骤T3。
视觉扫地机器人1先执行步骤R1。终端3发送第二请求给云端2,以获取展示记录图。云端2收到终端3发送的第二请求后,向视觉扫地机器人1发送第三请求。其中,第三请求用于使视觉扫地机器人1判断所处的当前清扫区域是否有对应的扫地记录图。视觉扫地机器人1收到第三请求后,执行步骤R4、步骤R2和步骤R3,将第二校准扫地记录图发送给云端2。云端2执行步骤S1至步骤S3。终端3则执行步骤T3。
还可以是云端2先向视觉扫地机器人1发送第三请求,视觉扫地机器人1执行步骤R1至步骤R3,然后云端2执行步骤S1至步骤S3,在收到终端3发送的第二请求后直接将展示记录图发送给终端3。
实施例三
参考图2和图4,本发明实施例三与本发明实施例一的区别在于:参考图2,在本发明实施例一中,视觉扫地机器人1与云端2通讯,云端2与终端3通讯;在本发明实施例三中,视觉扫地机器人1直接与终端3通讯,具体如下文。
参考图4,视觉扫地机器人1的通讯模组12执行步骤R1至步骤R2。在收到请求后,执行步骤R3,将第二校准扫地记录图发送给终端3。比如:终端3上用于控制视觉扫地机器人1的APP运行,比如APP进入工作状态或者收到用户的操作指示,终端3向视觉扫地机器人1发送第一请求,以获取第二校准扫地记录图。视觉扫地机器人1收到第一请求后,执行步骤R3。
终端3则执行步骤T1至步骤T3。
根据上述可知,本发明第四实施例也具有本发明第一实施例的有益效果。此外,视觉扫地机器人1直接与终端3通讯,可节省因使用云端2进行通讯而产生的流量开销。
本发明实施例三还可以有一些变型的形式,比如:
视觉扫地机器人1执行步骤R1至步骤R2,得到第二校准扫地记录图。终端3上用于控制视觉扫地机器人1的APP运行,比如APP进入工作状态或者收到用户的操作指示,终端3向视觉扫地机器人1发送第一请求。视觉扫地机器人1执行步骤R3,将第二校准扫地记录图发给终端3。随后,终端3执行步骤T1至步骤T3。
还可以是视觉扫地机器人1执行步骤R1,在收到终端3发送的第一请求后再执行步骤R2和步骤R3,然后终端3执行步骤T1至步骤T3。
实施例四
本发明实施例四提出一种终端,包括计算机程序,该程序用于运行后执行上述由终端生成视觉扫地机器人地图的方法。
实施例五
本发明实施例五提出一种扫地机器人的控制方法,当凸显轮廓的图显示出来后,接收用户在显示出来的凸显轮廓的图上的操作指示,形成操作指令以对扫地机器人进行控制。其中,操作指示包括:指定清扫地点、设置虚拟墙壁、指定清扫区域、指定禁止清扫区域。如此,增加了对视觉扫地机器人可开展的控制。
凸显轮廓的图的具体形式包括轮廓被区分的图和记录有墙体的图。
相应的,本发明实施例五还提出一种终端,包括计算机程序,该程序用于运行后执行上述控制方法。
实施例六
为了解决轮廓及墙体不太精准的技术问题,在每次清扫时都重新提取轮廓并重新校正轮廓及墙体,使得轮廓和墙体更加精准。
在首次清扫的时候轮廓和墙体是从无到有生成并且保存。扫地机器人每次清扫的时候都会重新探索边界,以设定的时间间隔生成新的第二校准扫地记录图并上传到终端3的APP或者云端2,比如通过通讯模组12上传。
云端2收到新的第二校准扫地记录图后执行步骤S2,得到新的展示记录图,云端2将新的展示记录图发给终端3,终端3将新的展示记录图替换旧的展示记录图,以实现对轮廓的校准。
或者,终端3收到新的第二校准扫地记录图后执行步骤T2,得到新的展示记录图,将新的展示记录图替换旧的展示记录图,以实现对轮廓的校准。
或者,终端3得到新的第二校准扫地记录图后,将其处理成新的记录有墙体的图,将新的记录有墙体的图替换旧的记录有墙体的图,以实现对墙体的校准。
根据上述可知,便可在后续第二次以及在后面的清扫过程中,边清扫边修正之前已经产生的记录有轮廓的图,使APP上展示的轮廓和墙体更加精准。其中,记录有轮廓的图具体形式包括轮廓被区分的图、将第二扫地记录图还原得到的还原图像和记录有墙体的图。
实施例七
在一些情况下为了方便用户更好地控制扫地机器人,需要在记录有轮廓的轮廓图中画一个墙体,比如在轮廓被区分的图或将第二校准扫地记录图还原得到的还原图像中画一个墙体,但是在画这个墙体的时候不知道是往外画还是往里画,因此画的方向有可能会错,所以采取如下扫地机器人地图的处理方法。
对步骤T2中的使第二校准扫地记录图中的已扫区域的轮廓凸显出来,除了是前述的使轮廓被区分出来之外,还可以是将轮廓处理成墙体。具体如下。
步骤T2为步骤T2A。步骤T2A、将第二校准扫地记录图还原,得到记录有轮廓的还原图像;参考图5,将还原图像的已扫区域的轮廓区分出来,得到轮廓被区分的图,图5中示意性地示出了显示部件比如屏幕的边框100;将轮廓被区分的图中的轮廓210向外膨胀设定的厚度,得到膨胀轮廓记录图,参考图6,轮廓210向外膨胀设定的厚度后得到膨胀轮廓220;在膨胀轮廓记录图中减去轮廓被区分的图中的轮廓210包围的内容,得到记录有墙体的图;展示记录图为记录有墙体的图。
或者,步骤T2为步骤T2B。步骤T2B、将第二校准扫地记录图还原,得到记录有轮廓的还原图像;将还原图像中的轮廓向外膨胀设定的厚度,得到膨胀轮廓记录图,在膨胀轮廓记录图中减去还原图像中的轮廓包围的内容,得到记录有墙体的图,展示记录图为记录有墙体的图。
为了更加方便识别,对墙体进行颜色的填充,图7中示意性的示出了填充了颜色的墙体230,具体是这样填充:图6中的轮廓分为外轮廓和内轮廓,膨胀轮廓220为外轮廓,轮廓210为内轮廓,外轮廓包围内轮廓,将外轮廓和内轮廓之间的内容填充成墙体。
记录有墙体的图和轮廓被区分的图均属于凸显轮廓的图。
如前所述,第二校准扫地记录图用位数(bit)表示每个格子的清扫状况。还原图像是将第二校准扫地记录图还原比如还原成单通道图像或者多通道图像得到的。也就是还原图像用不同的数值来表示每个像素,比如:单通道图像用0至255中的一个数表示每个像素,在还原图像中,轮廓用第一数值比如“100”表示,轮廓包围的内容则用第二数值比如“255”表示,轮廓外围的内容则用第三数值比如“0”表示,第一数值、第二数值和第三数值的值各不相同,如此,便可区分还原图像中哪个位置是轮廓、哪个位置是轮廓包围的内容、哪个位置是轮廓外围的内容。对于多通道图像,第一数值、第二数值和第三数值则均包括多个0至255中的数,比如:第一数值为“100,100,100”,第二数值为“255,255,255”,第三数值为“0,0,0”。如此便可区分哪里是由轮廓向内、哪里是由轮廓向外,比如由“100”所在区域指向“0”所在区域的方向就是由轮廓向外。先用膨胀法,让还原图像中的轮廓向外膨胀一定的厚度,得到膨胀轮廓记录图,然后在这个膨胀轮廓记录图中减去原有边界内的原始图,也即减去还原图像中的轮廓包围的内容,剩下的部分就是墙体,得到将膨胀后的轮廓作为墙体的墙体记录图也即记录有墙体的图。参考图7,为了更加方便识别,对墙体部分进行颜色的填充。对于在轮廓被区分的图中画一个墙体跟上述过程类似。
当然,还可以用其它方式比如现有技术中的方式来区分哪里是由轮廓向内、哪里是由轮廓向外。
此外,参考图8,由于清扫区域中会存在障碍物比如大型落地家电,在记录有轮廓的图比如还原图像、轮廓被区分的图或者记录有墙体的图中,会存在闭合的边界300。在图8中,轮廓210为内轮廓,轮廓210包围闭合的边界300。该闭合的边界300代表障碍物。参考图9,把闭合的边界300直接填充成墙体230,以将其标识为不可清扫。把闭合的边界300直接填充成墙体230可以是在还原图像、轮廓被区分的图或者记录有墙体的图中进行。
实施例八
为了便于控制,需要识别不同的住家区域。为此,需要对各个区域进行特殊的标注,如客厅、阳台、楼梯、卧室等。
根据用户在终端3的屏幕上的操作,终端3将具有四个拖动点的方形选框放置于凸显轮廓的图或记录有墙体的图中的某个区域。用户在终端3的屏幕上通过拖动任一个拖动点来拖放方形选框,以使方形选框变形。此时,终端3接收作用于方形选框上的拖放操作信号,使方形选框变形至与前述某个区域部分重合或者全部重合,以选取区域。用户完成拖放操作后,进行确认。终端3完成选取区域,得到选定区域。终端3在屏幕上跳出一个对话框,让用户输入或者选择这个选定区域的名称。根据输入的命名信号,终端3对选定区域进行命名,从而得到命名区域,比如“客厅”、“阳台”、“楼梯”、“卧室”等。如此,便可对各个区域进行标注。
用户在使用APP的过程中会对扫地记录图进行纠正,在终端3上形成轮廓调整图。终端3将轮廓调整图发送给视觉扫地机器人1的通讯模组12,由通讯模组将该轮廓调整图传输给机器人主体11。视觉扫地机器人1对该轮廓调整图进行识别和分析,结合视觉装置13来对其之前在清扫区域中识别的边界进行调整。如此,视觉扫地机器人1可以更精准地识别边界。
实施例九
本实施例专门用于举例说明如何生成第三校准扫地记录图。如图10A所示,本发明实施例九的总体流程示意图,该实施例示出了一种扫地记录图的校准方法,该方法的执行主体是设置于扫地机器人上的WiFi通讯模组。在另一些实施例中,其执行主体可以是其他形式,比如5G通讯模组、专用路由器、无线猫、中继站、服务器、机器人的控制主板(如ARM主板)等。包括基本扫地记录图获取过程、校准扫地记录图获取过程和校正过程。
(一)基本扫地记录图获取过程,它包括如下步骤:
B1、接收来自扫地机器人轨迹记录装置的第一扫地记录图。
机器人在工作时,扫地机器人上的轨迹记录装置会以坐标位图形式记录扫地机器人行走轨迹,形成第一扫地记录图,并完整的传输给安装在扫地机器人自身上的wifi通讯模组。此步骤现有技术即可实现,比如可通过惯性导航数据或视觉传感器数据获得,根据机器人的大小和采样精度要求,通常7cm左右记录一个点(此尺寸相当于扫地机器人机身的大不)。
B2、接收到第一扫地记录图后进行转换处理形成第二扫地记录图,并备份存储。
由于扫地机器人的扫地范围很大,要记录的像素数通常达255*255,因此单幅扫地记录图数据的大小即达到65K以上,而扫地机器人上的wifi通讯模组在扣除应用程序所占用的空间之后,通常只能剩余较小的存储空间来存储历史数据。为此,本实施例把扫地记录图的信息做了步骤B2中的处理以得到第二扫地记录图,使得第二扫地记录图所占存储空间的大小小于第一扫地记录图,并且第二扫地记录图的大小确保wifi通讯模组上能保存完整的第二扫地记录图信息,从而解决存储空间不够的问题。由于记录的是完整的第二扫地记录图数据,在wifi通讯模组上始终保存了一个准确的扫地轨迹记录。
具体地,步骤B2中对第一扫地记录图转换处理得到第二扫地记录图的方法包括如下步骤:
B21、提取扫地机器人行走路径中的一个直线段:在第一扫地记录图中,记录有扫地机器人最初所在的点的坐标及最初行走所到达的第一个点的坐标;提取这两点,形成一个直线段,这样逐一向后提取每个点,即可得到机器人所走过的所有直线段,从中可找到机器人当前所在的直线段。当然,也可以不用自始至终提取所有的直线段,也可以直接只提取机器人当前所在的直线段。
B22、当机器人向下一个位置行走、wifi通讯模组得到机器人的最新位置坐标后,判断扫地机器人向新位置点的行走是否仍是沿着之前的同一条直线,即:提取扫地机器人的邻近的下一位置点(下称新位置点)的坐标,根据坐标判断新位置点与扫地机器人最临近的之前所在的直线段是否在一条直线上,判断扫地机器人本次一个步距的行走是否仍是沿着之前的同一条直线。
具体的判断方法比如可以是:第一个点作为线段首点,第二个点作为线段临时结束点,计算直线方程:y=a*x+b中的参数a,b;机器人移动到第三个点时,根据前面的直线方程判断该点是否上面的直线上:只需把三个点的坐标代入上述方程看是否满足即可,能满足该方程则在一条直接上,否则不在一条直接线上。
B23、如果是,则将整个直线段上处于端点之外的点在记录中去除,使得该直接段上只保留终点和起点这两个点的坐标。即:如果第三点在前面的直线上,则将第三点替代第二给点作为新的线段结束点;如果不在,则将第二点作为新线段的第一个点,将第三点作为临时第二点,跳转至第B22步。
B24、不断地重复进行步骤B22-B23,对扫地机器人的每一个新位置点进行上述判断,从而始终保持该直接段上只保留终点和起点这两个点的坐标;得到扫地机器人的简化的第二扫地记录图。可以看出,此图实际上是以XY坐标图的形式存在的(图中只是列出各个转折点的XY坐标)。
显然,扫地机器人直线行走的时间越长,则删除的数据越多,从而扫地记录图也就越简化。
在扫地机器人工作期间,第一、二扫地记录图是一直不停地在绘制的,形成动态更新的效果。
(二)校准记录图获取过程,包括如下步骤:
C1、接收来自扫地机器人视觉装置的第一校准扫地记录图;所述第一校准扫地记录图由扫地机器人上的视觉装置经视觉识别已扫区域的清扫情况而形成,其中包含有已扫区域的起始点坐标信息和已扫区域的清扫情况信息。
如前所述,第一校准扫地记录图是由视觉扫地机器人依赖于摄像头来定位和建图的,即基于视觉的定位与建图(视觉Vslam)。其图的形式也可以是坐标位图形式。
如上所述,扫地机器人的扫地范围很大,要记录的像素数通常达255*255,因此单幅扫地记录图数据的大小即达到65K以上(指Byte数),存储第一扫地记录图已经占用很大的存储空间了,如此再存储一个第一校准记录图,则存储空间会紧上加紧。为此,本实施例对第一校准记录图进行如下处理:
C2、对第一校准扫地记录图后进行转换处理形成第二校准扫地记录图,使得第二校准扫地记录图所占存储空间的大小小于第一校准扫地记录图,然后进行备份存储。具体方法如图11所示,包括如下步骤:
C21、提取第一校准扫地记录图的完整外轮廓,并将其内部区别划分成多个方格,各方格为正方形,面积相等(边缘部位除外);
C22、判断每个方格内的清扫情况,用数位进行表示,形成数位方格图。
数位可采用二进制数位,即分别用“0”和“1”来分别表示“未清扫过”和“清扫过”,或者反之。
如此以来,假设数位方格图仍为255*255像素大小,则由于每个方格只需要存储0和1两个状态,则每个方格事实上只占用一个bit的存储空间而非一个Byte。因此,所占用的总空间只有65Kbit,而非65KByte。存储空间只有原来的1/8。
在其他一些实施例中,数位也可以为四进制数位或更高进制数位(如5进制或6进制),以便能有更多的数位值用来表示更多的方格状态,这样,方格状态不仅可包括“清扫过”和“未清扫过”,还可以包括诸如:“障碍物”、“扫过待重扫”等更多状态,比如:00为“清扫过”、01为“未清扫过”、10为“障碍物”、11为“扫过待重扫”。但其缺点是所占用的存储空间变大了。
由于第二扫地记录图是源自扫地机器人轨迹记录装置,采用的是XY坐标图,其绘制地图的分辨率只能达到扫地机器人的机身宽度大小,即每个像素的大小不能小于扫地机器人的机身(通常为7cm左右)。本实施例获得的第二校准扫地记录图相比于用XY坐标图做出的第二扫地记录图而言,经计算,如果是采用255*255的分辨率,则其校准后的扫地记录图的路径的线宽可减少约一倍,在有限的清扫面积(比如700平方米以下)内可以使地图具有更细腻的像素,绘制的地图更精准。而且所扫的面积越小会越精准。由于700平方米以下均能达到此效果,因此对于普通住家而言,其校准后的扫地记录图都可以达到这个效果,对普通消费者来说是足够使用了。
第一、二校准扫地记录图可以是定期进行,也可以是应终端客户发出的请求进行,因为它图片较大,不一定要做到很实时。
需要指出的是,第二校准扫地记录图的存储空间大小要大于第二扫地记录图,而且第二扫地记录图是从扫地机器人的轨迹记录装置中记录并转换而得来的,它可以在机器人扫地过程中不断的绘制,具有动态更新及时的特点,而第二校准扫地记录图需要用VSLAM绘制,因图片较大而传输和处理都不能做到很实时。因此,本实施例利用第二校准扫地记录图对第二扫地记录图进行校准,以便得到二者优点的结合,获得一个既能更精准而又能保持动态更新的扫地记录图。
上面说过,本实施例的执行主体是在机器人的WIFI模板上。在这种情况下,WIFI模组不单是具有通讯功能,它还具有扫地图处理功能;WIFI模板是通过串口从机器人的ARM主板上获取第一扫地图和第一校准扫地图的。
但在另一些实施例中,其执行主体可以是其他形式,比如5G通讯模组、专用路由器、无线猫、中继站、服务器、机器人的ARM主板等。下面以执行主体为机器人的ARM主板为例进行简单补充介绍。
当执行主体是在机器人的ARM主板上时,上述方法实际上是通过一个运行在ARM主板上的进程来实现的,可称为扫地图处理进程。该进程通过队列方式或内存映射方式从机器人的ARM内存中获取第一扫地图和第一校准扫地图,并且通过本发明的方法形成第二扫地图和第二校准扫地图,并保留在该进程所占用的内存中,也就是说,在该进程所占用的内存中,保留有第二扫地图和第二校准扫地图的存储备份,或者保留有第三扫地记录图的存储备份。
(三)校准过程
本实施例的校准过程放在用户手机APP(即对扫地机器人进行控制的APP)中进行(当然,在其他实施例中,不排除在WIFI通讯模组中、机器人ARM中的扫地图处理进程中或云端进行),因此,WiFi通讯模组只需根据云端转来的终端(手机APP)的请求,将第二扫地记录图和第二校准扫地记录图均传输到用户终端,以便在用户终端上进行校准,直接形成或美化后形成可供向用户显示的第四校准扫地记录图。校准的方法是将第二扫地记录图中坐标与第二校准扫地记录图重合的部分以第二校准扫地记录图替换,形成第三校准扫地记录图。替换后,终端客户将会在屏幕上看到,一部分扫地记录图突然变得清楚了,而剩余部分则在继续绘制。
由于第二扫地记录图的文件较小,并且可以及时动态更新,因此校准前、校准中和校准后,第二扫地记录图还可以不停地进行绘制,不断更新扫地记录图,这就是为什么终端用户会看到一部分扫地记录图突然变得清楚的同时而剩余部分还在继续绘制的原因。
通常,用户不开手机APP时,是无须上传扫地记录图的;当用户打开手机APP,则向扫地机器人的WiFi通讯模组发出请求,获得第二扫地记录图和第二校准扫地记录图。此方案的优点是可以节省网络流程和云端存储空间。
图10B示出了本实施例中各实施主体的交互示意图。
实施例十
本实施例中,直接在WiFi通讯模组上将第二扫地记录图中坐标与第二校准扫地记录图重合的部分以第二校准扫地记录图替换,获得第三校准扫地记录图,存储于WiFi通讯模组上,其好处是WiFi通讯模组上只是存储第三校准扫地记录图这一张,此张图上已将第二扫地记录图中坐标与第二校准扫地记录图重合的部分舍去,因而可以节省存储空间。但由于第二扫地记录图中坐标与第二校准扫地记录图的制式不一样,所以第三校准扫地记录图实际上是由两张扫地记录图拼接而成,其中一部分是以数位图的形式存在,另一部分是以XY坐标图的形式存在。
实施例十一
本实施例中,是将第二扫地记录图和第二校准扫地记录图均上传到云端,以便在后续程序中校准,形成第三校准扫地记录图。这样,当用户打开手机APP时,云端可直接向用户发送第二扫地记录图和第二校准扫地记录图,与此同时,也向扫地机器人的WiFi通讯模组发出请求,获得更新的第二扫地记录图和第二校准扫地记录图。此方案的优点是当扫地机器人的WiFi通讯模组和云端的通讯断开之后,有户仍可以知道机器人之前扫到了哪里。
实施例十二
上述实施例中的方法适用于视觉机器人地图传输和展示。然而,由于校准后的扫地记录图对扫地情况的记录非常准确,所以它的用途不仅仅限于展示。本实施例就提出了几种基于校准后的扫地记录图的应用。
1、指哪扫哪:用户在展示在手机屏幕上的经校准后的扫地记录图上进行指点,即可实现让扫地机器人前往指定地点清扫的目的。
2、虚拟墙壁:用户可以用划线的方式,在扫地区域指定虚拟墙,命令扫地机器人不可以越墙去清扫。
3、指定清扫区域:此点与上述1相似,只是指定地点改为指定区域。
4、指定禁区等功能:此点与上述3相似,只是指定区域改为指定禁止区域,即禁止机器人前往清扫的区域。
实施例十三
本发明实施例十三提供一种扫地机器人地图的传输方法,该方法的执行主体是机器人主体11上的控制主板。具体是机器人主体11将地图传输给通讯模组12的方法,其中,要传输的地图是包含清扫情况信息的,比如前述的第一校准扫地记录图。具体如下文。
将一块地图以数据包的形式发送出去。具体是发送给通讯模组12,以便通讯模组12对地图进行处理和发送给云端2。其中,一块地图是方形地图的,比如正方形或者长方形;更具体的,一块地图是指第一校准扫地记录图中的一部分或者全部,比如,第一个数据包对应的一块地图是第一校准扫地记录图中的一部分,最后一个数据包对应的一块地图是第一校准扫地记录图中的全部。在其他一些实施例中,一块地图是圆形、五边形、六边形、七边形、八边形或者边数大于八的多边形。
在本发明实施例十三中,参考下表一,数据包的内容包括索引、方形地图最小X坐标、方形地图最小Y坐标、行方向坐标数量、清扫情况数据数量、一个或多个清扫情况数据、机器人当前X坐标、机器人当前Y坐标、校验和。参考表一,上述内容分别用一个字节(byte)表示,从byte0至byte_n。上述内容在数据包中的顺序是灵活的,可以按照表一从左往右的顺序,也可以按照其它设定顺序,只要使得通讯模组12能根据接收到的数据包对数据进行解析即可。在其他一些实施例中,将上述的一个或多个清扫情况数据与其它内容形成数据包。
索引或者说index:用于指示当前的数据包序列,其值是0-255,到了255后回到0。索引在数据包中用十六进制数表示。比如,索引0x0表示数据包序列为0。
校验和或者说check_sum:用于校验目的地一组数据项的和,以保证数据的完整性和准确性。
表一数据包的结构
以方形地图为例对数据包的其它内容进行说明。机器人主体11上的控制主板用最大和最小的XY坐标框定一个地图块,然后把整个地图块发送出去。其中,方形地图被划分成多个点,比如被划分成格子,每个点的清扫情况可能为空白区域、走过的点或者障碍物。在下表二中,用“0”表示“空白区域”,用“1”表示“走过的点”,用“2”表示“障碍物”。
表二方形地图的各个坐标点
方形地图最小X坐标或者说左上角X坐标:由于地图是方形的,根据左上角的XY坐标和右下角的XY坐标就可画出一个方形,方形地图最小X坐标是指左上角的X坐标。
方形地图最小Y坐标或者说左上角Y坐标:由于地图是方形的,根据左上角的XY坐标和右下角的XY坐标就可画出一个方形,方形地图最小Y坐标是指左上角的Y坐标。
行方向坐标数量或者说行长:表示X轴方向或者横轴方向或者说扫地机器人直线行走的方向,其中扫地机器人直线行走的方向是相对于扫地机器人的换行方向而言的。
清扫情况数据数量或者说数据长度:表示在该数据包中有多少个清扫情况数据,比如从byte_5到byte_n-3的数据长度,具体的数量可根据实际情况来确定。其中,清扫情况数据数量以byte为单位。
清扫情况数据:表示方形地图中各个坐标点的清扫情况。
机器人当前X坐标或者当前点的X坐标:是指机器人在当前的方形地图中所处的点的X坐标。
机器人当前Y坐标或者当前点的Y坐标:是指机器人在当前的方形地图中所处的点的Y坐标。
对清扫情况数据进行详细说明。
参考表二,沿着X轴方向或者说横轴方向或者说扫地机器人直线行走的方向,从坐标点(65,63)至坐标点(71,63)这7个点的清扫情况都是“走过的点”,其清扫情况是连续的。对于方形地图上清扫情况连续的多个点:用一个二进制数也即第一个二进制数表示多个点的清扫情况,比如用第一个二进制数“10”表示上述7个点是走过的点;用另一个二进制数也即第二个二进制数表示多个点的数量,比如用第二个二进制数“00111”表示有7个点;将第一个二进制数“10”和第二个二进制数“00111”用一个十六进制数也即第一个十六进制数“47”表示;其中,将“10”和“00111”串起来形成二进制数“1000111”,然后将“1000111”转换成十六进制数,从而得到“47”;清扫情况数据包括第一个十六进制数“47”,比如清扫情况数据为“0x47”,其中“0x”是表示该数据为十六进制数的数字前导。
沿Y轴方向或者说纵轴方向或者说扫地机器人换行的方向,表二中的坐标点(72,63)和坐标点(72,64),这两个点的清扫情况是“障碍物”,其清扫情况也是连续的,用二进制数“10”表示这两个点是“障碍物”,用二进制数“000010”表示有2个点,如此,清扫情况数据为“0x82”。
沿着X轴方向,表二中的坐标点(71,64)至坐标点(66,64),其清扫情况也是连续的,清扫情况数据为“0x46”。
如此,用一个十六进制数便可表示多个点的清扫情况,便实现了数据的压缩,减小数据的大小,可加快传输数据的速度和减小数据所占据的存储空间。
参考表二,对于坐标点(65,64)、(65,65)和(66,65),它们的清扫状况依次为“障碍物”、“空白区域”和“走过的点”,其清扫情况是不连续的。对于方形地图上清扫情况不连续的多个点:用一个二进制数也即第三个二进制数表示多个点为清扫情况不连续的,比如用第三个二进制数“11”表示上述3个坐标点的清扫情况不连续;将每个点的清扫状况用一个或多个数位表示,比如用两个bit也即两个数位表示,分别为“10”、“00”和“01”;将表示每一个点的清扫状况的两个数位按照设定的顺序组合成另一个二进制数也即第四个二进制数以对应多个点的清扫情况;设定的顺序是:从高位开始,紧跟着地图左上角的数据,一个个往下排列,比如将“10”、“00”和“01”依次串起来形成第四个二进制数“100001”;将第三个二进制数“11”和第四个二进制数“100001”用一个十六进制数也即第二个十六进制数表示,其中,将“11”和“100001”串起来形成二进制数“11100001”,然后将“11100001”转换成十六进制数,从而得到“e1”;清扫情况数据包括第二个十六进制数“e1”,比如清扫情况数据为“0xe1”。
沿着X轴方向,表二中的坐标点(67,65)至坐标点(69,65)这3个点的清扫情况都是“走过的点”,其清扫情况是连续的,清扫情况数据为“0x43”。
如此,对于表二对应的方形地图,其对应的数据包为:0x0,65,63,0x8,0x5,0x47,0x82,0x46,0xe1,0x43,69,65,checksum。其中,“0x0”为索引,“65”为方形地图最小X坐标,“63”为方形地图最小Y坐标,“0x8”为行方向坐标数量(从65至72共有8个点),“0x5”为清扫情况数据数量(表示有5个清扫情况数据),“0x47,0x82,0x46,0xe1,0x43”为5个清扫情况数据,“69”为机器人当前X坐标(机器人当前所在的X坐标),“65”为机器人当前Y坐标(机器人当前所在的Y坐标),“checksum”为校验和。如此,用13个数据表示了24个点,同时传输了扫地机器人当前所在的坐标。
通讯模组12收到上述数据包之后,根据方形地图最小X坐标“65”、方形地图最小Y坐标“63”、行方向坐标数量“0x8”、机器人当前X坐标“69”和机器人当前Y坐标“65”即可画出一个方形框,并将该方形框划分成24个格子。再根据5个清扫情况数据“0x47,0x82,0x46,0xe1,0x43”标记24个格子的清扫情况;其中,对于坐标点(70,65)、(71,65)和(72,65),沿着扫地机器人直线行走的方向,它们位于扫地机器人当前坐标(69,65)的后面,所以直接标记为空白区域“0”。
根据上述可知,对一块地图上清扫情况连续的多个点或者清扫情况不连续的多个点,用一个十六进制数来表示清扫情况,对数据进行了压缩,减小数据包的大小,可加快传输数据的速度和减小数据所占据的存储空间。而一块地图是方形地图,且数据包的内容还包括方形地图最小X坐标、方形地图最小Y坐标、行方向坐标数量、清扫情况数据数量、清扫情况数据、机器人当前X坐标和机器人当前Y坐标,这样用XY坐标和方形表示地图,使得机器人主体11对地图进行处理所做的运算比较简单,在一个数据包中用较少的数据就可以表示较多个坐标点的清扫情况,进一步压缩了数据包的大小,也便于通讯模组对数据进行还原。
数据包中有个索引,机器人主体11上的控制主板会保存几个历史的索引和对应的数据包或者地图区块。当通讯模组12发现索引不连续时,可以把丢包的索引发给机器人主体11,机器人主体11上的控制主板根据接收到的请求重发那个索引对应的数据包。如此,可以保证数据传输的可靠性。
基于大小减小了的数据包,在其他一些实施例中,后一个数据包中包含前一个数据包中的全部或者部分数据。比如,第二个数据包中包含第一个数据包的全部数据,第三个数据包中包含第二个数据包的全部数据,如此类推,第n个数据包中包含第n-1个数据包的全部数据。又比如,第二个数据包中包含第一个数据包的部分数据,第三个数据包中包含第二个数据包的部分数据,如此类推,第n个数据包中包含第n-1个数据包的部分数据,根据第n个数据包和第n-2个数据包可得到第n-1个数据包的全部数据。这样,由于数据包传输一些历史数据,根据后面的数据包可以得到前面的数据包的数据,偶尔的丢包不重传也不会有问题,即使在较差的网络状况下也能保证地图的传输,提高扫地机器人对网络的适应能力。
数据包中的清扫情况数据是压缩的数据,每个清扫情况数据用一个byte表示,其包括数据类型(type)和数据(data)。参考下表三,每个byte的清扫情况数据包括8个bit,从左边开始,前面两个bit也即bit7和bit6表示数据类型,后面五个bit也即bit5至bit 0表示数据。
数据类型包括空白区域(用“0”表示)、走过的点(用“1”表示)、障碍物(用“2”表示)和不压缩(用“3”表示)。其中,不压缩表示前述清扫情况不连续的多个点。
当数据类型等于“0”或者“1”或者“2”时,也即前述清扫情况连续的多个点,用第一个二进制数比如bit7和bit6表示“0”或者“1”或者“2”。数据类型后面紧跟着的数据(data)为第二个二进制数也即bit5至bit 0表示有多少个清扫情况相同的点,比如“00111”表示有7个清扫情况相同的点。
当数据类型等于“3”时,也即前述扫情况不连续的多个点,用第三个二进制数比如bit7和bit6表示“3”。数据类型后面紧跟着的数据(data)为第四个二进制数也即bit5至bit0,是原始二进制数据,每个格点占据两个bit,从高位开始,紧跟着左上角的数据,一个个往下排列,比如分别用“10”、“00”和“01”表示“2”、“0”和“1”这三个清扫情况不连续的坐标点。
用一个三以上进制的数表示数据类型(type)和数据(data),从而得到压缩后的清扫情况数据。
表三清扫情况数据的结构
bit7~bit 6 |
bit5~bit 0 |
type |
data |
本发明实施例十三还可以有一些变型的形式,比如:
在其他一些实施例中,十六进制数还可以用四进制数、八进制数、十进制数、三十二进制数等三以上进制的数代替,也能实现对数据大小的压缩。其中,采用十六进制数比较方便。
在其他一些实施例中,该方法的执行主体是通讯模组12。
本领域技术人员将认识到,对以上描述做出众多变通是可能的,比如终端也可以是PC端,等等;所以实施例仅是用来描述一个或多个特定实施方式。
本发明各个步骤的顺序是灵活的,各个步骤顺序的变化所形成的实施方式均属于本发明的保护范围。本发明还可以适用于其它类型的扫地机器人,比如利用激光导航的扫地机器人,本发明不以此为限。
尽管已经描述和叙述了被看作本发明的示范实施例,本领域技术人员将会明白,可以对其作出各种改变和替换,而不会脱离本发明的精神。另外,可以做出许多修改以将特定情况适配到本发明的教义,而不会脱离在此描述的本发明中心概念。所以,本发明不受限于在此披露的特定实施例,但本发明可能还包括属于本发明范围的所有实施例及其等同物。