具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例提供了一种拖地机器人的控制可以应用于具有地面清洁功能的机器人上,本申请实施例对机器人的具体类型不作任何限制。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请所述的技术方案,下面通过具体实施例来进行说明。
参见图1,是本申请实施例一提供的一种拖地机器人的控制方法的流程,该控制方法可应用于具有地面清洁功能的拖地机器人,如图1所示,该控制方法可以包括以下步骤:
步骤S101,获取拖地机器人在第一位置时的第一前进方向和第一距离。
其中,拖地机器人以该方法开始运行时的位置作为第一位置,拖地机器人也可以根据获取的实际待清扫环境来确定第一距离和第一前进方向。
步骤S102,控制拖地机器人从第一位置沿第一前进方向移动第一距离至第二位置。
其中,拖地机器人沿着第一前进方向前进第一距离,即达到第二位置,第二位置与第一位置间隔第一距离,第二位置与第一位置连接的线段所在直线与第一前进方向所在直线平行。
步骤S103,控制拖地机器人按照第一预设路径从第二位置向第一预设方向移动至第三位置。
其中,第一预设路径可以是指预先设置的具有方向、线型、长度的移动路线,例如,线型为直线形、弧线形或折线形;第一预设路径的横向移动距离为第二距离,第一预设路径的纵向移动距离为第三距离。
第一预设方向为右前方或左前方,此处的右前方或左前方是以第一前进方向为前方作为参考,拖地机器人以第一前进方向前进至第二位置后再向右前方或者左前方移动,第三位置与第二位置的横向移动距离为第二距离,第三位置与第二位置的纵向移动距离为第三距离。
步骤S104,控制拖地机器人按照第一预设路径从第三位置返回第二位置后,将第二位置作为第一位置。
其中,在拖地机器人达到第三位置后,控制拖地机器人沿第二位置到第三位置的路径(第一预设路径)返回第二位置,为了对该第一前进方向上的区域继续进行清扫,在返回第二位置之后将第二位置作为第一位置。
步骤S105,判断拖地机器人沿第一前进方向移动是否遇到障碍物。
拖地机器人沿第一前进方向移动遇到障碍物,若障碍物为第一障碍物,则可以认为在第一前进方向上的区域拖地完成即拖地机器人移动至第一前进方向所在当前行末或列末,不需要再对该第一前进方向做清洁,即第一障碍物为行末或列末存在的障碍物,例如,第一障碍物为墙壁、靠墙物体等,当拖地机器人沿第一前进方向移动遇到墙壁时即移动至当前行末或列末;若障碍物为第二障碍物,第二障碍物为拖地机器人移动的行中或列中存在的障碍物,则可以认为在第一前进方向上的区域拖地完成,或者需要绕过第二障碍物继续对第一前进方向进行清洁,又或者对第二障碍物进行沿边清洁直至沿边运动闭合后认为在第一前进方向上的区域拖地完成,例如,第二障碍物为桌子、椅子、拖鞋等等;若拖地机器人沿第一前进方向移动未遇到障碍物,则可以在第一前进方向上继续前进,返回执行步骤S102,并重复步骤S102至S105。
如图2所示,是本申请实施例一提供的拖地机器人的路径示意图,拖地机器人从第一位置1向上移动第一距离至第二位置2,从第二位置2按照第一预设路径4向右前方移动至第三位置3,即第三位置3在第二位置2的右前方,随后,从第三位置3沿第一预设路径的反向路径5(图2中虚线所示)返回第二位置2,将第二位置2作为第一位置1并返回执行从第一位置1向上移动第一距离至第二位置2的步骤。
可选的是,该控制方法还包括:
检测所述拖地机器人在前进过程中是否遇到动态障碍物;
若所述拖地机器人在前进过程中遇到动态障碍物,待动态障碍物离开之后再继续前进。
其中,动态障碍物为挡住拖地机器人前进路径后在预设时间内移动的物体,即拖地机器人在遇到障碍物后,在预设时间内障碍物移动,不再阻挡拖地机器人运动。
本申请通过控制拖地机器人向第一前进方向移动,并每隔第一距离按照第一预设路径向外做延伸移动,在达到既定位置后沿该第一预设路径返回,拖地路径较为整洁,不会因为拖地路径杂乱导致出现遗漏的情况,能够较好的覆盖待清洁区域,提高了拖地覆盖率。
参见图3,是本申请实施例二提供的拖地机器人的控制方法的流程,该控制方法可应用于具有地面清洁功能的拖地机器人,如图3所示,该控制方法可以包括以下步骤:
步骤S301,获取拖地机器人在第一位置时的第一前进方向和第一距离。
步骤S302,控制拖地机器人从第一位置沿第一前进方向移动第一距离至第二位置。
步骤S303,控制拖地机器人按照第一预设路径从第二位置向第一预设方向移动至第三位置。
步骤S304,控制拖地机器人按照第一预设路径从第三位置返回第二位置后,将第二位置作为第一位置。
步骤S305,判断拖地机器人沿第一前进方向移动是否遇到障碍物。
其中,步骤S301至步骤S305与上述步骤S101至步骤S105的内容相同,可参考上述步骤S101至步骤S105的描述,在此不再赘述。
在拖地机器人遇到障碍物之后,若障碍物为第二障碍物,则执行步骤S306,当然,作为其他实施方式,在拖地机器人遇到障碍物之后,若障碍物为第二障碍物,则拖地机器人可以对障碍物进行沿边清洁,当沿边清洁的路径闭合时,拖地机器人结束沿边清洁,如图3所示,例如,第二障碍物落在拖地机器人当前运行的行或列上,若第二障碍物为圆柱,则拖地机器人运行至该圆柱后,绕该圆柱一周进行沿边清洁,随后进入下一行或列进行清洁。
另外,在拖地机器人遇到障碍物之后,若障碍物为第二障碍物,则拖地机器人还可以对第二障碍物进行部分沿边清洁,当沿边清洁至第一前进方向所在行或列时,拖地机器人沿第一前进方向继续移动(即绕过第二障碍物继续对第一前进方向进行清洁),如图4所示,例如,第二障碍物落在拖地机器人当前运行的行或列上,若第二障碍物为圆柱,则拖地机器人运行至该圆柱后,绕该圆柱的周边进行沿边清洁,直至拖地机器人回到当前运行的行或列上。
步骤S306,控制拖地机器人按照第二预设路径从当前行或列进入下一行或列。
其中,第二预设路径与第一预设路径的线型、方向和长度可以是相同的,也可以是不同的,第二预设路径本质上为控制拖地机器人从当前行进入下一行的转向路径,拖地机器人在下一行或列的前进方向为第二前进方向,第二前进方向与当前行或列的前进方向相反。
调整拖地机器人的第二前进方向为第一前进方向的反方向,如图6所示,是本申请实施例二提供的拖地机器人完整移动的一种路径示意图,拖地机器人在图6中的最左侧列向上移动,则第一前进方向为向上,拖地机器人进入下一列,其第二前进方向为向下。
步骤S307,控制拖地机器人按照第三预设路径从下一行或列的第四位置向第二预设方向移动至第五位置。
其中,第三预设路径与第一预设路径的线型相同,第三预设路径与第一预设路径的横向移动距离和纵向移动距离均相等;若第一预设路径为直线形,则第三预设路径也为直线形,若第一预设路径的横向移动距离为第二距离,且纵向移动距离为第三距离,则第三预设路径的横向移动距离也为第二距离,且纵向移动距离也为第三距离;另外,若第一预设路径在第一前进方向的左侧,则第三预设路径在第二前进方向的右侧,若第一预设路径在第一前进方向的右侧,则第三预设路径在第二前进方向的左侧。
下一行或列的第四位置可以设置为在第三位置连接构成的直线上,以第四位置作为拖地机器人在此行或列进行清扫作业的起始位置,此行或者列为上述第三位置连接构成的直线,第四位置与第一位置的横向距离为第二距离,第四位置与第一位置(与第四位置最相邻的第一位置)的纵向距离为第四距离。当然,第四位置与第一位置的横向距离也可以大于或小于第二距离,本申请不做限制。
另外,图6中拖地机器人按照第一预设路径(线型为直线形)从第二位置向右前方移动至第三位置,则在拖地机器人沿第一前进方向移动遇到障碍物之后拖地机器人按照第二预设路径从第一位置向右前方移动至第四位置。
如图6所示,拖地机器人沿最左侧列移动时最后一次到达的第三位置为拖地机器人在下一列的第四位置,即第四距离(与第四位置最相邻的第一位置与第四位置的纵向距离)与第三距离(第一预设路径的纵向移动距离)相等,如图7所示,是本申请实施例二提供的拖地机器人完整移动的又一种路径示意图,图7中拖地机器人的第一预设路径的线型为弧线形,可以较好地看出,拖地机器人从第四位置6向左前方移动至第五位置7,拖地机器人沿最左侧列移动时最后一次到达的第三位置3在第四位置6的下方,即第四距离(与第四位置6最相邻的第一位置1与第四位置6的纵向距离)大于第三距离(第一预设路径的纵向移动距离),另外,第四距离(与第四位置最相邻的第一位置与第四位置的纵向距离)还可以小于第三距离(第一预设路径的纵向移动距离)。
若第一预设方向为右前方,则第二预设方向为左前方,若第一预设方向为左前方,则第二预设方向为右前方,第二预设方向的左前方或者右前方是以第二前进方向为前方作为参考;如图6所示,若拖地机器人在最左侧列向上移动时第一预设路径朝向右前方,则拖地机器人转到下一列向下移动时第三预设路径朝向左前方。
步骤S308,控制拖地机器人按照第三预设路径从第五位置返回第四位置。
其中,在拖地机器人达到第五位置后,控制拖地机器人沿第四位置到第五位置的路径(第三预设路径)返回第四位置。
步骤S309,控制拖地机器人从第四位置沿第二前进方向移动第一距离至第六位置后,将第六位置作为第四位置。
为了对该第二前进方向上的区域继续进行清扫,在返回第四位置之后,控制拖地机器人从第四位置沿第二前进方法移动第一距离,达到第六位置,将第六位置作为第四位置。
步骤S310,判断拖地机器人沿第二前进方向移动是否遇到障碍物。
拖地机器人沿第二前进方向移动遇到障碍物,若障碍物为第一障碍物,则可以认为在第二前进方向上的区域拖地完成即拖地机器人移动至下一行末或列末,不需要再对该第二前进方向做清洁;若障碍物为第二障碍物,则可以认为在第二前进方向上的区域拖地完成,或者需要绕过第二障碍物对第二前进方向进行清洁,又或者对第二障碍物进行沿边清洁直至沿边运动闭合;若拖地机器人沿第二前进方向移动未遇到障碍物,则可以在第二前进方向上继续前进,返回执行步骤S307,并重复步骤S307至步骤S310。
可选的是,在拖地机器人沿第二前进方向移动的次数达到第二目标次数之后,还包括:
控制拖地机器人按照第四预设路径从第四位置向第二预设方向移动至第七位置,调整拖地机器人的前进方向与第一前进方向相同,其中,第七位置在所有第五位置连接构成的直线上;
将第七位置作为第二位置,并返回执行控制拖地机器人按照第一预设路径从第二位置向第一预设方向移动至第三位置,直至沿第二预设路径或第四预设路径移动时遇到障碍物。
其中,在相邻的行或者列,拖地机器人的运动方向相反,依次循环直至沿第二预设路径或者第四预设路径移动时遇到障碍物。
可选的是,第一预设路径的纵向移动距离为拖地机器人的清洁组件宽度的0.5~5倍。
其中,第一预设路径的纵向移动距离(即第三距离)即拖地机器人向左前方或右前方移动时的纵向移动距离,将该第三距离设置为拖地机器人的清洁组件宽度的0.5~5倍,避免由于拖地机器人向左前方或右前方移动时的纵向移动距离过小,导致的拖地效率较低的情况,也避免由于拖地机器人向左前方或右前方移动时的纵向移动距离过大,导致的拖地覆盖率较低的情况。
本申请实施例通过控制拖地机器人能够在拖完一列之后转至下一列进行清洁,移动的路径较为规则、简洁且合理,具有较高的拖地覆盖率,且避免了由于移动路径杂乱导致的拖地效率较低的问题。
参见图8,是本申请实施例三提供了一种拖地机器人的控制装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
该控制装置包括:
第一获取模块81,用于获取拖地机器人在第一位置时的第一前进方向和第一距离;
第一控制模块82,用于控制拖地机器人从第一位置沿第一前进方向移动第一距离至第二位置;
第二控制模块83,用于控制拖地机器人按照第一预设路径从第二位置向第一预设方向移动至第三位置,第一预设方向为右前方或左前方;
第一返回控制模块84,用于控制拖地机器人按照第一预设路径从第三位置返回第二位置后;
第一重复控制模块85,用于重复以上步骤直到拖地机器人沿第一前进方向移动遇到障碍物。
可选的是,该控制装置还包括:
沿边清洁模块,用于拖地机器人对障碍物进行沿边清洁,当沿边清洁的路径闭合时,所述拖地机器人结束沿边清洁。
可选的是,该控制装置还包括:
部分沿边清洁模块,用于所述拖地机器人对障碍物进行部分沿边清洁,当沿边清洁至所述第一前进方向所在行或列时,所述拖地机器人沿所述第一前进方向继续移动。
可选的是,该控制装置还包括:
第三控制模块,用于控制拖地机器人按照第二预设路径从当前行或列进入下一行或列,拖地机器人在下一行或列的前进方向为第二前进方向,第二前进方向与当前行或列的前进方向相反;
第四控制模块,用于控制拖地机器人按照第三预设路径从下一行或列的第四位置向第二预设方向移动至第五位置,其中,若第一预设方向为右前方,则第二预设方向为左前方,若第一预设方向为左前方,则第二预设方向为右前方;
第二返回控制模块,用于控制拖地机器人按照第三预设路径从第五位置返回第四位置;
第五控制模块,用于控制拖地机器人从第四位置沿第二前进方向移动第一距离至第六位置;
第二重复控制模块,用于重复以上步骤直到拖地机器人沿第二前进方向移动遇到障碍物。
可选的是,第一预设路径的纵向移动距离为拖地机器人的清洁组件宽度的0.5~5倍。
可选的是,与第四位置最相邻的第一位置与第四位置的纵向距离大于或等于第一预设路径的纵向移动距离。
可选的是,控制装置还包括:
检测模块,用于检测拖地机器人在前进过程中是否遇到动态障碍物;
停止模块,用于若拖地机器人在前进过程中遇到动态障碍物,待动态障碍物离开之后再继续前进。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例二部分,此处不再赘述。
图9为本申请实施例四提供的一种拖地机器人的结构示意图。如图7所示,该实施例的拖地机器人9包括:至少一个处理器90(图9中仅示出一个处理器)、存储器91以及存储在存储器91中并可在至少一个处理器90上运行的计算机程序92,处理器90执行计算机程序92时实现上述实施例的拖地机器人的控制的步骤。
该拖地机器人可包括,但不仅限于,处理器90、存储器91。本领域技术人员可以理解,图9仅仅是拖地机器人9的举例,并不构成对拖地机器人9的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
处理器90可以是中央处理单元(Central Processing Unit,CPU),该处理器90还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器91在一些实施例中可以是拖地机器人9的内部存储单元,例如拖地机器人9的硬盘或内存。存储器91在另一些实施例中也可以是拖地机器人9的外部存储设备,例如拖地机器人9上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器91还可以既包括拖地机器人9的内部存储单元也包括外部存储设备。存储器91用于存储操作***、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器91还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在拖地机器人上运行时,使得拖地机器人执行时实现可实现上述方法实施例一中的步骤,或者,当计算机程序产品在拖地机器人上运行时,使得拖地机器人执行时实现可实现上述方法实施例二中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/拖地机器人和方法,可以通过其它的方式实现。例如,以上所描述的装置/拖地机器人实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。