本发明涉及清洁机器人技术领域,特别是涉及一种清洁路径执行方法及清洁机器人。
背景技术:
随着科技的发展,人们对生活质量的要求不断提高,智能家居逐渐出现在人们的日常生活中。其中,清洁机器人作为智能家居的代表深受人们的喜爱。一般来说,将完成清扫、吸尘和擦地工作的机器人统称为清洁机器人。
清洁机器人在进行清洁过程中,能通过横纵坐标标识已清洁区域和障碍物区域等其他区域创建栅格地图,并根据栅格地图的填充状态搜寻未清洁区域,逐步实现全覆盖清洁,以便有针对性地高效完成待清洁区域的全覆盖清洁工作。通常,为了确保扫地机器人能够高效地完成指定区域的清洁任务,在开始清洁工作之前要预先规划清洁机器人的清洁路径。一方面,能够避免清洁机器人与待清洁区域中的障碍物相撞;另一方面,能够降低清洁的重复率,提高清洁效率。
现有技术中,清洁机器人通常是基于形状规则的待清洁区域执行清洁路径,当待清洁区域的形状不规则或边缘不规整时,不能有效地对待清洁区域进行全面清洁,容易出现对待清洁区域外部的清洁,同时也易出现漏清洁或重复清洁次数较多的情况,降低清洁机器人的清洁效率。
技术实现要素:
为了克服清洁机器人不能有效地对形状不规则的待清洁区域进行清洁的问题,本发明实施例提供一种清洁路径执行方法及清洁机器人能够确保机器人沿待清洁区域边界清洁时清洁路径的准确性,减少清洁机器人重复清洁次数,提高清洁机器人的清洁效率。
为了解决上述技术问题,本发明实施例提供以下技术方案:
第一方面,本发明实施例提供一种清洁路径执行方法,应用于清洁机器人,所述方法包括:
获取待清洁区域的边界点坐标;
根据所述边界点坐标确定所述待清洁区域的清扫起始点;
控制所述清洁机器人从所述清扫起始点开始沿所述待清洁区域进行边界清洁;
在边界清洁过程中,实时确定所述清洁机器人是否位于所述待清洁区域外,若所述清洁机器人位于所述待清洁区域外,则控制所述清洁机器人沿所述待清洁区域的边界点进行沿边界点清洁。
可选的,所述确定所述清洁机器人是否位于所述待清洁区域外,包括:
根据所述清洁机器人的当前位置坐标和所述待清洁区域的边界点坐标、确定所述清洁机器人是否位于所述待清洁区域外。
可选的,所述当前位置坐标包括x轴位置坐标xnow和y轴位置坐标ynow,所述边界点坐标包括x轴边界点坐标和y轴边界点坐标,所述xnow、所述ynow、所述x轴边界点坐标和所述y轴边界点坐标基于相同的坐标系;
所述根据所述清洁机器人的当前位置坐标和所述待清洁区域的边界点坐标、确定所述清洁机器人是否位于所述待清洁区域外,包括:
确定各边界点坐标中是否存在至少一个与所述xnow相同的x轴边界点坐标;
若否,则所述清洁机器人位于所述待清洁区域外;
若是,则根据所述ynow,以及所述x轴边界点坐标与所述xnow相同的所述边界点的所述y轴边界点坐标确定所述待清洁机器人是否位于所述待清洁区域外。
可选的,所述则根据所述ynow,以及所述x轴边界点坐标与所述xnow相同的所述边界点的所述y轴边界点坐标确定所述待清洁机器人是否位于所述待清洁区域外,包括:
确定所述x轴边界点坐标与所述xnow相同的所述边界点中,是否包括y轴边界点坐标与所述ynow相同的所述边界点;
若是,则确定所述清洁机器人位于所述待清洁区域外;
若否,确定所述边界点中y轴边界点坐标最大的最大y轴边界点坐标、以及y轴边界点坐标最小的最小y轴边界点坐标;
如果所述ynow大于所述最大y轴边界点坐标,或者所述ynow小于所述最小y轴边界点坐标,则确定所述清洁机器人位于所述待清洁区域外;
如果所述ynow小于所述最大y轴边界点坐标,且大于所述最小y轴边界点坐标,则确定所述x轴边界点坐标与所述xnow相同的边界点中的有效边界,并根据所述ynow和所述有效边界的所述y轴边界点坐标确定所述清洁机器人是否位于所述待清洁区域外。
可选的,所述有效边界为具有第一x轴边界点坐标的边界点或边界线段,并且所述有效边界至少存在相邻的、x轴边界点坐标与所述第一x轴边界点坐标不同的第一边界点和第二边界点,且所述第一边界点与所述第二边界点的x轴边界点坐标不同。
可选的,所述根据所述ynow和所述有效边界的所述y轴边界点坐标确定所述清洁机器人是否位于所述待清洁区域外,包括:
如果所述有效边界为边界线段,则获取所述有效边界上任一边界点的y轴边界点坐标作为该有效边界的y轴边界点坐标;
将所述有效边界的y轴边界点坐标按照从小到大的顺序依次排列,其中,用整数表示所述有效边界的y轴边界点坐标的排列序数;
确定所述y轴边界点坐标比所述ynow小,且距离所述机器人的当前位置最近的所述有效边界的所述排列序数的奇偶性;
若所述排列序数为偶数,则所述清洁机器人位于所述待清洁区域内;
若所述排列序数为奇数,则所述清洁机器人位于所述待清洁区域外。
可选的,所述边界清洁包括沿边界点清洁和沿边清洁,所述控制所述清洁机器人从所述清扫起始点开始沿所述待清洁区域的边界点进行边界清洁,包括:
控制所述清洁机器人从所述清扫起始点开始沿所述待清洁区域的边界点进行沿边界点清洁;
判断所述清洁机器人是否与障碍物发生碰撞;
若是,则控制所述清洁机器人沿所述障碍物的边界进行沿边清洁。
可选的,所述根据所述边界点坐标确定所述待清洁区域的清扫起始点,包括:
获取所述清洁机器人的初始位置;
确定所述边界点坐标中距离所述初始位置最近的点作为所述清扫起始点。
可选的,所述方法还包括:
记录所述清洁机器人经过的轨迹点;
根据所述轨迹点确定所述清洁机器人是否回到所述清扫起始点;
若是,则根据所述轨迹点获取所述轨迹点围成的清洁内区域;
对所述清洁内区域进行清洁。
可选的,所述方法还包括:
根据所述清洁机器人经过的轨迹点和所述待清洁区域确定是否存在所述清洁机器人可到达的未清洁的所述待清洁区域;
若是,则依次清洁所述未清洁的所述待清洁区域。
第二方面,本发明实施例提供一种清洁机器人,所述清洁机器人包括:
主体;
驱动轮部件,安装于所述主体,驱动所述清洁机器人在待清洁面上移动;
清洁部件,安装于所述主体朝向所述待清洁面的一面,所述清洁组件被配置为清洁所述待清洁面的污物;
存储部件,与所述清洁部件连通,并被配置为存储所述清洁部件所清洁的污物;
至少一个处理器;和
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例提供的机器人清洁路径执行方法。
本发明实施方式的有益效果是:区别于现有技术的情况,本发明实施例提供的一种清洁路径执行方法及清洁机器人,可以控制清洁机器人根据边界点的坐标沿待清洁区域进行边界清洁,在清洁机器人进行边界清洁的过程中,可以实时确定清洁机器人是否位于待清洁区域外,若清洁机器人位于待清洁区域外,则控制清洁机器人沿待清洁区域的边界点进行沿边界点清洁。确保清洁机器人沿待清洁区域边界行走路径的准确性,从而减少清洁机器人对待清洁区域外的清洁,提高清洁机器人的清洁效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种应用环境示意图;
图2是本发明实施例提供的一种清洁路径规划方法;
图3是本发明一实施例提供的根据清洁机器人的当前位置坐标和待清洁区域的边界点坐标确定清洁机器人相对于待清洁区域位置的方法;
图4是本发明实施例提供的一种待清洁区域的栅格地图示意图;
图5是本发明实施例提供的一种清洁机器人的硬件结构示意图;
图6是本发明一实施例中清洁机器人的立体视图;
图7是本发明一实施例中清洁机器人的底部视图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要说明的是,如果不冲突,本发明实施例中的各个特征可以相互组合,均在本发明的保护范围之内。另外,虽然在装置示意图中进行了功能模块的划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置示意图中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施方式的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
清洁机器人在工作时,通常需要根据待清洁区域地图尽量做到清洁面积全覆盖且清洁路径不重叠。尽量确保清洁机器人在清洁路径合理且最优的前提下,能够从起点到达终点且经过所有非障碍区域,由于清洁机器人需要清理指定环境内的所有区域,因此需要优化的全覆盖路线来保证高效地完成清洁任务。目前,清洁机器人执行清洁路径的方式和避障过程比较简单,通常都是针对形状规则的待清洁区域(如,矩形)进行清洁。当待清洁区域的形状比较复杂,或者清洁区域的边界不规整时,清洁机器人不能有效地对待清洁区域进行全面清洁,导致清洁覆盖率不高,重复率较大,清扫效率低下等问题。
图1为本发明实施例提供的一种清洁路径规划方法的应用环境的示意图。在图1中以清洁机器人执行清洁工作为例进行说明。
如图1所示,该应用环境包括:清洁机器人10、待清洁区域20以及障碍物w31、w32、w33、w34和w35。其中,障碍物w31、w32和w33部分位于待清洁区域20中,障碍物w34将待清洁区域20分割为两个相互独立的子区域。待清洁区域20是指需要清洁机器人10清洁的区域,例如家庭内的某一个房间或者客厅。待清洁区域20的边界构成的形状可以是任意不规则的形状。
本发明实施例中的清洁机器人10泛指具有清扫、吸尘和/或擦地功能的智能化设备。清洁机器人10可以以待清洁区域20中的某个位置为坐标原点,构建相应的全局坐标系。在执行清洁的过程中,清洁机器人10可以通过相应的定位坐标来表示清洁机器人的地理位置。清洁机器人10可以通过安装软件、app或在相应的器件中写入程序代码来实现本发明实施例提供的清洁路径执行方法逻辑。
本发明实施例中的清洁机器人10具备栅格地图的建图功能,能够将待清洁区域划分为若干栅格,生成对应的栅格数据。接收到清洁指令后,清洁机器人10基于栅格地图,先沿待清洁区域20的边界进行沿边界点清洁;在行走过程中,如果碰到障碍物(例如,w31和w32)则沿障碍物的边缘进行沿边清洁。清洁机器人10会记录沿待清洁区域20的边界行走一圈时经过的轨迹点,并对轨迹点围成的清洁区域进行清洁,确保所有能够到达的待清洁区域20都能够被清洁到,避免漏扫的情况。
当然,本领域技术人员还可以将本发明实施例提供的清洁路径执行方法应用到其它不同的机器人或者其它不同的工作任务中。为了应用在不同机器人或者工作任务而对本发明实施例技术方案作出的调整、组合或者简单变换均是本技术领域人员容易想到的替代方式,属于本发明的保护范围。
本发明实施例提供的清洁路径执行方法、清洁机器人及存储介质的核心点在于:清洁机器人10在沿障碍物边界进行沿边清洁的过程中,能够判断出清洁机器人所处的位置是是否在待清洁区域外,若清洁机器人位于待清洁区域外则实时将沿边清洁模式切换为沿边界点清洁模式。有效避免清洁机器人走出待清洁区域,从而确保清洁机器人沿边界行走路径的准确性,提高清洁效率。为了便于读者理解本发明,下面结合具体的实施例来进行说明。
请参阅图2,图2是本发明实施例提供的一种清洁路径执行方法,应用于清洁机器人。如图2所示,该方法包括如下步骤:
s11:获取待清洁区域的边界点坐标;
本实施例中,清洁机器人在对待清洁区域进行清洁之前已经获取待清洁区域所在环境的栅格地图,所述获取待清洁区域所在环境的栅格地图可以是清洁机器人调用历史栅格地图,或者是用户通过移动终端手动绘制的待清洁区域边界,通过云服务发送给清洁机器人,清洁机器人按照指定待清洁区域边界所围设形成的区域进行清洁。待清洁区域环境地图的边界映射成为栅格地图中的边缘栅格点,根据边缘栅格点的坐标即可获取待清洁区域的边界点坐标。
s12:根据所述边界点坐标确定所述待清洁区域的清扫起始点;
在一些实施例中,步骤s12包括以下步骤:
s121:获取所述清洁机器人的初始位置;
清洁机器人的初始位置可以是清洁机器人接到清扫指令时所在的位置。清洁机器人的初始位置信息包括清洁机器的坐标信息。清洁机器人的初始位置可以根据初始位置对应的栅格点由系统自动确定。清洁机器人的初始位置还可以是用户指定的位置。
s122:确定所述边界点坐标中距离所述初始位置最近的点作为所述清扫起始点。
清洁机器人要先对待清洁区域的边界进行清洁,为了使清洁机器人能够快速地从初始位置达到清扫起始点,本实施例中,在待清洁区域的边界点中选取距离清洁机器人初始位置最近的边界点作为清扫起始点。在另一些实施例中,清扫起始点也可以是清洁机器人从初始位置绕过障碍物后,到达待清洁区域的边界路径最短的边界点。
s13:控制所述清洁机器人从清扫起始点开始沿所述待清洁区域的边界点进行沿边界点清洁;
本实施例中,清洁机器人接收到清洁指令后,进行自转以调整前进方向,然后从当前所在位置到达待清洁区域的清扫起始点,并沿着边缘栅格点按顺(逆)时针方向,对待清洁区域的边界进行沿边界点清洁。
本发明实施例中的清洁机器人的机身为无线机器,其外形可以是任意合适的形状,如圆盘形或凸多边形等。该清洁机器人可以使用充电电池运作,操作方式可以为遥控或是机身上的操作面板。清洁机器人的机身上和机身内部设有多种感应器,比如红外传感器、陀螺仪、加速度传感器和碰撞传感器等,可用于检测障碍物和清洁机器人的行进距离、行进角度和机身状态等。当该清洁机器人碰到墙壁或其他障碍物时,会自行转弯,并依据不同的设定走不同的清洁路线,从而对待清扫区域进行有效的清扫。
s14:判断所述清洁机器人是否与障碍物发生碰撞;
在一些实施例中,清洁机器人设置有用于检测碰撞的碰撞传感器,碰撞传感器可以是物理的碰撞检测或者是超声波、激光等非接触式检测。其中,物理的碰撞检测可以通过内部硬件的弹簧结构件,弹起和压下时对电路产生不同的io电平,从而使得机器人能够判断出是否与障碍物发生了碰撞。
s15:若是,则控制所述清洁机器人沿所述障碍物的边界进行沿边清洁,并在沿边清洁过程中,实时确定所述清洁机器人是否位于所述待清洁区域外,若所述清洁机器人位于所述待清洁区域外,则控制所述清洁机器人沿边界点清洁。
本发明实施例中,若清洁机器人位于边界点上,或者位于待清洁区域边界点围成的区域外,则称清洁机器人位于待清洁区域外。清洁机器人在沿边清洁的过程中,行走路线可能脱离待清洁区域的边界。因此,清洁机器人在沿障碍物的边界进行沿边清洁的过程中,需要判断清洁机器人是否行走至待清洁区域外,若清洁机器人行走至待清洁区域外,则说明沿边清洁已经结束,清洁机器人需要回到边界点继续进行沿边界点清扫。因此,清洁机器人在沿边清洁的过程中需要获取清洁机器人相对于待清洁区域的位置信息,若清洁机器人在待清洁区域外,则实时将清洁机器人的位置调整到边界上,从而确保清洁机器人沿边界点清洁路径的准确性,避免清洁机器人对边界外的区域进行清洁。
在一些实施例中,若两个相邻的障碍区之间的距离小于清洁机器人的直径,清洁机器人无法从它们之间通过时,可以将两个障碍物识别为一个障碍物。容易理解,墙壁、家私家电等能够阻挡清洁机器人移动的物体均可以被视为障碍物。
在一些实施例中,确定清洁机器人是否位于待清洁区域外的方法包括:根据清洁机器人的当前位置坐标和边界点坐标确定所述清洁机器人是否位于所述待清洁区域外。
例如,可以以清洁机器人当前朝向前的方向为x轴的正方向,俯视扫地机器人,以其右侧方向为y轴的正方向。清洁机器人以清扫起始点作为清洁待清洁区域的起始点沿边界点清洁。例如,图3为本发明实施例提供的一种待清洁区域的栅格地图示意图。在图3中,待清洁区域的环境地图被划分为若干栅格,以点m为坐标系的原点,以横向为x轴,纵向为y轴建立坐标系;其中,栅格地图的边缘栅格表示待清洁区域的边界点,边缘栅格的坐标表示边界点的坐标。清洁机器人根据边界点的坐标,沿待清洁区域的边界进行沿边清洁。
令清洁机器人的当前位置坐标用x轴位置坐标xnow和y轴位置坐标ynow表示,待清洁区域边界点坐标用x轴边界点坐标和y轴边界点坐标表示,其中,xnow、ynow、x轴边界点坐标和所述y轴边界点坐标基于相同的坐标系。在一些实施例中,可以通过xnow、ynow、x轴边界点坐标和所述y轴边界点坐标判断清洁机器人是位于待清洁区域内还是位于待清洁区域外。在实际应用中,由于边界点坐标较多,为计算方便,可以将边界点坐标存储在键值容器中。
下面以xnow、ynow、x轴边界点坐标和y轴边界点坐标所在的坐标系为二维直角坐标系,并且将待清洁区域的边界点坐标存储在键值容器中的算法为例,详细介绍根据清洁机器人的当前位置坐标(xnow和ynow)和待清洁区域的边界点坐标(x轴边界点坐标和y轴边界点坐标)确定清洁机器人相对于待清洁区域位置的方法。请参阅图4,图4为本发明一实施例提供的一种通过xnow、ynow、x轴边界点坐标和所述y轴边界点坐标判断清洁机器人是否位于待清洁区域外的方法。如图4所示,该方法包括以下步骤:
s121:将所述边界点的横坐标和所述横坐标相同的所述边界点的纵坐标分别作为键值对的键和值存储在键值容器中;
本实施例中,x轴边界点坐标为横坐标x,y轴边界点坐标为纵坐标y。并将所有横坐标相同的边界点的横坐标和纵坐标存储在一个键值向量表中,令键值对的键key=x,键值对的值为value(x),则该向量表包括横坐标为x的所有边界点的纵坐标。x与value(x)构成一个键值对。通过键值对的键可以在键值容器中查找出value(x),从而可以获取横坐标为x的所有边界点的纵坐标。
例如,在图3中,黑色区域为边缘栅格,表示待清洁区域的边界,每个栅格表示一个坐标点。图中,所有的边界点的横坐标的数值表示为x1、x2、x3、x4、x5、x6、x7、x8、x9、x10,所有的横坐标x构成键值对的键,即keym=xm,m∈[1,10]。例如,令横坐标为x4的点的纵坐标按照从小到大的顺序排列分别为y[0]、y[1]、y[2]和y[3],则key4=x4,通过key4可以在向量表中获取到y[0]、y[1]、y[2]和y[3]。
s122:确定所述键值容器中是否存在与xnow数值相等的键;
s123:若否,则所述机器人位于待清洁区域外;
例如,在图3中,若
s124:若是,根据ynow以及所述与xnow数值相等的键对应的值判断所述机器人是否位于待清洁区域外。
在一些实施例中,上述步骤s124包括以下步骤:
s1241:确定value(xnow)是否包括与ynow数值相等的纵坐标;
s1242:若是,则所述清洁机器人位于待清洁区域外;
s1243:若否,确定边界点中y坐标最大的最大y坐标、以及y坐标最小的最小y坐标;
如果所述ynow大于最大y坐标,或者所述ynow小于最小y坐标,则确定清洁机器人位于待清洁区域外。
如果所述ynow小于最大y坐标,且大于最小y坐标,则确定x坐标与xnow相同的边界点中的有效边界,并根据ynow和有效边界的y坐标确定所述清洁机器人是否位于待清洁区域外;
其中,有效边界为具有第一x坐标的边界点或边界线段,并且有效边界至少存在相邻的x坐标与第一x坐标不同的第一边界点和第二边界点,且第一边界点与第二边界点的x坐标不同。
在一些实施例中,根据ynow和有效边界的所述y坐标确定清洁机器人是否位于所述待清洁区域外包括以下步骤:
获取每一个有效边界的纵坐标,其中,如果有效边界为边界点,则获取单个边界点的纵坐标,如果有效边界为边界线段,则获取有效边界上任一边界点的纵坐标作为该有效边界的纵坐标。将获取的所有有效边界的纵坐标依次标记为y[i],其中,i∈[0,n],n为整数;
令y[n-1]<y[n],则,
当y[i]<ynow<y[i 1]时,判断i的奇偶性;
若i是奇数,则所述清洁机器人位于所述边界外;
若i是偶数,则所述清洁机器人位于所述边界内区域。
例如,在图3中,若xnow∈{x1,x2,x3,x4,x5,x6,x7,x8,x9,x10},假设xnow=x4,则通过ynow与x4对应的值y[0]、y[1]、y[2]和y[3]的大小判断判断清洁机器人是否位于待清洁区域外。若ynow等于y[0]、y[1]、y[2]和y[3]中的其中一个,即ynow∈{y[0],y[1],y[2],y[3]},则清洁机器人当前位置所在的点为边界点。因此,清洁机器人位于待清洁区域外。若ynow<y[0]或ynow>y[3],则清洁机器人位于待清洁区域外;若y[0]<ynow<y[1]或y[2]<ynow<y[3],由于0和2均为偶数,则清洁机器人位于待清洁区域内;若y[1]<ynow<y[2],由于1为奇数,因此清洁机器人位于待清洁区域外。例如,假设点a、b、c、d和e的纵坐标分别为ya、yb、yc、yd和ye。由于ya<y[0],ye>y[3],因此,点a和点e均位于待清洁区域外;对于点b和点d,y[0]<yb<y[1],y[2]<yd<y[3],由于0和2均为偶数,因此,点b和点d位于待清洁区域内;对于点c,y[1]<yc<y[2],由于1为奇数,因此点c从位于边界外。
本实施例中,若横坐标为xnow的边界点的左右两侧没有存在相邻的其他边界点,则该边界点上下两侧为互相联通的区域,即该边界点上下两侧的区域均在待清洁区域内或者均在待清洁区域外。例如,图3中的点p右侧没有相邻的边界点,该点的上下两侧为互相联通的区域,因此,不能通过该点纵坐标的奇偶性判断清洁机器人相对于待清洁区域的位置。另外,图3中线段l的左侧没由相邻的边界点,线段l的上下两侧为互相联通的区域,因此该线段l上边界点的纵坐标奇偶性也不能用于判断清洁机器人相对于待清洁区域的位置。
发明实施例中将两侧存在相邻的其他边界点的边界点,以及两侧存在相邻的其他边界点,且由横坐标相同的相邻边界点构成的边界线段称为有效边界(如图3中的线段l,点s)。通过ynow与有效边界的纵坐标判断清洁机器人是否位于待清洁区域外。
请继续参阅图3,例如,在图3中,横坐标为x5的边界点有三个,即,点o、点p和点q,假设这三个点的纵坐标分别为yo、yp和yq,由于p点的右侧没有相邻的边界点,所以,点p并非有效边界。因此,不采用yp,而只采用yo和yq判断坐标清洁机器人的当前位置。则此时,yq为y[0],yo为y[1],若ynow<y[0]或ynow>y[1],则清洁机器人位于待清洁区域的边界外;若y[0]<ynow<y[1],则由于0为偶数,所以清洁机器人位于待清洁区域内。
例如,图3中横坐标为x8的点包括,点r、点s和边界线段l上所有的边界点,由于边界线段l的左侧没由相邻的边界点,因此,边界线段l不属于有效边界。故,当xnow=x8时,判断清洁机器人是否在待清洁区域外时,只采用点r和点s的纵坐标,而不采用边界线段l上的边界点的纵坐标。将点s和点r的纵坐标分别为标记为y[0]和y[1],则当ynow<y[0]或ynow>y[1],则清洁机器人位于待清洁区域的边界外;当y[0]<ynow<y[1],则由于0为偶数,所以清洁机器人位于待清洁区域内。
又如,当xnow=x6时,横坐标为x6的点包括点n和边界线段l上的4个边界点,由于边界线段l的两侧有相邻的边界点,因此,边界线段l为有效边界,将边界线段l上任一点的纵坐标标记为y[i],例如,可以将点n的纵坐标标记为y[0],将边界线段l上的任一点的纵坐标标记为y[1],则ynow<y[1],表示ynow小于边界线段l上每一个点的纵坐标,ynow>y[1],表示ynow大于边界线段l上每一个点的纵坐标。则当ynow<y[0]或ynow>y[1],则清洁机器人位于待清洁区域的边界外;当y[0]<ynow<y[1],则由于0为偶数,所以清洁机器人位于待清洁区域内。
在一些实施例中,通过边界点的坐标可以计算出该边界点两侧相邻的边界点的坐标值,本实施例涉及的左右两侧相邻的坐标点包括改点左上、左边、左下、右上,右边和右下的坐标点。通过计算出的该边界点左右两侧6个相邻的坐标点的坐标值,通过该坐标值和边界点的坐标值比较即可判断出一个边界点的两侧是否均具有相邻的坐标点。对于边界线段而言,只要边界线段上有一个边界点的左侧具有相邻的边界点,同时有一个边界点的右侧具有相邻的边界点,则确定该边界线段为有效边界。
假设某一点x的坐标值为(x0,y0),则该点左侧相邻的坐标点为(x0-1,y0-1),(x0-1,y0)和(x0-1,y0 1),则该点右侧相邻的坐标点为(x0 1,y0-1),(x0 1,y0)和(x0 1,y0 1)。以x0-1和x0 1为键值对的键,可以在键值容器中获取横坐标为x0-1和x0 1的边界点的纵坐标,若横坐标为x0-1的边界点的纵坐标包括y0-1、y0或y0 1中的一个,则点x的左侧具有相邻的边界点,若横坐标为x0 1的边界点的纵坐标包括y0-1、y0或y0 1中的一个,则点x的右侧具有相邻的边界点。
例如,在图3中,假设点p的坐标为(-2,6),则点p左上、左边和左下三个相邻的坐标点的坐标分别为(-3,7)、(-3,6)和(-3,5),点p右上、右边和右下三个相邻的坐标点的坐标分别为(-1,7)、(-1,6)和(-1,5)。然后在键值容器中查找key=3的键值对应的值,若key=3的键值对应的值中包括5,6或7中的一个,则点p的左侧存在相邻的边界点,同样,在键值容器中查找key=-1的键值对应的值,若key=-1的键值对应的值中包括5,6或7中的一个,则点p的右侧存在相邻的边界点。若key=3的键值对应的值中包括5,6或7中的一个且key=-1的键值对应的值中也包括5,6或7中的一个,则点p的两侧均包括相邻的边界点。
本实施例中,清洁机器人在沿边清洁和沿边界点清洁的过程中可以通过清洁机器人当前位置坐标和边界点的坐标判断出清洁机器人是位于边界上、边界内还是边界外,若清洁机器人不在边界上则实时将清洁机器人的位置调整到边界上。可以提高清洁机器人沿边界清扫路径的准确性,不会出现对区域外的清扫,从而降低清洁重复率,提高清效率。
在一些实施例中,清洁路径执行方法还包括以下步骤:
s16:记录清洁机器人经过的轨迹点;
s17:根据轨迹点确定清洁机器人是否回到清扫起始点;
s18:若是,则根据轨迹点获取轨迹点围成的清洁内区域;
s19:对所述清洁内区域进行清洁。
本实施例中,清洁机器人在沿边界点清扫或延边清扫的过程中或记录走过或清洁过的路径上每一轨迹点的坐标值,轨迹点的坐标可以是清洁机器人中心点的位置坐标。而且,清洁机器人在沿边界点清洁的过程中能够根据当前位置坐标和清扫起始点的坐标和清洁状态判断出清洁机器人是否已经回到清扫起始点。若清扫起始点的清洁状态为已清洁,且清洁机器人的当前位置坐标和清扫起始点的坐标相同,则确定清洁机器人已经回到清扫起始点。
例如,栅格地图中,每个栅格的位置通常采用坐标(x,y)来表示。在一些实施例中,也可以用(x,y,k)同时描述栅格的位置和清扫状态,例如,k的值可以取0或1,当k为0时表示坐标为(x,y)的栅格位置未清扫,当k为1时表示该栅格位置已经被清扫。若清扫起始点被标记为(x0,y0,1),清洁机器人的当前位置坐标为(x0,y0),则表明清洁机器人已经回到清扫起始点。
若清洁机器人回到清扫起始点,则表明清洁机器人已经沿待清洁区域的边界行走一圈,待清洁区域的边界以清洁完毕。因此,将清洁机器人的行走路径调整到闭合路径曲线内的区域,对闭合路径曲线内的未清洁区域进行遍历清洁。本实施例中,可以采用“弓字形”清洁方式对所述闭合路径曲线内的区域进行遍历清洁,
在一些实施例中,上述清洁路径规划执行方法还包括以下步骤:
s20:确定是否存在可到达的未清的待清洁区域;
s21:若是,则依次清洁所述未清的待清洁区域。
例如,在图1中,待清洁区域20被障碍区w34分割为两个互相分离的待清洁区域21和待清洁区域22。当清洁机器人清洁完待清洁区域21时,获取待清洁区域22的清扫起始点,对待清洁区域22进行清洁。可以采用同样或不同的清洁路径执行方法对待清洁区域21和待清洁区域22进行遍历清洁。在一些实施例中,可能会存在待清洁区域不能到达的情况,例如,在图1中,若清洁机器人的直径小于障碍物w34和w35之间的距离,则清洁机器人可能无法到达待清洁区域22。所以,清洁机器人待清洁区域进行清洁之前可以先判断出待清洁区域是否可以达到,若不能达到,可以发出警报提醒用户。
本发明实施例提供一种机器人清洁路径执行方法,基于历史清洁已有的栅格地图以及给定的不规则待清洁区域,对待清洁区域进行完全覆盖清洁,不会出现对区域外的清扫,可以实现用户完全定制化的区域清洁,简单高效。清洁机器人先沿待清洁区域的边界清洁一圈,并记录清洁一圈过程中的闭合路径曲线,然后对闭合路径曲线内的区域进行清洁。清洁机器人在沿待清洁区域的边界清洁的过程中,若遇到障碍物,则沿障碍物的边缘进行沿边清洁后,沿边清洁结束后继续进行沿边清扫,扫地机器人在沿边清洁的过程中对可到达的待清洁区域的边界地图进行更新,可以减少清洁机器人与边界区域上障碍物的碰撞,提高清洁效率。
请参阅图5、图6及图7,图5是本发明实施例提供的执行清洁路径执行方法的清洁机器人的硬件结构示意图,图6是本发明一实施例中清洁机器人的立体视图,图7是本发明一实施例中清洁机器人的底部视图。所述清洁机器人100包括主体110、安装于所述主体110并驱动所述清洁机器人100在待清洁面上移动的驱动轮部件30、安装于所述主体110朝向所述待清洁面的一面并被配置为清洁所述待清洁面的污物的清洁部件50、与所述清洁部件50连通并被配置为存储所述清洁部件50所清洁的污物存储部件40、至少一个处理器101及与所述至少一个处理器101通信连接的存储器102。所述主体110的外形大体上呈圆形,在其他实施例中,所述主体110的外形可以大体上呈椭圆形、三角形、d形或其他形状。所述待清洁面可以是较为光滑的地板表面、铺设有地毯的表面以及其他需要清洁的表面。
所述驱动轮部件30包括左右驱动轮31及全向轮32,所述左右驱动轮31安装于所述主体110的底部的左右两侧,所述左右驱动轮31被配置为至少部分可伸出及缩回所述主体110的底部。所述全向轮32安装于所述主体110的底部的靠前位置,所述全向轮32为活动脚轮,可以水平360度旋转,以使得所述清洁机器人100可以灵活转向。所述左右驱动轮31和所述全向轮32的安装构成三角形,以提高所述清洁机器人100行走的平稳性。
所述清洁部件50包括包括滚刷51及边刷52,所述滚刷51设于主体110底部开设的第一收容槽内,所述第一收容槽自所述主体110的底部朝向顶部凹陷形成,所述主体110还开设有第二收容槽,所述第二收容槽与所述第一收容槽通过吸口连通,所述存储部件40安装于所述第二收容槽内,所述存储部件40开设有进尘口,所述进尘口与所述吸口对接,使得所述存储部件40与所述清洁部件50连通。所述滚刷51可以是毛刷、胶刷中的任意一种或两种组合,所述滚刷51通过内部安装的滚刷驱动电机驱动其绕大体上垂直于所述清洁机器人前进方向的轴旋转。所述边刷52设置于主体110的左前部和/或右前部。边刷52可以沿着基本上垂直于主体110的轴旋转。边刷52具有多束围绕轴间隔排列的长刷毛,长刷毛向外延伸并超出主体110的外形轮廓,用于将待清洁面上超出主体110的外形轮廓覆盖范围的污物清扫至主体110底部的第一收容槽位置,所述滚刷51进一步将垃圾清扫至存储部件40。可以想象的,所述清洁机器人100可以不设置滚刷51,自所述吸口延伸出吸尘管道,以对待清洁面进行清洁。所述污物可以包括垃圾、碎屑、颗粒物等用户不需要物体并能够被所述清洁机器人100清洁。所述清洁部件50还可以包括拖擦件53,所述拖擦件安装于所述主体110的后部,对经由所述滚刷51或所述边刷52清洁后的待清洁面进行拖擦清洁。在其他实施例中所述清洁机器人100可以只设置有所述拖擦件53,对待清洁面进行拖擦清洁,所述拖擦件53也可以安装于所述主体110的前部或者是中间位置。
图5中以一个处理器101为例。处理器101和存储器102可以通过总线或者其他方式连接,图5中以通过总线连接为例。存储器102作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本发明实施例中的清洁路径执行方法对应的程序指令/模块。处理器101通过运行存储在存储器102中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的移动机器人的路径选择方法。
存储器102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据移动机器人的路径选择装置的使用所创建的数据等。此外,存储器102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器102可选包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至移动机器人的路径选择装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器102中,当被所述至少一个处理器101执行时,执行上述任意方法实施例中的清洁路径执行方法,例如,执行以上描述的图2中的方法步骤s11-s15,图3中的方法步骤s121-s124。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
本发明实施例的电子设备以多种形式存在,包括但不限于移动机器人,等其他具有数据交互功能的电子装置。
本发明实施例提供了一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被电子设备执行上述任意方法实施例中的移动机器人的路径选择方法,例如,执行以上描述的图2中的方法步骤s11-s15,图4中的方法步骤s121-s124。
本发明实施例提供了一种计算机程序产品,包括存储在非易失性计算机可读存储介质上的计算程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时时,使所述计算机执行上述任意方法实施例中的移动机器人的路径选择方法,例如,执行以上描述的图2中的方法步骤s11-s15,图4中的方法步骤s121-s124。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域普通技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件来实现。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
1.一种清洁路径执行方法,应用于清洁机器人,其特征在于,所述方法包括:
获取待清洁区域的边界点坐标;
根据所述边界点坐标确定所述待清洁区域的清扫起始点;
控制所述清洁机器人从所述清扫起始点开始沿所述待清洁区域进行边界清洁;
在边界清洁过程中,实时确定所述清洁机器人是否位于所述待清洁区域外,若所述清洁机器人位于所述待清洁区域外,则控制所述清洁机器人沿所述待清洁区域的边界点进行沿边界点清洁。
2.根据权利要求1所述的清洁路径执行方法,其特征在于,所述确定所述清洁机器人是否位于所述待清洁区域外,包括:
根据所述清洁机器人的当前位置坐标和所述待清洁区域的边界点坐标、确定所述清洁机器人是否位于所述待清洁区域外。
3.根据权利要求2所述的清洁路径执行方法,其特征在于,所述当前位置坐标包括x轴位置坐标xnow和y轴位置坐标ynow,所述边界点坐标包括x轴边界点坐标和y轴边界点坐标,所述xnow、所述ynow、所述x轴边界点坐标和所述y轴边界点坐标基于相同的坐标系;
所述根据所述清洁机器人的当前位置坐标和所述待清洁区域的边界点坐标、确定所述清洁机器人是否位于所述待清洁区域外,包括:
确定各边界点坐标中是否存在至少一个与所述xnow相同的x轴边界点坐标;
若否,则所述清洁机器人位于所述待清洁区域外;
若是,则根据所述ynow,以及所述x轴边界点坐标与所述xnow相同的所述边界点的所述y轴边界点坐标确定所述待清洁机器人是否位于所述待清洁区域外。
4.根据权利要求3所述的清洁路径执行方法,其特征在于,所述则根据所述ynow,以及所述x轴边界点坐标与所述xnow相同的所述边界点的所述y轴边界点坐标确定所述待清洁机器人是否位于所述待清洁区域外,包括:
确定所述x轴边界点坐标与所述xnow相同的所述边界点中,是否包括y轴边界点坐标与所述ynow相同的所述边界点;
若是,则确定所述清洁机器人位于所述待清洁区域外;
若否,确定所述x轴边界点坐标与所述xnow相同的所述边界点中、y轴边界点坐标最大的最大y轴边界点坐标、以及y轴边界点坐标最小的最小y轴边界点坐标;
如果所述ynow大于所述最大y轴边界点坐标,或者所述ynow小于所述最小y轴边界点坐标,则确定所述清洁机器人位于所述待清洁区域外;
如果所述ynow小于所述最大y轴边界点坐标,且大于所述最小y轴边界点坐标,则确定所述x轴边界点坐标与所述xnow相同的边界点中的有效边界,并根据所述ynow和所述有效边界的所述y轴边界点坐标确定所述清洁机器人是否位于所述待清洁区域外。
5.根据权利要求4所述的清洁路径执行方法,其特征在于,所述有效边界为具有第一x轴边界点坐标的边界点或边界线段,并且所述有效边界至少存在相邻的、x轴边界点坐标与所述第一x轴边界点坐标不同的第一边界点和第二边界点,且所述第一边界点与所述第二边界点的x轴边界点坐标不同。
6.根据权利要求5所述的清洁路径执行方法,其特征在于,所述根据所述ynow和所述有效边界的所述y轴边界点坐标确定所述清洁机器人是否位于所述待清洁区域外,包括:
如果所述有效边界为边界线段,则获取所述有效边界上任一边界点的y轴边界点坐标作为该有效边界的y轴边界点坐标;
将所述有效边界的y轴边界点坐标按照从小到大的顺序依次排列,其中,用整数表示所述有效边界的y轴边界点坐标的排列序数;
确定所述y轴边界点坐标比所述ynow小,且距离所述机器人的当前位置最近的所述有效边界的所述排列序数的奇偶性;
若所述排列序数为偶数,则所述清洁机器人位于所述待清洁区域内;
若所述排列序数为奇数,则所述清洁机器人位于所述待清洁区域外。
7.根据权利要求1-6任一项所述的清洁路径执行方法,其特征在于,所述边界清洁包括沿边界点清洁和沿边清洁,所述控制所述清洁机器人从所述清扫起始点开始沿所述待清洁区域的边界点进行边界清洁,包括:
控制所述清洁机器人从所述清扫起始点开始沿所述待清洁区域的边界点进行沿边界点清洁;
判断所述清洁机器人是否与障碍物发生碰撞;
若是,则控制所述清洁机器人沿所述障碍物的边界进行沿边清洁。
8.根据权利要求7所述的清洁路径执行方法,其特征在于,所述根据所述边界点坐标确定所述待清洁区域的清扫起始点,包括:
获取所述清洁机器人的初始位置;
确定所述边界点坐标中距离所述初始位置最近的点作为所述清扫起始点。
9.根据权利要求7所述的清洁路径执行方法,其特征在于,所述方法还包括:
记录所述清洁机器人经过的轨迹点;
根据所述轨迹点确定所述清洁机器人是否回到所述清扫起始点;
若是,则根据所述轨迹点获取所述轨迹点围成的清洁内区域;
对所述清洁内区域进行清洁。
10.根据权利要求9所述的清洁路径执行方法,其特征在于,所述方法还包括:
根据所述清洁机器人经过的轨迹点和所述待清洁区域确定是否存在所述清洁机器人可到达的未清洁的所述待清洁区域;
若是,则依次清洁所述未清洁的所述待清洁区域。
11.一种清洁机器人,其特征在于,所述清洁机器人包括:
主体;
驱动轮部件,安装于所述主体,驱动所述清洁机器人在待清洁面上移动;
清洁部件,安装于所述主体朝向所述待清洁面的一面,所述清洁组件被配置为清洁所述待清洁面的污物;
存储部件,与所述清洁部件连通,并被配置为存储所述清洁部件所清洁的污物;
至少一个处理器;和
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1-10任一项所述的清洁路径执行方法。
技术总结