具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。另外,虽然在装置示意图中进行了功能模块的划分,但是在某些情况下,可以以不同于装置示意图中的模块划分。
本申请实施例提供一种障碍物探索方法、清洁机器人及存储介质。其中,该方法应用于清洁机器人,该清洁机器人可以为扫地机,还可以其他智能机器人,在此不做限制。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参照图1,图1为本申请实施例提供的一种障碍物探索方法的步骤流程示意图。
如图1所示,该障碍物探索方法包括步骤S10至步骤S12。
步骤S10、当所述清洁机器人在移动过程中检测到未知障碍物时,控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索,得到第一边缘信息。
可以理解,障碍物的类型有很多种,示例性的,可以包括已知障碍物以及未知障碍物。
在一些实施方式中,清洁机器人在执行导航任务或者执行清洁任务之前,会根据预构建好的清洁地图去规划导航路线或者清洁路线,并根据导航路线或者清洁路线进行移动,以执行导航任务或者清洁任务。其中,清洁机器人在根据清洁地图规划路线时,会避开清洁地图中已标记的障碍物。因此,若清洁机器人在移动过程中检测到障碍物,则该障碍物为清洁地图中未标记的障碍物,也即未知障碍物;相应的,清洁地图中已标记的障碍物即为已知障碍物。
在一些实施方式中,清洁机器人安装有碰撞传感器以及雷达,未知障碍物还可以为碰撞传感器能检测到,但是雷达检测不到的障碍物;相应的,已知障碍物则为雷达能检测到的障碍物。
在一些实施方式中,清洁机器人安装有悬崖传感器以及雷达,未知障碍物还可以为悬崖传感器能检测到,但是雷达检测不到的障碍物;相应的,已知障碍物则为雷达能检测到的障碍物。
当然,清洁机器人还可以安装有其他预设传感器以及雷达,其中,预设传感器包括但不限定于超声波传感器以及沿边传感器,未知障碍物还可以为预设传感器能检测到,但是雷达检测不到的障碍物;相应的,已知障碍物则为雷达能检测到的障碍物。
另外,未知障碍物还可以为如地毯、玻璃分隔板等其他类型的清洁机器人尚未确定边缘信息的障碍物,在此不做限制;相应的,已知障碍物的类型也可以为其他类型,在此不做限制。
当清洁机器人在移动过程中检测到未知障碍物时,控制清洁机器人对未知障碍物进行第一沿边探索。在第一沿边探索的过程中,清洁机器人以第一侧面靠近未知障碍物的边缘往前移动进行探索,其中,第一侧面可以为清洁机器人的在前进方向上的左边侧面或右边侧面,在此不做限制。在第一沿边探索的过程中探索得到的未知障碍物的边缘信息,即为第一边缘信息。
在一些实施方式中,所述当所述清洁机器人在移动过程中检测到未知障碍物时,控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索,包括:
获取所述清洁机器人的起始位置以及初始移动方向,其中,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置,所述初始移动方向为所述清洁机器人第一次检测到所述未知障碍物时的移动方向;
根据所述起始位置获取所述未知障碍物的边缘切线,并根据所述边缘切线确定第一方向与第二方向;
计算所述第一方向与所述初始移动方向之间的夹角作为第一夹角,并计算所述第二方向与所述初始移动方向之间的夹角作为第二夹角;
若所述第一夹角小于所述第二夹角,则确定所述第一方向为目标方向,否则,则确定所述第二方向为所述目标方向;
确定所述清洁机器人以所述目标方向为前进方向时靠近所述未知障碍物的侧面为第一侧面,控制所述清洁机器人以所述第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索。
请参照图2,图2为本申请实施例提供的一种清洁机器人在移动过程中检测到未知障碍物时确定第一侧面的场景示意图。
如图2所示,当清洁机器人1在移动过程中检测到未知障碍物2时,获取清洁机器人1此时的位置作为起始位置3,并获取清洁机器人1在检测到未知障碍物2之前的移动方向作为初始移动方向w0。
此时,获取未知障碍物2在对应起始位置3的边缘切线,根据边缘切线可以确定两个方向,分别为第一方向w1以及第二方向w2。其中,第一方向w1与初始移动方向w0的夹角为第一夹角a1,第二方向w2与初始移动方向w0的夹角为第二夹角a2。
可以理解,在图2中,第一夹角a1小于第二夹角a2,因此选取第一方向w1为目标方向,控制清洁机器人1旋转到以目标方向作为前进方向之后,清洁机器人1靠近未知障碍物2的右边侧面即为第一侧面。控制清洁机器人1以第一侧面靠近未知障碍物2并沿未知障碍物2的边缘进行第一沿边探索。
相应的,如果第一夹角a1大于第二夹角a2,则选取第二方向a2作为目标方向,控制清洁机器人1旋转到以目标方向作为前进方向之后,清洁机器人1靠近未知障碍物2的左边侧面即为第一侧面。
在本实施方式中,选取与初始移动方向w0之间夹角小的方向作为目标方向,可以减少清洁机器人调整前进方向的旋转角度以及旋转时间。如清洁机器在执行导航任务,选取与初始移动方向w0之间夹角小的方向作为目标方向,还可以提高导航的效率。
在一些实施方式中,所述当所述清洁机器人在移动过程中检测到未知障碍物时,控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索,包括:
获取所述清洁机器人的起始位置,其中,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
根据所述起始位置获取所述未知障碍物的边缘切线,并根据所述边缘切线确定第一方向与第二方向;
计算所述清洁机器人在所述第一方向上的预设距离范围内的障碍物遮挡率作为第一遮挡率,并计算所述清洁机器人在所述第二方向上的预设距离范围内的障碍物遮挡率作为第二遮挡率;
若所述第一遮挡率小于所述第二遮挡率,则确定所述第一方向为目标方向,否则,则确定所述第二方向为所述目标方向;
确定所述清洁机器人以所述目标方向为前进方向时靠近所述未知障碍物的侧面为第一侧面,控制所述清洁机器人以所述第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索。
障碍物遮挡率,可以通过障碍物的数量或者体积来确定,在一定的区域范围内,障碍物的体积越大,或者数量越多,则障碍物遮挡率越大。示例性的,假设区域范围为2平方米,假设区域范围内包括障碍物1以及障碍物2,其中,障碍物1以及障碍物2在区域范围内的面积之和为1.5平方米,则该区域范围内的障碍物遮挡率为75%。
在清洁机器人1的第一方向上的预设距离范围内的障碍物的遮挡率,即为第一遮挡率;相应的,在清洁机器人1的第二方向上的预设距离范围内的障碍物的遮挡率,即为第二遮挡率。另外,本实施方式中的用于计算遮挡率的障碍物,为除未知障碍物2之外的其他障碍物。
在一些实施方式中,预设距离范围可以设置为50cm、80cm或者100cm,预设距离范围还可以根据情况需要设置为其他数值,在此不做限制。
在一些实施方式中,确定起始位置3、第一方向w1以及第二方向w2后,清洁机器人1可以通过预构建好的清洁地图来确定第一数量以及第二数量;或者,清洁机器人1可以通过摄像头获取在第一方向w1以及第二方向w2的图片,并根据图片识别确定第一数量以及第二数量。另外,清洁机器人1还可以通过其他方式来确定第一数量以及第二数量,在此不做限制。
在本实施方式中,让清洁机器人1选取障碍物遮挡率小的方向作为目标方向来对未知障碍物2进行第一沿边探索,可以尽可能的降低清洁机器人1在第一沿边探索的过程中遇到除未知障碍物2之外的其他障碍物的几率。
示例性的,请参照图3,图3为本申请实施例提供的另一种清洁机器人在移动过程中检测到未知障碍物时确定第一侧面的场景示意图。
如图3所示,在清洁机器人1的第一方向w1上的预设距离范围内存在3个障碍物,而在清洁机器人1的第二方向w2上的预设距离范围内存在2个障碍物,此时,第一遮挡率大于第二遮挡率,确定第二方向w2为目标方向,控制清洁机器人1旋转到与目标方向作为前进方向之后,清洁机器人1靠近未知障碍物2的左边侧面即为第一侧面。控制清洁机器人1以第一侧面靠近未知障碍物2并沿未知障碍物的边缘进行第一沿边探索。
步骤S11、当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,得到第二边缘信息。
可以理解,第二侧面为清洁机器人1与第一侧面相对的另一个侧面。示例性的,假设第一侧面为清洁机器人1的右边侧面,则第二侧面为清洁机器人1的左边侧面。
当清洁机器人1在第一沿边探索的过程中检测到预设障碍物时,即控制清洁机器人1进行旋转以调整前进方向,并以第二侧面靠近未知障碍物2沿未知障碍物2的边缘进行第二沿边探索,以获取未知障碍物2在另一个方向上的边缘信息。清洁机器人1在第二沿边探索过程中探索到的未知障碍物2的边缘信息,即为第二边缘信息。
本实施例中,预设障碍物为预先设定好的障碍物。可以包括一种或多种类型的障碍物。
在一些实施方式中,所述预设障碍物包括已知障碍物或特定障碍物。
其中,已知障碍物在前文中已有说明,在此不做过多赘述。在一些实施方式中,特定障碍物可以为如墙体之类的用于划定清洁区域边界的障碍物,以下以特定障碍物为墙体进行说明,当清洁机器人在对未知障碍物进行第一沿边探索的过程中检测到墙体时,如仍以第一侧面靠近墙体往前移动,则清洁机器人可能需要沿墙面绕行一周才能回到未知障碍物的另一侧边缘,以对未知障碍物的边缘继续进行探索,这种探索方式过于耗费时间,而本实施方式中,当清洁机器人在对未知障碍物进行第一沿边探索的过程中检测到特定障碍物时,以第二侧面靠近未知障碍物以对未知障碍物进行第二沿边探索,则可以提高清洁机器人对未知障碍物的边缘的探索效率。另外,特定障碍物还可以为其他特定类型的障碍物,在此不做限制。
在一些实施方式中,所述当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,包括:
获取所述清洁机器人的起始位置,其中,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人返回所述起始位置;
在所述清洁机器人返回到所述起始位置之后,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索。
本实施例中,当清洁机器人1在第一沿边探索的过程中检测到预设障碍物时,清洁机器人1对未知障碍物2的从起始位置3到预设障碍物之间的第一边缘信息已探索完成。
此时,控制清洁机器人1先返回起始位置3,再以第二侧面靠近未知障碍物2并沿未知障碍物2的边缘进行第二沿边探索,可以节省清洁机器人1对未知障碍物2进行第二沿边探索的时间,提高清洁机器人1对未知障碍物2的沿边探索效率。
需要说明的是,当清洁机器人1与起始位置3的距离小于预设距离阀值时,也可判定清洁机器人1回到起始位置3。
在一些实施方式中,所述控制所述清洁机器人返回所述起始位置,包括:
获取所述清洁机器人在所述第一沿边探索过程中的移动轨迹,并控制所述清洁机器人根据所述移动轨迹返回所述起始位置;
或,控制所述清洁机器人导航返回到所述起始位置。
在一些实施方式中,控制清洁机器人1返回起始位置3的方式有很多种,比如,可以原路返回或者导航返回。
其中,当采用原路返回的方式回到起始位置3时,清洁机器人1在获取在第一沿边探索过程中的移动轨迹后,根据移动轨迹返回起始位置3。如果以原路返回的方式返回到起始位置3,可以避免清洁机器人1在返回的过程中再次遇到其他障碍物。
当采用导航返回的方式回到其实位置3时,清洁机器人1则以当前位置为起点,并以起始位置3为终点规划导航路线,并根据导航路线返回起始位置3。如果采用导航返回的方式返回起始位置3,可以缩短清洁机器人1返回到起始位置3的时间。
请参照图4,图4为本申请实施例提供的一种清洁机器人通过导航返回起始位置的场景示意图。
如图4所示,清洁机器人1在对未知障碍物2进行第一沿边探索的过程中,检测到了预设障碍物4,可以理解,两点之间的直线距离最短,此时,清洁机器人1通过导航返回的方式回到起始位置3,比通过原路返回的方式回到起始位置3的距离更短,可以节省清洁机器人1回到起始位置3的时间。
步骤S12、根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息。
本实施例中,当清洁机器人1在移动过程中检测到未知障碍物2时,控制清洁机器人1以第一侧面靠近未知障碍物2并沿未知障碍物2的边缘进行第一沿边探索,清洁机器人1在对未知障碍物2进行第一沿边探索的过程中,可以确定未知障碍物2的第一边缘信息,若清洁机器人1对未知障碍物2进行第一沿边探索的过程中没有遇到预设障碍物,则清洁机器人1沿未知障碍物2绕行一周再次回到起始位置后,根据第一边缘信息即可获取未知障碍物2的变越信息。
若清洁机器人1在第一沿边探索的过程中检测到预设障碍物时,控制清洁机器人以第二侧面靠近未知障碍物并沿未知障碍物的边缘进行第二沿边探索,以确定未知障碍物2的第二边缘信息,在第二沿边探索完成时,通过第一边缘信息以及第二边缘信息即可获取未知障碍物2的边缘信息。通过本实施方式所提供的技术方案,不仅可以提高清洁机器人1能获取到未知障碍物2的边缘信息的完整度,还能提高清洁机器人1对未知障碍物2进行沿边探索的效率,缩短清洁机器人1对未知障碍物2的沿边探索时间。
另外,清洁机器人1存在不对未知障碍物2进行第二沿边探索的情况,示例性的,清洁机器人1如果在对未知障碍物2进行第一沿边探索的过程中没有检测到预设障碍物4,则不会对未知障碍物2进行第二沿边探索,此时,则通过第一边缘信息来获取未知障碍物2的边缘信息。
在一些实施方式中,所述控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索之后,所述方法还包括:
获取所述清洁机器人的当前执行任务,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务;
当所述当前执行任务为导航任务时,获取所述导航任务对应的目标导航终点;
获取所述清洁机器人的当前位置,并确定所述当前位置到所述目标导航终点的方向为第三方向,且确定所述清洁机器人的沿边探索方向为第四方向;
计算所述第三方向与所述第四方向之间的夹角,当所述夹角小于或等于预设夹角时,所述清洁机器人对所述未知障碍物的沿边探索完成;
控制所述清洁机器人继续执行所述导航任务。
如果清洁机器人1在第一次检测到未知障碍物2时正在执行导航任务,则导航任务的导航目的地即为目标导航终点。
清洁机器人1在对未知障碍物2进行第一沿边探索或者第二沿边探索的过程中,会周期性的计算第三方向与第四方向之间的夹角,以根据夹角判断是否终止沿边探索并继续执行导航任务。在一些实施方式中,预设夹角可以设置为15°、20°或者30°,另外,预设夹角还可以根据情况需要设置为其他角度,在此不做限制。
清洁机器人1在执行导航任务的过程中,如果检测到未知障碍物2,则未知障碍物2挡住了清洁机器人1的前进路线。此时,清洁机器人1因为不清楚未知障碍物2的轮廓而难以设计出绕行路线。
本实施方式中,清洁机器人1在对未知障碍物进行沿边探索的过程中,如果检测到第三方向与第四方向之间的夹角小于或等于预设夹角,则停止对未知障碍物2的沿边探索,并沿第三方向继续执行导航任务,可以让清洁机器人1更快的到达目标导航终点以执行其他任务。
请参照图5,图5为本申请实施例提供的一种清洁机器人停止沿边探索,并继续执行所述导航任务的场景示意图。
如图5所示,清洁机器人1在对未知障碍物2执行第二沿边探索的过程中,计算到第三方向w3与第四方向w4的夹角a3小于或等于预设夹角,则停止对未知障碍物2的沿边探索,并以第三方向w3继续执行导航任务以移动到目标导航终点5。
在一些实施方式中,所述控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索之后,所述方法还包括:
获取所述清洁机器人的当前执行任务以及起始位置,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
当所述当前执行任务为清洁任务时,监测所述清洁机器人是否再次到达所述起始位置;
当监测到所述清洁机器人在所述第一沿边探索的过程中再次到达所述起始位置时,所述第一沿边探索完成;
所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息,包括:
根据所述第一边缘信息获取所述未知障碍物的边缘信息。
如果清洁机器人1在第一次检测到未知障碍物2时正在执行清洁任务,则可以推断清洁机器人1当前正在对起始位置3附近的区域进行清洁。对未知障碍物2进行沿边探索,以确定未知障碍物2的轮廓,可以让清洁机器人1更好的规划并调整清洁轨迹。
请参照图6,图6为本申请实施例提供的一种清洁机器人对未知障碍物的边缘进行沿边探索的场景示意图。
如图6所示,清洁机器人1在对未知障碍物2进行第一沿边探索的过程中,如果清洁机器人1再次回到起始位置3,则说明清洁机器人1已经绕着未知障碍物2的边缘探索了一圈。此时,清洁机器人1对未知障碍物2的第一沿边探索完成,并且已无需控制清洁机器人1对未知障碍物2进行第二沿边探索。因为,根据第一边缘信息即可获取未知障碍物2的边缘信息。
在一些实施方式中,所述当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,得到第二边缘信息,包括:
获取所述清洁机器人的当前执行任务,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务;
当所述当前执行任务为清洁任务时,监测所述清洁机器人是否检测到预设障碍物;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,所述第一沿边探索完成;
控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,直至所述清洁机器人再次检测到预设障碍物;
当所述清洁机器人再次检测到预设障碍物时,所述第二沿边探索完成;
所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息,包括:
根据所述第一边缘信息以及所述第二边缘信息获取所述未知障碍物的边缘信息。
触发清洁机器人1停止对未知障碍物2进行第一沿边探索的预设障碍物,与触发清洁机器人1停止对未知障碍物2进行第二沿边探索的预设障碍物,可以为同一个障碍物,也可以为不同的障碍物,在此不做限制。
其中,清洁机器人1对未知障碍物2的边缘进行第二沿边探索的时机,可以为在第一沿边探索的过程中检测到预设障碍物4后立即对未知障碍物2进行第二沿边探索;也可以为在第一沿边探索的过程中检测到预设障碍物4时,先控制清洁机器人1返回到起始位置3后,再对未知障碍物2进行第二沿边探索。具体的第二沿边探索时机在此不做限制。
请参照图7,图7为本申请实施例提供的另一种清洁机器人对未知障碍物的边缘进行沿边探索的场景示意图。
如图7所示,当清洁机器人1在对未知障碍物2进行第一沿边探索的过程中检测到预设障碍物4时,第一沿边探索完成;控制清洁机器人1返回到起始位置3后,控制清洁机器人1以第二侧面靠近未知障碍物2并沿未知障碍物2的边缘进行第二沿边探索,当清洁机器人1在对未知障碍物2进行第二沿边探索的过程中检测到预设障碍物4时,第二沿边探索完成。此时,根据第一边缘信息以及第二边缘信息即可获取未知障碍物2的边缘信息。
在一些实施方式中,所述当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,包括:
获取所述清洁机器人的当前执行任务以及起始位置,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
当所述当前执行任务为清洁任务时,监测所述清洁机器人是否检测到预设障碍物,并监测所述清洁机器人是否再次到达所述起始位置;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,所述第一沿边探索完成;
控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索;
当所述清洁机器人在所述第二沿边探索的过程中再次到达所述起始位置时,所述第二沿边探索完成;
所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息,包括:
根据所述第一边缘信息以及所述第二边缘信息获取所述未知障碍物的边缘信息;
或,根据所述第二边缘信息获取所述未知障碍物的边缘信息。
由于障碍物的位置并不是一成不变的,用户可以根据自己的情况需要移动障碍物,因此,清洁机器人1的工作环境是动态的。
因此,存在这样一种场景,当清洁机器人1在对未知障碍物2进行第一沿边探索的过程中检测到预设障碍物4后,对预设障碍物4进行第二沿边探索的过程中,用户可能将预设障碍物4移开了,在这种情况下,清洁机器人1在对未知障碍物2进行第二沿边探索的过程中可以再次回到起始位置3。
如果清洁机器人1在对未知障碍物2进行第二沿边探索的过程中再次回到起始位置3,则说明清洁机器人1在第二沿边探索的过程中已经绕未知障碍物2的边缘绕行了一圈。此时,利用第二边缘信息即可获取未知障碍物2的边缘信息,当然,结合第一边缘信息以及第二边缘信息可以获取到未知障碍物2更准确的边缘信息。
在一些实施方式中,所述边缘信息包括所述未知障碍物的轮廓点信息,所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息之后,所述方法还包括:
根据所述轮廓点信息确定所述未知障碍物的轮廓。
未知障碍物2的边缘信息包括未知障碍物2的轮廓点信息,清洁机器人1获取到未知障碍物2的轮廓点信息之后,即可根据轮廓点信息确定未知障碍物2的轮廓。
请参照图8,图8为本申请实施例提供的一种清洁机器人根据轮廓点信息确定未知障碍物的轮廓的场景示意图。
如图8所示,清洁机器人1在对未知障碍物2进行沿边探索后,确定了多个轮廓点信息,连接各个轮廓点信息,即得到了未知障碍物2的轮廓。
请参照图9,图9为本申请实施例提供的一种对未知障碍物的轮廓进行拟合处理的场景示意图。
如图9所示,对根据轮廓点信息确定的未知障碍物2的轮廓进行拟合以后,更新未知障碍物2的轮廓为矩形。
未知障碍物通常为规则形状,在一些实施方式中,清洁机器人1在连接各个轮廓点信息后,得到第一图形,并通过计算包围第一图形的最小多边形与第一图形的匹配程度,来确定未知障碍物2的轮廓。
示例性的,当清洁机器人1计算到包围第一图形的最小矩形与第一图形的匹配度为98%,而计算到包围第一图形的最小梯形与第一图像的匹配度为60%,则确定最小矩形为未知障碍物2的轮廓。
在一些实施方式中,所述根据所述轮廓点信息确定所述未知障碍物的轮廓之后,所述方法还包括:
控制所述清洁机器人根据所述轮廓对所述未知障碍物进行沿边清洁。
在清洁机器人1对未知障碍物2进行沿边探索的过程中不去对未知障碍物2进行沿边清洁,而是在清洁机器人1确定了未知障碍物2的轮廓之后,再去根据未知障碍物2的轮廓规划清洁路径,以对未知障碍物2进行沿边清洁,不仅可以提高清洁机器人1对未知障碍物2的沿边探索效率,还能提高清洁机器人1对未知障碍物2的沿边清洁效果。
在一些实施方式中,所述控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索之后,所述方法还包括:
控制所述清洁机器人在所述第一沿边探索的过程中对所述未知障碍物进行沿边清洁;
和/或,控制所述清洁机器人在所述第二沿边探索的过程中对所述未知障碍物进行沿边清洁。
可以理解,控制清洁机器人1在对未知障碍物2进行沿边探索的过程中对未知障碍物2进行沿边清洁,则清洁机器人1在对未知障碍物2的沿边探索完成的同时,清洁机器人1对未知障碍物2的沿边清洁也已完成。此时,清洁机器人1可以继续执行在第一次检测到未知障碍物时正在执行的任务。
本申请中,当清洁机器人在移动过程中检测到未知障碍物时,控制清洁机器人以第一侧面靠近未知障碍物并沿未知障碍物的边缘进行第一沿边探索,得到第一边缘信息;当清洁机器人在第一沿边探索的过程中检测到预设障碍物时,控制清洁机器人以第二侧面靠近未知障碍物并沿未知障碍物的边缘进行第二沿边探索,得到第二边缘信息;根据第一边缘信息和第二边缘信息中的至少一者获取未知障碍物的边缘信息。通过本申请所提供的技术方案,实现了在清洁机器人检测到未知障碍物时,控制清洁机器人对未知障碍物进行探索。
请参阅图10,图10为本申请实施例提供的一种清洁机器人的结构示意性框图。该清洁机器人包括但不限定于扫地机。
如图10所示,该清洁机器人1包括通过系统总线连接的处理器101、存储器和网络接口,其中,存储器可以包括存储介质102和内存储器105,存储介质102可以是非易失性的,也可以是易失性的。
存储介质102可存储操作系统103和计算机程序104。该计算机程序104包括程序指令,该程序指令被执行时,可使得处理器101执行任意一种障碍物探索方法。
处理器101用于提供计算和控制能力,支撑整个清洁机器人的运行。
内存储器105为存储介质102中的计算机程序104的运行提供环境,该计算机程序104被处理器101执行时,可使得处理器101执行任意一种障碍物探索方法。
该网络接口用于进行网络通信,如发送或者获取分配的任务等。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的清洁机器人的限定,具体的清洁机器人可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解的是,处理器101可以是中央处理单元(Central Processing Unit,CPU),该处理器101还可以是其他通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
其中,在一些实施方式中,所述处理器101用于运行存储在存储器中的计算机程序104,以实现如下步骤:
当所述清洁机器人检测到未知障碍物时,获取所述清洁机器人的状态信息,并根据所述状态信息确定沿边探索模式,其中,所述沿边探索模式包括内沿边探索模式以及外沿边探索模式;
根据所述沿边探索模式对所述未知障碍物进行沿边探索,以获取所述未知障碍物的边缘信息。
在一些实施方式中,所述处理器101在获取所述清洁机器人的状态信息,并根据所述状态信息确定沿边探索模式时,用于实现:
当所述清洁机器人在移动过程中检测到未知障碍物时,控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索,得到第一边缘信息;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,得到第二边缘信息;
根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息。
在一些实施方式中,所述处理器101在当所述清洁机器人在移动过程中检测到未知障碍物时,控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索时,用于实现:
获取所述清洁机器人的起始位置以及初始移动方向,其中,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置,所述初始移动方向为所述清洁机器人第一次检测到所述未知障碍物时的移动方向;
根据所述起始位置获取所述未知障碍物的边缘切线,并根据所述边缘切线确定第一方向与第二方向;
计算所述第一方向与所述初始移动方向之间的夹角作为第一夹角,并计算所述第二方向与所述初始移动方向之间的夹角作为第二夹角;
若所述第一夹角小于所述第二夹角,则确定所述第一方向为目标方向,否则,则确定所述第二方向为所述目标方向;
确定所述清洁机器人以所述目标方向为前进方向时靠近所述未知障碍物的侧面为第一侧面,控制所述清洁机器人以所述第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索。
在一些实施方式中,所述处理器101在当所述清洁机器人在移动过程中检测到未知障碍物时,控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索,用于实现:
获取所述清洁机器人的起始位置,其中,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
根据所述起始位置获取所述未知障碍物的边缘切线,并根据所述边缘切线确定第一方向与第二方向;
计算所述清洁机器人在所述第一方向上的预设距离范围内的障碍物遮挡率作为第一遮挡率,并计算所述清洁机器人在所述第二方向上的预设距离范围内的障碍物遮挡率作为第二遮挡率;
若所述第一遮挡率小于所述第二遮挡率,则确定所述第一方向为目标方向,否则,则确定所述第二方向为所述目标方向;
确定所述清洁机器人以所述目标方向为前进方向时靠近所述未知障碍物的侧面为第一侧面,控制所述清洁机器人以所述第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索。
在一些实施方式中,所述预设障碍物包括已知障碍物或特定障碍物。
在一些实施方式中,所述处理器101在当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,用于实现:
获取所述清洁机器人的起始位置,其中,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人返回所述起始位置;
在所述清洁机器人返回到所述起始位置之后,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索。
在一些实施方式中,所述处理器101在控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索之后,还用于实现:
获取所述清洁机器人的当前执行任务,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务;
当所述当前执行任务为导航任务时,获取所述导航任务对应的目标导航终点;
获取所述清洁机器人的当前位置,并确定所述当前位置到所述目标导航终点的方向为第三方向,且确定所述清洁机器人的沿边探索方向为第四方向;
计算所述第三方向与所述第四方向之间的夹角,当所述夹角小于或等于预设夹角时,所述清洁机器人对所述未知障碍物的沿边探索完成;
控制所述清洁机器人继续执行所述导航任务。
在一些实施方式中,所述处理器101在控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索之后,还用于实现:
获取所述清洁机器人的当前执行任务以及起始位置,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
当所述当前执行任务为清洁任务时,监测所述清洁机器人是否再次到达所述起始位置;
当监测到所述清洁机器人在所述第一沿边探索的过程中再次到达所述起始位置时,所述第一沿边探索完成;
所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息,包括:
根据所述第一边缘信息获取所述未知障碍物的边缘信息。
在一些实施方式中,所述处理器101在当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,得到第二边缘信息时,用于实现:
获取所述清洁机器人的当前执行任务,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务;
当所述当前执行任务为清洁任务时,监测所述清洁机器人是否检测到预设障碍物;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,所述第一沿边探索完成;
控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索,直至所述清洁机器人再次检测到预设障碍物;
当所述清洁机器人再次检测到预设障碍物时,所述第二沿边探索完成;
所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息,包括:
根据所述第一边缘信息以及所述第二边缘信息获取所述未知障碍物的边缘信息。
在一些实施方式中,所述处理器101在当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索时,用于实现:
获取所述清洁机器人的当前执行任务以及起始位置,其中,所述当前执行任务为所述清洁机器人第一次检测到所述未知障碍物时正在执行的任务,所述起始位置为所述清洁机器人第一次检测到所述未知障碍物时所处的位置;
当所述当前执行任务为清洁任务时,监测所述清洁机器人是否检测到预设障碍物,并监测所述清洁机器人是否再次到达所述起始位置;
当所述清洁机器人在所述第一沿边探索的过程中检测到预设障碍物时,所述第一沿边探索完成;
控制所述清洁机器人以第二侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第二沿边探索;
当所述清洁机器人在所述第二沿边探索的过程中再次到达所述起始位置时,所述第二沿边探索完成;
所述根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息,包括:
根据所述第一边缘信息以及所述第二边缘信息获取所述未知障碍物的边缘信息;
或,根据所述第二边缘信息获取所述未知障碍物的边缘信息。
在一些实施方式中,所述处理器101在控制所述清洁机器人返回所述起始位置时,用于实现:
获取所述清洁机器人在所述第一沿边探索过程中的移动轨迹,并控制所述清洁机器人根据所述移动轨迹返回所述起始位置;
或,控制所述清洁机器人导航返回到所述起始位置。
在一些实施方式中,所述边缘信息包括所述未知障碍物的轮廓点信息,所述处理器101在根据所述第一边缘信息和所述第二边缘信息中的至少一者获取所述未知障碍物的边缘信息之后,还用于实现:
根据所述轮廓点信息确定所述未知障碍物的轮廓。
在一些实施方式中,所述处理器101在根据所述轮廓点信息确定所述未知障碍物的轮廓之后,还用于实现:
控制所述清洁机器人根据所述轮廓对所述未知障碍物进行沿边清洁。
在一些实施方式中,所述处理器101在控制所述清洁机器人以第一侧面靠近所述未知障碍物并沿所述未知障碍物的边缘进行第一沿边探索之后,还用于实现:
控制所述清洁机器人在所述第一沿边探索的过程中对所述未知障碍物进行沿边清洁;
和/或,控制所述清洁机器人在所述第二沿边探索的过程中对所述未知障碍物进行沿边清洁。
需要说明的是,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述清洁机器人的具体工作过程,可以参考前述障碍物探索方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供一种存储介质,该存储介质为计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序中包括程序指令,所述程序指令被执行时所实现的方法可参照本申请障碍物探索方法的各个实施例。
其中,所述计算机可读存储介质可以是前述实施例所述的清洁机器人的内部存储单元,例如所述清洁机器人的硬盘或内存。所述计算机可读存储介质也可以是所述清洁机器人的外部存储设备,例如所述清洁机器人上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。
应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。