本发明涉及移动机器人技术领域,尤其涉及一种移动机器人及其定位方法和计算机可读存储介质。
背景技术:
移动机器人在进行工作时,需要进行定位。现有技术中,移动机器人的定位技术主要用到了蒙特卡洛定位,蒙特卡洛定位通过撒粒子的方式进行定位。但移动机器人进行蒙特卡洛定位时,通常对全局地图撒粒子进行定位,全局撒的粒子数量较多,造成移动机器人计算的粒子数量较多,导致移动机器人耗费的计算资源较大,移动机器人的计算速率较低,导致移动机器人的定位效率较低。
技术实现要素:
本发明的主要目的在于提供一种移动机器人及其定位方法和计算机可读存储介质,旨在解决移动机器人定位效率较低的问题。
为实现上述目的,本发明提供一种移动机器人的定位方法,所述移动机器人的定位方法包括以下步骤:
确定移动机器人所在的第一区域,并在所述第一区域撒粒子以进行蒙特卡洛定位;
在定位失败后,在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位,其中,第一区域的面积小于所述第二区域的面积,且所述移动机器人在所述第一区域撒的粒子数量少于所述移动机器人在所述第二区域撒的粒子数量。
在一实施例中,所述移动机器人的定位方法,还包括:
在移动机器人开始工作时,获取所述移动机器人的记忆地图;
根据所述记忆地图确定所述移动机器人的当前位姿;
在所述当前位姿未处于充电桩时,执行所述确定移动机器人所在的第一区域的步骤。
在一实施例中,所述根据所述记忆地图确定所述移动机器人的当前位姿的步骤之后,还包括:
在所述当前位姿处于充电桩时,进行icp重定位;
在定位失败后,执行所述确定移动机器人所在的第一区域的步骤。
在一实施例中,所述在所述第一区域撒粒子以进行局部的蒙特卡洛定位的步骤之后,还包括:
在定位成功后,进行icp重定位;
在定位失败后,执行所述在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位的步骤。
在一实施例中,所述在所述移动机器人所在的第二区域撒粒子以进行全局的蒙特卡洛定位的步骤之后,还包括:
在定位成功后,进行icp重定位。
在一实施例中,在定位成功后,确定所述移动机器人所在的位姿,以根据所述位姿确定行走路线,并控制所述移动机器人按照所述行走路线移动。在一实施例中,所述在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位的步骤之后,还包括:
在定位失败后,确定所述第二区域是否为全局区域;
在所述第二区域为全局区域时,根据所述第二区域中得分最高的粒子的位姿对应的位姿作为所述移动机器人的位姿。
在一实施例中,所述确定所述第二区域是否为全局区域的步骤之后,还包括:
在所述第二区域不为全局区域时,在所述移动机器人所在的第三区域撒粒子以进行蒙特卡洛定位,其中,第二区域的面积小于所述第三区域的面积,且所述移动机器人在所述第二区域撒的粒子数量少于所述移动机器人在所述第三区域撒的粒子数量。
为实现上述目的,本发明还提供一种移动机器人,所述移动机器人包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的移动机器人的定位程序,所述移动机器人的定位程序被所述处理器执行时实现如上所述的移动机器人的定位方法的各个步骤。
为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括移动机器人的定位程序,所述移动机器人的定位程序被处理器执行时实现如上所述的移动机器人的定位方法的各个步骤。
本发明提供的移动机器人及其定位方法和计算机可读存储介质,移动机器人先确定第一区域,在第一区域撒粒子进行蒙特卡洛定位,若定位失败,则在第二区域中撒粒子进行蒙特卡洛定位,由于第一区域的面积小于第二区域的面积,且第一区域撒的粒子数量少于第二区域撒的粒子数量,也即移动机器人先在小范围内区域撒较少数量的粒子进行定位,在定位失败后,再在较大范围撒较多数量的粒子进行定位,避免移动机器人在定位时直接采用在全局区域中撒较多粒子进行定位,提高了移动机器人的定位效率。
附图说明
图1为本发明实施例涉及的移动机器人的硬件构架示意图;
图2为本发明移动机器人的定位方法第一实施例的流程示意图;
图3为本发明移动机器人的定位方法第二实施例的流程示意图;
图4为本发明移动机器人的定位方法第三实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:确定移动机器人所在的第一区域,并在所述第一区域撒粒子以进行蒙特卡洛定位;在定位失败后,在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位,其中,第一区域的面积小于所述第二区域的面积,且所述移动机器人在所述第一区域撒的粒子数量少于所述移动机器人在所述第二区域撒的粒子数量。
由于移动机器人先在小范围内区域撒较少数量的粒子进行定位,在定位失败后,再在较大范围撒较多数量的粒子进行定位,避免移动机器人在定位时直接采用在全局区域中撒较多粒子进行定位,提高了移动机器人的定位效率。
作为一种实现方案,移动机器人可以如图1所示。
本发明实施例方案涉及的是移动机器人,移动机器人包括:处理器101,例如cpu,存储器102,通信总线103。其中,通信总线103用于实现这些组件之间的连接通信。
存储器102可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。如图1所示,作为一种计算机存储介质的存储器103中可以包括移动机器人的定位程序;而处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
确定移动机器人所在的第一区域,并在所述第一区域撒粒子以进行蒙特卡洛定位;
在定位失败后,在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位,其中,第一区域的面积小于所述第二区域的面积,且所述移动机器人在所述第一区域撒的粒子数量少于所述移动机器人在所述第二区域撒的粒子数量。
在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在移动机器人开始工作时,获取所述移动机器人的记忆地图;
根据所述记忆地图确定所述移动机器人的当前位姿;
在所述当前位姿未处于充电桩时,执行所述确定移动机器人所在的第一区域的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在所述当前位姿处于充电桩时,进行icp重定位;
在定位失败后,执行所述确定移动机器人所在的第一区域的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在定位成功后,进行icp重定位;
在定位失败后,执行所述在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位的步骤。
在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在定位成功后,进行icp重定位。
在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在定位成功后,确定所述移动机器人所在的位姿,以根据所述位姿确定行走路线,并控制所述移动机器人按照所述行走路线移动。在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在定位失败后,确定所述第二区域是否为全局区域;
在所述第二区域为全局区域时,根据所述第二区域中得分最高的粒子的位姿对应的位姿作为所述移动机器人的位姿。
在一实施例中,处理器101可以用于调用存储器102中存储的移动机器人的定位程序,并执行以下操作:
在所述第二区域不为全局区域时,在所述移动机器人所在的第三区域撒粒子以进行蒙特卡洛定位,其中,第二区域的面积小于所述第三区域的面积,且所述移动机器人在所述第二区域撒的粒子数量少于所述移动机器人在所述第三区域撒的粒子数量。
本实施例根据上述方案,移动机器人先确定第一区域,在第一区域撒粒子进行蒙特卡洛定位,若定位失败,则在第二区域中撒粒子进行蒙特卡洛定位,由于第一区域的面积小于第二区域的面积,且第一区域撒的粒子数量少于第二区域撒的粒子数量,也即移动机器人先在小范围内区域撒较少数量的粒子进行定位,在定位失败后,再在较大范围撒较多数量的粒子进行定位,避免移动机器人在定位时直接采用在全局区域中撒较多粒子进行定位,提高了移动机器人的定位效率。
基于上述移动机器人的硬件构架,提出本发明移动机器人的定位方法的实施例。
参照图2,图2为本发明移动机器人的定位方法的第一实施例,所述移动机器人的定位方法包括以下步骤:
步骤s10,确定移动机器人所在的第一区域,并在所述第一区域撒粒子以进行蒙特卡洛定位;
在本实施例中,执行主体为移动机器人,移动机器人可以是扫地机器人等可自行移动的机器人。移动机器人在工作时,需要进行定位。在定位时,移动机器人以自身的位姿为基点确定第一区域,例如,可以以自身的位姿为中心位姿,确定第一区域,第一区域的面积可为4×4,单位可以是cm、dm或者m,也即4cm×4cm、4dm×4dm或者4m×4m,对此不作限定。需要说明的是,第一区域的面积是小于移动机器人当前所在的区域的面积,例如,移动机器人所在的区域为卧室,当前所在的区域的面积即为卧室的面积,第一区域的面积可以根据移动机器人当前所在的区域的面积灵活设置,也即仅需保证第一区域的面积小于移动机器人当前所在的区域的面积。
步骤s20,在定位失败后,在所述移动机器人所在的第二区域撒粒子以进行蒙特卡洛定位,其中,第一区域的面积小于所述第二区域的面积,且所述移动机器人在所述第一区域撒的粒子数量少于所述移动机器人在所述第二区域撒的粒子数量。
在移动机器人判定定位失败后,进一步确定第二区域,第二区域的面积大于第二区域的面积,例如,第一区域的面积为4dm×4dm,那么第二区域的面积可为8dm×8dm。第二区域的面积小于或者等于移动机器人当前所在区域的面积。
在确定第二区域后,移动机器人在第二区域撒粒子进行蒙特卡洛定位,第二区域的面积大于第一区域的面积,因此,移动机器人在第二区域撒的粒子数量多于移动机器人在第一区域撒的粒子数量。
此外,在确定第一区域以及第二区域后,移动机器人会确定第一区域以及第二区域中存在的障碍物,第一区域以及第二区域可以图像的形式存在,而障碍物在第一区域以及第二区域对应的图像中的颜色为黑色,非障碍物区域则在图像中的颜色为白色,移动机器人仅在颜色为白色的区域撒粒子。
需要说明的是,判断蒙特卡洛定位是否成功为本领域技术人员的公知常识,在此不再赘述。
在本实施例提供的技术方案中,移动机器人先确定第一区域,在第一区域撒粒子进行蒙特卡洛定位,若定位失败,则在第二区域中撒粒子进行蒙特卡洛定位,由于第一区域的面积小于第二区域的面积,且第一区域撒的粒子数量少于第二区域撒的粒子数量,也即移动机器人先在小范围内区域撒较少数量的粒子进行定位,在定位失败后,再在较大范围撒较多数量的粒子进行定位,避免移动机器人在定位时直接采用在全局区域中撒较多粒子进行定位,提高了移动机器人的定位效率。
参照图3,图3为本发明移动机器人的定位方法的第二实施例,基于第一实施例,所述移动机器人的定位方法,还包括:
步骤s30,在移动机器人开始工作时,获取所述移动机器人的记忆地图;
步骤s40,根据所述记忆地图确定所述移动机器人的当前位姿;
步骤s50,在所述当前位姿未处于充电桩时,执行所述确定移动机器人所在的第一区域,并在所述第一区域撒粒子以进行蒙特卡洛定位的步骤;
步骤s60,在所述当前位姿处于充电桩时,进行icp重定位;
步骤s70,在定位失败后,执行所述确定移动机器人所在的第一区域,并在所述第一区域撒粒子以进行蒙特卡洛定位的步骤。
在本实施例中,移动机器人存储有记忆地图,在当移动机器人开始工作时,可根据记忆地图确定移动机器人当前所在的位姿,进而判断移动机器人所在的当前位姿是否为充电座。需要说明的是,位姿指的是位置以及航向。
移动机器人在处于充电座时,可采用icp重定位进行定位。移动机器人中存储有icp算法,移动机器人通过icp算法进行icp重定位,而icp算法通过激光点云相邻帧匹配的方式计算二帧之间的相对位姿变换关系,因icp算法只用到相邻帧,使得icp重定位的定位效率高于蒙特卡洛的定位效率。
移动机器人在充电座出发进行工作时,进行icp重定位,若定位成功,则根据定位的位姿进行工作,而在当定位失败后,移动机器人再确定第一区域,以进行蒙特卡洛定位。在确定移动机器人未处于充电座,也即移动机器人处于上一次工作后的停留点或者暂停点,移动机器人直接确定第一区域,以进行蒙特卡洛定位。
需要说明的,判断icp重定位是否定位成功为本领域技术人员的公知常识,在此不再赘述。
在本实施例提供的技术方案中,移动机器人在工作时,根据记忆地图确定移动机器人当前的位姿是否为充电座,若是,则进行icp重定位,由于icp重定位的定位效率高于蒙特卡洛的定位效率,因而进一步提高了移动机器人的定位效率。
在一实施例中,在当移动机器人在第一区域撒粒子进行蒙特卡洛定位后,若定位成功,需要进行icp重定位进行二次确认;当然,在移动机器人在第二区域撒粒子进行蒙特卡洛定位后,若定位成功,也需要进行icp重定位进行二次确认。可以理解的是,在移动机器人蒙特卡洛定位成功后,均需进行icp重定位进行二次确认,从而提高移动机器人定位的准确性。
需要说明的是,在移动机器人进行蒙特卡洛定位时,移动机器人是移动的,也即,在蒙特卡洛定位成功后进行的icp重定位的位姿与充电座所在的位姿不重合,因此,在充电座进行的icp重定位的定位结果与在蒙特卡洛定位成功后进行的icp重定位的定位结果并不一定相同,定位结果即为定位成功或者定位失败。
在一实施例中,在定位成功后,也即icp重定位成功、第一区域对应的蒙特卡洛定位成功或者第二区域对应的蒙特卡洛定位成功后,移动机器人确定位姿,从而根据位姿确定行走路线,使得移动机器人根据行走路线进行移动。若移动机器人为扫地机器人时,行走路线即为清扫路线。
参照图4,参照图4,图4为本发明移动机器人的定位方法的第三实施例,基于第一或第二实施例,所述步骤s20之后,还包括:
步骤s80,在定位失败后,确定所述第二区域是否为全局区域;
步骤s90,在所述第二区域为全局区域时,根据所述第二区域中得分最高的粒子的位姿对应的位姿作为所述移动机器人的位姿。
步骤s100,在所述第二区域不为全局区域时,在所述移动机器人所在的第三区域撒粒子以进行蒙特卡洛定位,其中,第二区域的面积小于所述第三区域的面积,且所述移动机器人在所述第二区域撒的粒子数量少于所述移动机器人在所述第三区域撒的粒子数量。
在本实施例中,移动机器人设置有多个区域,各个区域的面积依次增大,最大的区域的面积即为移动机器人当前所在区域的面积。移动机器人进行第一区域的蒙特卡洛定位,定位失败后,再进行第二区域的蒙特卡洛定位,以此类推,直至移动机器人对面积最大的区域进行蒙特卡洛定位,也即移动机器人全局地图进行定位。
对此,移动机器人在判定第二区域对应的蒙特卡洛定位失败后,确定第二区域是否为全局区域,也即判断第二区域是否为面积最大的区域,若不是,则进行第三区域的蒙特卡洛定位,第三区域的面积大于第二区域的面积,且移动机器人在第三区域撒的粒子数量多于移动机器人在第二区域撒的粒子数量。若确定第二区域为全局区域,则将第二区域中得分最高的粒子的位姿对应的位姿作为所述移动机器人的位姿。
需要说明的是,在本实施例中,第二区域是用于区别于第一区域,第一以及第二并不表示区域的数量,可以理解的是,第一区域可以是移动机器人进行第三个区域的蒙特卡洛定位,也可以是移动机器人进行的第四区域的蒙特卡洛定位。
此外,在上述实施例中,若定位成功需要进行icp重定位,若是icp重定位失败后,进行下一个较大面积区域的蒙特卡洛定位。
在本实施例提供的技术方案中,移动机器人设置多个区域,在当第二区域定位失败后,进行面积大于第二区域的第三区域的蒙特卡洛定位,从而确保移动机器人能够定位成功。
本发明还提供一种移动机器人,所述移动机器人包括存储器、处理器以及存储在所述存储器并可在所述处理器上运行的移动机器人的定位程序,所述移动机器人的定位程序被所述处理器执行时实现如上实施例所述的移动机器人的定位方法的各个步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质包括移动机器人的定位程序,所述移动机器人的定位程序被处理器执行时实现如上实施例所述的移动机器人的定位方法的各个步骤。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。