机器人定位方法、机器人及存储介质与流程
未命名
08-14
阅读:88
评论:0

机器人定位方法、机器人及存储介质
1.本案是申请号为2018106240539、申请日为2018年06月15日,专利名称为“机器人定位方法、机器人及存储介质”的专利申请的分案申请。
技术领域
2.本技术涉及人工智能技术领域,尤其涉及一种机器人定位方法、机器人及存储介质。
背景技术:
3.随着人工智能技术的发展,机器人逐渐进入人们的日常生活,给人们的生活带来极大的便利。不管是什么类型的机器人,只要自主移动,就需要在其所处的环境中进行导航定位。
4.在现有技术中,机器人可借助即时定位与地图构建(simultaneous localization and mapping,slam)技术实现自主定位和导航。然而,在机器人进行slam过程中,有时可能会被劫持等状况,例如机器人被搬动、悬空或被大范围拖动等。当机器人重新回到地面时,定位会出现不可控的漂移误差,机器人需要重新定位。
5.现有定位技术,一般根据机器人采集到的周围环境信息构建临时地图,将临时地图与已有环境地图进行比较,以确定机器人在已有环境地图中的位姿。但是,在一些情况下,现有定位技术无法准确定位出机器人的位姿。
技术实现要素:
6.本技术的多个方面提供一种机器人定位方法、机器人及存储介质,用以实现对机器人的位姿的准确定位,提高定位准确度。
7.本技术实施例提供一种机器人定位方法,包括:
8.在定位过程中,机器人从当前位置向第二位置移动;
9.获取所述移动过程中的环境信息;
10.将所述移动过程中的环境信息与所述机器人存储的环境地图进行比对,以定位所述机器人在存储的环境地图中的位姿
11.本技术实施例还提供一种机器人,包括:机械本体,所述机械本体上设有一个或多个传感器、一个或多个处理器,以及一个或多个存储计算机指令的存储器;
12.所述一个或多个存储器,用于存储计算机程序以及环境地图;
13.所述一个或多个处理器,用于执行所述计算机指令,以用于:
14.在定位过程中,控制所述机器人从当前位置向第二位置移动;
15.通过所述一个或多个传感器获取所述移动过程中的环境信息;
16.将所述移动过程中的环境信息与所述一个或多个存储器存储的环境地图进行比对,以定位所述机器人在存储的环境地图中的位姿。
17.本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算
机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:
18.在定位过程中,控制机器人从当前位置向第二位置移动;
19.获取所述移动过程中的环境信息;
20.将所述移动过程中的环境信息与存储的环境地图进行比对,以定位所述机器人在存储的环境地图中的位姿。
21.在本技术实施例中,在定位的过程中,机器人可以从当前位置向新位置移动,在移动过程中可获取更多的环境信息,进而基于获取的环境信息与机器人存储的环境地图进行比对,有利于成功定位出机器人在存储的环境地图中的位姿。另外,机器人移动定位,不同位置的环境信息一般不同,有利于将类似的区域环境区分开,可以克服机器人待在原地定位时可能因存在多个类似的区域环境而无法获得准确位姿的问题。
附图说明
[0022][0023]
此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
[0024]
图1a为本技术一示例性实施例提供的一种机器人的硬件结构框图;
[0025]
图1b为本技术一示例性实施例提供的一种人形机器人的线条图;
[0026]
图1c为本技术一示例性实施例提供的一种非人形机器人的线条图;
[0027]
图1d为本技术一示例性实施例提供的一种环境地图的示意图;
[0028]
图1e为图1d中所提供的环境地图的可通过边界的示意图;
[0029]
图1f为对图1e中所提供的可通过边界进行边界优化处理后得到的可通过边界的示意图;
[0030]
图1g为从图1f中所提供的优化后可通过边界选择目标边界和规划出的导航路径的示意图;
[0031]
图2为本技术一实施例提供的一种机器人定位方法的流程示意图。
具体实施方式
[0032]
为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0033]
针对现有机器人定位存在的准确度较低的技术问题,本技术实施例提供一种解决方案,基本思路是:在定位的过程中,机器人可以从当前位置向新位置移动,在移动中可获取更多的环境信息,进而基于获取的环境信息与机器人存储的环境地图进行比对,有利于成功定位出机器人在存储的环境地图中的位姿。另外,机器人移动定位,不同位置的环境信息一般不同,有利于将类似的区域环境区分开,可以克服机器人待在原地定位时可能因存在多个类似的区域环境而无法获得准确位姿的问题。
[0034]
以下结合附图,详细说明本技术各实施例提供的技术方案。
[0035]
图1a为本技术一示例性实施例提供的一种机器人的硬件结构框图。如图1a所示,
该机器人100包括:机械本体101;机械本体101上设有一个或多个处理器102和一个或多个存储计算机指令的存储器103。除此之外,机械本体101上还设有一个或多个传感器104。
[0036]
值得说明的是,一个或多个处理器102、一个或多个存储器103、一个或多个传感器104可设置于机械本体101内部,也可以设置于机械本体101的表面。
[0037]
机械本体101是机器人100的执行机构,可以在确定的环境中执行处理器102指定的操作。其中,机械本体101一定程度上体现了机器人100的外观形态。在本实施例中,并不限定机器人100的外观形态。例如,机器人100可以是图1b所示的人形机器人,则机械本体101可以包括但不限于:机器人的头部、手部、腕部、臂部、腰部和基座等机械结构。另外,机器人100也可以是图1c所示形态相对简单一些的非人形机器人,则机械本体101主要是指机器人100的机身。
[0038]
值得说明的是,机械本体101上还设置有机器人100的一些基本组件,例如驱动组件、里程计、电源组件、音频组件等等。可选地,驱动组件可以包括驱动轮、驱动电机、万向轮等。不同机器人100所包含的这些基本组件以及基本组件的构成均会有所不同,本技术实施例列举的仅是部分示例。
[0039]
一个或多个存储器103,主要用于存储一个或多个计算机指令,这些计算机指令可被一个或多个处理器102执行,致使一个或多个处理器102控制机器人100实现相应功能、完成相应动作或任务。除了存储计算机指令之外,一个或多个存储器103还可被配置为存储其它各种数据以支持在机器人100上的操作。这些数据的示例包括用于在机器人100上操作的任何应用程序或方法的指令,机器人100所处环境对应的环境地图。其中,环境地图可以是预先存储的整个环境对应的一幅或多幅地图,或者也可以是之前正在构建的部分地图。
[0040]
一个或多个存储器103,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0041]
一个或多个处理器102,可以看作是机器人100的控制系统,可用于执行一个或多个存储器103中存储的计算机指令,以控制机器人100实现相应功能、完成相应动作或任务。值得说明的是,机器人100处于不同场景时,其所需实现的功能、完成的动作或任务会有所不同;相应地,一个或多个存储器103中存储的计算机指令也会有所不同,而一个或多个处理器102执行不同计算机指令可控制机器人100实现不同的功能、完成不同的动作或任务。
[0042]
在本实施例中,机器人100可自主移动,并可在自主移动的基础上完成一定作业任务。例如,在超市、商场等购物场景中,购物车机器人需要跟随顾客移动,以容纳顾客选购的商品。又例如,在一些公司的仓储分拣场景中,分拣机器人需要跟随分拣人员移动到货架拣货区,然后开始分拣订单货物。又例如,在家庭清扫场景中,扫地机器人需要清扫客厅、卧室、厨房等区域。在这些应用场景中,机器人100需要移动。对于需要移动并且可移动的机器人100来说,在其所处环境中实现导航定位是基本功能。则,在机器人自主移动场景中,一个或多个存储器103中存储的计算机指令被一个或多个处理器102执行时能够致使处理器102控制机器人100实现与自主移动相关的功能,例如导航定位、重定位等。
[0043]
在本实施例中,机器人100上的一个或多个传感器104可辅助完成机器人100的导航定位和重定位等。其中,一个或多个传感器104可以包括视觉传感器、激光传感器、接触传
感器、反射光耦合器以及惯性传感器等,但不限于此。
[0044]
其中,视觉传感器可以看作是机器人100的“眼睛”,主要用于采集机器人100周围环境的图像,这些图像可称为环境图像。视觉传感器可以采用任何具有图像采集功能的设备实现,例如可以采用摄像头、照相机等。
[0045]
其中,激光传感器是一种以发射激光束的方式采集机器人100周围的环境信息的雷达系统。激光传感器采集到的环境数据可以包括但不限于:机器人100周围对象的距离、角度等。激光传感器可以采用任何能够发射激光光束的设备实现,例如可以采用激光雷达。
[0046]
在正常情况下,机器人100可以根据激光传感器或视觉传感器采集到的环境信息和一个或多个存储器103中存储的已有环境地图进行导航定位。但是,在实际应用中,机器人100可能发生劫持的状况,例如被搬动、悬空或被大范围拖动等。在这些情况下,机器人100可能会缺少或丢失之前的位置信息,因此需要重新确定机器人的当前位姿,即重定位。
[0047]
接触传感器、反射光耦合器以及惯性传感器可用于检测机器人100在使用过程中,是否发生上述被劫持的状况。例如,机器人100的基座的底部或者滚轮上可以设置接触传感器,接触传感器用于在一个或多个处理器102的控制下检测机器人100是否被搬动和悬空,还可用于确定机器人100是否重新回到地面。或者,在机器人100的底部安装反射光耦合器,反射光耦合器发射一可以从地面反射回来的光束,通过这个光束可以检测机器人100被搬动或悬空以及随后放回地面的操作。当接触传感器或反射光耦合器检测到机器人100被重新放回地面时,触发一个或多个处理器102启动重定位功能。又例如,在机器人100的机械本体101上安装惯性传感器,例如加速度传感器等,用以检测机器人100是否被大范围拖动,进而在停止对机器人100进行拖动时,触发一个或多个处理器102启动重新定位功能。
[0048]
在本实施例中,机器人100存储其所处环境对应的环境地图。在定位过程中,机器人100从当前位置向第二位置移动,通过一个或多个传感器104获取移动过程中的环境信息,将移动过程的环境信息与机器人100存储的环境地图进行比对,以定位机器人100在存储的环境地图中的位姿。这里的位姿包括机器人100的位置和朝向。
[0049]
可选地,环境地图可以包括视觉地图和栅格地图中的至少一个。其中,视觉地图是预先基于视觉传感器采集的环境图像构建的,该视觉地图可在一定程度上描述机器人100所处的区域环境,主要存储有与机器人100所处环境相关的若干环境图像的信息,例如环境图像对应的机器人位姿、环境图像包含的特征点以及特征点的描述子等。栅格地图是预先基于激光传感器采集到的环境数据构建的,该栅格地图是对存储机器人100所处区域环境数字栅格化的产物。栅格地图中的每个栅格与机器人100所处环境中的一个小块区域对应,每个栅格包含了坐标、是否被障碍物占用两类基本信息,栅格被占据的概率值表示对应区域的环境信息。栅格地图中栅格数量越多,栅格地图对机器人100所处环境的描述也就越详细,相应地,基于该栅格地图的定位精度也就越高。
[0050]
若上述一个或多个传感器104包括视觉传感器,则视觉传感器可以在机器人100向第二位置移动过程采集环境图像,相应地,一个或多个存储器103中存储的环境地图包括视觉地图,则可根据视觉传感器在机器人100向第二位置移动过程中采集环境图像和视觉地图对机器人100进行定位。
[0051]
若上述一个或多个传感器104包括激光传感器,则激光传感器可以在机器人100向第二位置移动过程中采集环境数据,相应地,一个或多个存储器103中存储的环境地图包括
栅格地图,则可根据激光传感器在机器人100向第二位置移动过程采集的环境数据和栅格地图对机器人100进行定位。
[0052]
若上述一个或多个传感器104包括视觉传感器和激光传感器,则视觉传感器可在机器人100向第二位置移动过程采集环境图像和激光传感器可在机器人100向第二位置移动过程中采集环境数据,相应地,一个或多个存储器103中存储的环境地图包括区域视觉地图和区域栅格地图,可以联合视觉传感器在机器人100向第二位置移动过程采集的环境图像、视觉地图、激光传感器在机器人100向第二位置移动过程采集的环境数据和栅格地图对机器人100进行定位。
[0053]
为了便于描述,在下述实施例中,将视觉传感器在机器人100向第二位置移动过程采集的环境图像和激光传感器在机器人100向第二位置移动过程采集的环境数据,统一称为移动过程中的环境信息。
[0054]
在本实施例中,在定位过程中,机器人可以从当前位置向新位置移动,在移动过程中可获取更多的环境信息,进而基于获得的环境信息与机器人存储的环境地图进行比对,有利于成功定位出机器人在存储的环境地图中的位姿。另外,机器人移动定位,不同位置的环境信息一般不同,有利于将类似的区域环境区分开,可以克服机器人待在原地定位时可能因存在多个类似的区域环境而无法获得准确位姿的问题。
[0055]
在一些可选实施例中,在确定需要定位时,机器人100可以首先通过一个或多个传感器104采集当前位置的环境信息,然后,将当前位置的环境信息与存储的环境地图进行比对,以确定机器人100在存储的环境地图中的位姿。如果此次比对结果不满足设定的比对要求,则一个或多个处理器102可以根据机器人当前位置的环境信息,选择与当前位置不同的位置作为第二位置并执行后续操作,以便在向第二位置移动过程中继续对机器人进行定位。反之,如果此次比对结果满足设定的比对要求,则无需执行后续定位操作。
[0056]
可选地,可以预先设定比对要求,例如,可以预先设定采集到当前位置的环境信息与存储的环境地图的匹配率阈值,若二者的匹配率达到设定的匹配率阈值,则认为比对的结果满足设定的比对要求;若二者的匹配率小于设定的匹配率阈值,则认为比对的结果不满足设定的比对要求。
[0057]
在该可选实施例中,首先,机器人100待在原地进行定位,若定位出机器人100的位姿,则无需执行后续定位操作;反之,在机器人100可以向第二位置移动并基于移动过程中的环境信息继续进行定位,这不仅可提高机器人100定位的效率,而且在机器人100待在原地无法定位出其位姿时,向第二位置移动并基于移动过程中的环境信息继续进行定位,可保证成功地、准确地定位出机器人100的位姿。
[0058]
在另一可选实施例中,在确定需要定位时,机器人100可以直接通过一个或多个传感器104采集其当前位置的环境信息,然后根据采集到的当前位置的环境信息,选择与当前位置不同的位置作为第二位置,并向第二位置移动,获取移动过程中的环境信息,将移动过程中的环境信息与一个或多个存储器103中存储的环境地图进行比对,以定位机器人100在存储的环境地图中的位姿。在该方式中,跳过机器人100待在原地进行定位的过程,机器人100直接向第二位置移动,根据移动过程中的环境信息进行定位,适用于机器人100在初始位置时不利于定位的场景。
[0059]
在本技术实施例中,可以随机选择与当前位置不同的另一位置,作为第二位置。当
然,一个或多个处理器102也可以采用其它方式选择与当前位置不同的另一位置,作为第二位置。例如,可以基于机器人100当前位置的环境信息,确定当前位置周围的至少一个可通过边界;从至少一个可通过边界中选择目标边界,根据目标边界确定第二位置。
[0060]
下面将结合图1d所示环境的栅格地图,对一个或多个处理器102选择与机器人100当前位置不同的第二位置的一种实施方式进行示例性说明。
[0061]
首先,对图1d所示的栅格地图a进行说明。如图1d所示,栅格地图a包含2部分:机器人100当前位置所属局部区域对应的局部栅格地图b和未知区域对应的局部栅格地图c。另外,如图1d所示,根据机器人100当前位置所属局部区域和未知区域的相交边界上是否存在障碍物遮挡,将机器人100当前位置所属的局部区域和未知区域的相交边界划分为存在障碍物遮挡的边界和无障碍物遮挡的边界。为便于描述,将存在障碍物遮挡的边界简称为障碍物边界d,将无障碍物遮挡的边界简称为可通过边界e。例如,栅格地图a为某酒店的环境地图,机器人100当前所处环境区域为酒店的某个房间,则未知区域可为酒店的大厅或者走廊等,障碍物边界d为机器人100所在房间的墙壁,可通过边界e为机器人100所在房间的门。
[0062]
基于图1d所示的栅格地图a,一个或多个处理器102可基于机器人100当前位置的环境信息,确定机器人100当前在栅格地图a中的大概范围,即局部栅格地图b,基于局部栅格地图b确定机器人100当前位置周围的至少一个可通过边界e,如图1e所示;从至少一个可通过边界e中选择出目标边界e1,之后,根据目标边界e1确定第二位置。
[0063]
可选地,一个或多个处理器102在根据目标边界e1确定第二位置时,可以随机选择目标边界e1上的任一位置,作为第二位置;也可以随机选择目标边界e1之外的环境区域中的任一位置,作为第二位置。其中,目标边界e1之外的环境区域可为未知区域c的全部区域,也可为未知区域c的部分区域,目标边界e1之外的环境区域的大小可根据实际应用场景而定,在此不做限定。
[0064]
可选地,一个或多个处理器102在选择目标边界e1时,可以随机从至少一个可通过边界e中选择一个作为目标边界e1;或者,也可以按照一定的算法或策略,从至少一个可通过边界e中选择一个可通过边界作为目标边界e1。
[0065]
下面对一个或多个处理器102从至少一个可通过边界e中选择出目标边界e1的一些可选实施方式进行示例性说明。
[0066]
在一可选实施例中,一个或多个处理器102在选择目标边界e1时,可以对至少一个可通过边界e进行边界优化处理,得到至少一个优化后的可通过边界如图1f所示;然后,根据每个优化后的可通过边界的尺寸以及每个优化后的可通过边界与机器人100当前所在位置p之间的距离,从至少一个优化后的可通过边界中选择出目标边界e1,如图1g所示。可选地,针对每个优化后的可通过边界可根据该优化后的可通过边界的端点确定该优化后的可通过边界的尺寸,并计算该优化后的可通过边界到机器人100当前所在位置p的距离。
[0067]
可选地,上述对至少一个可通过边界e进行边界优化处理可以采用以下方法中的至少一种:
[0068]
方法1:采用边界滤波的方法对至少一个可通过边界e进行边界优化处理。可选地,
边界滤波方法可以采用均值滤波、高斯滤波、中值滤波、双边滤波等,但不限于此。这些滤波方法均为本领域的公知技术,此处不再赘述。
[0069]
方式2:采用膨胀收缩的方法对至少一个可通过边界e进行边界优化处理。其中,膨胀算法主要是将与可通过边界e接触的背景点合并到可通过边界e中,使可通过边界e向外部扩张的过程,可以用来填充可通过边界e中的空洞。收缩算法,也成为腐蚀算法,主要是消除可通过边界e上比较离散的边界点,使可通过边界e向内部收缩的过程,可以用来消除可通过边界e中小且无意义的边界点。
[0070]
采用上述边界滤波方法或者膨胀收缩方法或者将两种方法结合起来,对至少一个可通过边界e进行边界优化处理,可对至少一个可通过边界e进行平滑处理,消除可通过边界e上的噪声,同时可滤除可通过边界e中的小且无意义的边界,这样优化后的可通过边界的个数相较于优化前的可通过边界e的数量可能会有所减少,这样可减小后续确定优化后的可通过边界的尺寸和计算优化后的可通过边界与机器人100当前所在位置的距离时的计算量,有利于缩短确定目标边界e1的时间,进而提高定位效率。
[0071]
进一步,可以预设一长度阈值,基于此,可以从上述优化后的可通过边界中选择出尺寸大于该长度阈值的边界,为便于描述,将这些尺寸大于长度阈值的边界定义为第一可通过边界。基于第一可通过边界,上述从优化后的可通过边界中选择出目标边界e1可以采用以下实施方式:
[0072]
实施方式1:当第一可通过边界的个数为1个时,将该第一可通过边界确定为目标边界e1。
[0073]
实施方式2:当第一可通过边界的个数大于2,且第一可通过边界与机器人100当前所在位置p之间的距离不完全相等时,将第一可通过边界中距离机器人100当前所在位置p最近的边界确定目标边界e1。
[0074]
实施方式3:当第一可通过边界的个数大于2,且第一可通过边界与机器人100当前所在位置p之间的距离均相等时,确定第一通过边界中尺寸最大的边界为目标边界e1。
[0075]
需要说明的是,上述长度阈值可以根据机器人100所在的应用场景进行灵活设置。例如,若机器人100为家用的扫地机器人,长度阈值可以为门的宽度;又例如,若机器人100为超市所用的购物车机器人,长度阈值可以为相邻货架之间的宽度等。
[0076]
进一步,在机器人100从其当前所在位置处p向第二位置移动的途中,一般会存在一些障碍物,例如房间中摆放的桌椅、家用电器等。基于此,至少一个或多个处理器102在控制机器人100从其当前所处环境区域向目标环境区域移动时,可以根据机器人100与第二位置之间的相对位置关系和环境信息,规划导航路径,如图1g所示;之后,控制机器人100沿着图1g所示的规划好的导航路径从机器人100当前所在位置p向第二位置移动。这样,机器人可绕开向第二位置移动途中的障碍物,便于机器人顺利向第二位置移动。
[0077]
在另一可选实施例中,一个或多个处理器102在选择目标边界e1时,可以对至少一个可通过边界e进行边界优化处理,得到至少一个优化后的可通过边界如图1f所示;根据机器人与至少一个优化后的可通过边界之间的相对位置关系和环境信息,规划到至少一个优化后的可通过边界的导航路径;根据到至少一个优化后的可通过边界的导航路径,从至少一个优化后的可通过边界选择所述目标边界。
[0078]
结合上述实施方式2和实施方式3,当第一可通过边界的个数大于2时,可以先根据机器人100与每个第一可通过边界之间的相对位置关系和环境信息,规划机器人100从当前位置p移动到每个第一可通过边界的导航路径,并根据到每个第一可通过边界的导航路径,从第一可通过边界中选择出目标边界e1。优选地,可选择各导航路径中最短的导航路径所对应的第一可通过边界作为目标边界e1。然而,当各导航路径的长度相同时,选择第一可通过边界中尺寸最大的边界为目标边界e1。
[0079]
在一些应用场景中,在机器人100沿着导航路径从其当前位置p向第二位置移动过程中,可能会有新的边界出现。例如,在一些公司的仓储分拣场景中,分拣机器人在通过两个相邻货架之间的通道(即目标边界e1)向第二位置移动过程,上述相邻的两个货架可能被搬移,此时则会出现新的边界。
[0080]
基于上述应用场景,在机器人100沿着导航路径从其当前位置向第二位置移动的过程中,一个或多个处理器102可结合一个或多个传感器104监测机器人100当前位置周围是否有新的可通过边界出现;当监测到有新的可通过边界出现,且新的可通过边界可以作为新的目标边界时,根据新的目标边界重新确定第二位置。之后,可重新规划机器人100从其当前位置处前往新的第二位置的新的导航路径;并控制机器人100沿着新的导航路径从其当前所在位置向新的第二位置移动。其中,根据新的目标边界重新确定第二位置的实施方式可参见上述实施例中确定第二位置的相关描述,此处不再赘述。
[0081]
可选地,一个或多个处理器102可以根据新的可通过边界的尺寸和新的可通过边界与机器人100当前所在位置之间的距离,判断新的可通过边界是否能作为新的目标边界。若新的可通过边界的尺寸大于上述目标边界e1,且与机器人100当前所在位置之间的距离比上述目标边界e1要近,则确定新的可通过边界为新的目标边界。否则,则确定新的可通过边界不能作为新的目标边界,控制机器人100沿着原导航路径继续向原来的第二位置移动。
[0082]
进一步,需要说明的是,在上述确定新的目标边界时,可以对新的可通过边界进行边界优化处理,其优化处理过程可参见上述实施例中方法1和方法2的描述,此处不再赘述。
[0083]
在另一些应用场景中,在机器人100沿着导航路径从其当前位置p向第二位置移动过程中,目标边界e1可能消失,例如,在一些公司的仓储分拣场景中,分拣机器人在通过两个相邻货架之间的通道(即目标边界e1)向第二位置移动过程中,该通道有可能被临时阻挡,即目标边界e1消失。
[0084]
基于上述应用场景,在机器人100沿着导航路径从其当前位置向第二位置移动的过程中,一个或多个处理器102可结合一个或多个传感器104监测目标边界e1的存在状态;当监测到目标边界e1消失时,根据机器人100当前位置的环境信息,从当前位置周围存在的可通过边界中选择新的目标边界,并根据新的目标边界重新确定第二位置;之后,重新规划机器人100从当前位置前往新的第二位置的新的导航路径;并控制机器人100沿着新的导航路径从当前位置向新的第二位置移动。其中,确定新的目标边界以及根据新的目标边界重新确定第二位置的实施方式可参见上述实施例中确定第二位置的相关描述,此处不再赘述。
[0085]
在上述或下述实施例中,一个或多个处理器102可根据机器人当前位置的环境信息,规划到第二位置的导航路径;进而控制机器人沿到第二位置的导航路径向第二位置移动。其中,所采用的路径规划算法包括但不局限于:d*算法、a*算法等,均属于本领域的公知
技术,此处不再赘述。
[0086]
在机器人沿到第二位置的导航路径向第二位置移动过程中,可以获取移动过程中的环境信息,并将所获取的移动过程中的环境信息与存储的环境地图进行对比,以定位机器人在存储的环境地图中的位姿。可选地,可以在机器人沿到第二位置的导航路径向第二位置移动过程中,将所获取的移动过程中的环境信息与存储的环境地图进行至少一次比对,以定位机器人在存储的环境地图中的位姿。
[0087]
例如,可以在机器人到达第二位置后,将所获取的移动过程中的环境信息与存储的环境地图进行一次比对,以定位机器人在存储的环境地图中的位姿。
[0088]
又例如,可以预设定位周期,并启动一个定时器或计数器对该定位周期进行计时。这样,在机器人沿到第二位置的导航路径向第二位置移动过程中,可以在每个定位周期到达时将所获取的移动过程中的环境信息与存储的环境地图进行一次比对,以定位机器人在存储的环境地图中的位姿。这种边移动边定位的方式,不仅有利于提高定位的准确度,而且还可以即时进行定位,提高定位效率。
[0089]
在本技术实施例中,不管采用哪种实施方式确定第二位置,都需要将所获取的移动过程中的环境信息与存储的环境地图进行对比。一种比对方式可以为:根据所获取的移动过程中的环境信息,构建临时地图;并将所构建的临时地图和存储的环境地图进行比对,以确定机器人在存储的环境地图中的位姿。
[0090]
进一步,将所构建的临时地图和存储的环境地图进行比对,以确定机器人在存储的环境地图中的位姿的一种可选实施方式为:基于匹配算法,将所构建的临时地图在存储的环境地图上遍历每种位姿,比如栅格大小为5cm,可以选择5cm的步长,对临时地图,覆盖存储的环境地图中可能的位姿,再对角度步长取5度,包含所有的位姿中的朝向参数。当临时地图上的表示障碍物的栅格命中存储的环境地图上表示障碍物的栅格时,则加分,将得分最高的位姿确定为全局最优解的位姿;之后,计算该全局最优解位姿的匹配率,并当全局最优解的位姿的匹配率大于预设的匹配率阈值时,将该全局最优解位姿确定为机器人的位姿。
[0091]
可选地,当所获取的移动过程中的环境信息多于设定的环境信息阈值时,所构建的临时地图可采用多层复合分辨率地图;并将存储的环境地图处理成相应层数的复合分辨率地图;之后,将所构建的多层复合分辨率地图与存储的环境地图对应的复合分辨率地图进行逐层匹配。相应地,当所获取的移动过程中的环境信息少于设定的环境信息阈值时,所构建的临时地图可采用单层分辨率地图,这样,可提高匹配完成效率。
[0092]
可选地,当对所构建的多层复合分辨率地图中的最底层分辨率地图与存储的环境地图对应的复合分辨率地图中的最底层分辨率地图进行匹配时,可采用icp算法对其进行匹配。这样,可减小地图匹配的运算量,提高匹配完成效率。
[0093]
可选地,还可以预设一距离阈值和时间阈值,当机器人100在移动时,可以记录机器人100移动的距离和时间,当机器人100移动的移动时间大于时间阈值且移动距离大于距离阈值时,确定机器人100不在存储的环境地图内。
[0094]
在本技术上述实施例中,描述了机器人100定位的过程。根据应用场景的多样性,需要机器人100定位的情况可能有多种。下面举例说明:
[0095]
在应用场景1中,本技术各实施例的机器人具体为扫地机器人。用户使用扫地机器
人执行清扫任务,每次清扫任务需要清扫的区域具有随机性,例如可能是客厅、厨房、或者也可能是卧室。另外,为了节约扫地机器人的电力,每次清扫任务结束后,扫地机器人可自动关闭。这样,每次需要扫地机器人执行清扫任务时,用户可以将扫地机器人搬到待清扫区域,并通过触控、声音或物理按钮等方式重新启动扫地机器人。此时,由于重新启动,扫地机器人之前的位置信息已经丢失,扫地机器人需要重定位,以确定其在当前待清扫区域中的位置,以便于能够顺利执行清扫任务。
[0096]
但是有时待清扫区域的环境信息不具有自明性,即房间的布置可能完全一样,例如酒店的每间卧室的大小、装潢、陈列等几乎一样。当扫地机器人在某一房间利用该房间的信息进行重定位时,无法区分出到底位于哪个房间,以致无法准确定位出当前位姿。这样,扫地机器人在定位过程中,选择与当前位置不同的第二位置,该目标环境区域可以为当前所在房间的任一位置或者酒店走廊、大堂等的任一位置,并从当前位置向第二位置移动;并获取移动过程中的环境信息,并将所获取的移动过程中的环境信息和存储的酒店的环境地图进行比对,以定位出机器人在酒店环境地图中的位姿。
[0097]
在应用场景2中,本技术各实施例的机器人具体在商场、超市等购物场所使用导购机器人或购物车机器人。导购机器人在商场或超市中跟随客人,为客人介绍产品。若导购机器人的传感器突然故障,或者因为导购机器人移动速度过快,导致丢失之前的位置信息。为了便于能够以正确地方式继续为客人服务,导购机器人需要启动重定位,以便于重新定位其在商场或超市中的位置。
[0098]
但是,导购机器人在当前所在的环境区域的布置相较于之前已有环境地图有可能发生变化,例如商场或超市进行了重新装修或者货架陈列发生变化,此时导购机器人无法正确定位出当前位姿。这样,导购机器人在定位过程中,选择与其当前位置不同的第二位置,例如,商场中的大堂等中的任一位置,并从当前位置向第二位置移动;在获取移动过程中的环境信息,并将所获取的移动过程中的环境信息和存储的商场环境地图进行对比,以定位出导购机器人在商场环境地图中的位姿。
[0099]
在应用场景3中,无论是何种机器人,在完成相应任务过程中,都需要自主移动,在移动过程中就离不开导航定位。在机器人导航过程中,对导航定位精度有一定要求,若导航定位的精度不能满足导航需求,需要触发重定位,以便重定位后能够继续进行导航定位。
[0100]
在应用场景3中,机器人在自主移动过程中,可以获取移动过程中的环境信息,并在每一个定位周期到来时,将之前获取的环境信息和存储的环境地图进行比对,以定位出机器人在存储的环境地图中的位姿。
[0101]
值得说明的是,本技术实施例提供的机器人还可以根据通信需求与其它机器人建立通信连接。其中,两台机器人之间可以是无线或有线连接。例如,机器人上可以设置wifi、蓝牙、红外等无线通信模块,这样两台机器人可以采用wifi、蓝牙、红外等通信方式建立通信连接。除此之外,机器人上设置sim卡,这样两台机器人还可以通过移动网络建立通信连接,该移动网络的网络制式可以为2g(gsm)、2.5g(gprs)、3g(wcdma、td-scdma、cdma2000、utms)、4g(lte)、4g+(lte+)、wimax等中的任意一种。当然,两台机器人也可以服务器建立远程通信连接。
[0102]
基于上述,当需要更换新的机器人,或者,需要在当前环境中增加新的机器人时,或者根据需求将在其它环境工作的机器人调度到该环境区域时,为便于新的机器人能够快
速在当前环境中开始工作,原来的机器人可以与新机器人建立通信连接,并通过该通信连接将所存储的环境地图发送给新的机器人,当然,也可以将已获取的移动过程中的环境信息等发送给新的机器人,做到环境地图以及环境信息等在不同机器人之间的移植,实现信息共享,这样新的机器人无需重新创建环境地图,可以直接根据接收到的环境地图进行自动定位和导航,从而使得新的机器人快速的定位在该环境地图中的位置,以便快速进入工作状态。
[0103]
对新的机器人来说,可以接收原来机器人发送的环境地图,并将环境地图存储在自己的存储器中;当然,也可以接收原来机器人发送的在其移动过程中所获取的环境信息并存储在自己的存储器中。之后,在需要定位时,可以从当前位置向第二位置移动,并在移动过程中获取环境信息,将获取的移动过程中的环境信息和存储的环境地图进行对比,以定位其在存储的环境地图的位姿。
[0104]
进一步,新的机器人在从当前位置向第二位置移动之前,也可以获取当前位置的环境信息,将当前位置的环境信息和存储的环境地图进行对比,以定位其在存储的环境地图的位姿。若比对的结果满足设定的比对要求,则根据定位结果执行其他操作。若比对的结果不满足设定的比对要求,则可以从当前位置向第二位置移动,获取移动过程中的环境信息,将移动过程中的环境信息和存储的环境地图进行对比,以定位其在存储的环境地图的位姿,可以不断移动,直到定位出其在存储的环境地图的位姿为止。关于新的机器人的定位过程可参见前述或下述实施例的描述,在此不做详述。
[0105]
值得说明的是,原来的机器人除了将所存储的环境地图、已获取的环境信息发送给新的机器人之外,也可以将已经积累的其它数据发送给新的机器人,以便新的机器人能够直接根据原来的机器人积累的经验数据开始工作。例如:新的机器人可以从原来的机器人获得所处的环境地图的清扫信息,即已经清扫过的区域和未进行清扫的区域信息,并根据该清扫信息在未进行清扫的区域开始清扫作业。新的机器人和原来的机器人快速的进入协同工作状态,避免新的机器人在原来机器人已经清扫过得区域进行清扫,可以提高对于所处的环境的清扫效率。也值得说明的是,可以将上述原来的机器人称为第一机器人,将新的机器人称为第二机器人。
[0106]
除上述机器人之外,本技术一些示例性实施例还提供一些机器人重定位方法。下面结合附图对这些方法进行详细描述。
[0107]
图2为本技术一示例性实施例提供的一种机器人定位方法的流程示意图。如图2所示,该方法包括:
[0108]
201、在定位过程中,机器人从当前位置向第二位置移动。
[0109]
202、获取所述移动过程中的环境信息。
[0110]
203、将移动过程中的环境信息与机器人存储的环境地图进行比对,以定位机器人在存储的环境地图中的位姿。
[0111]
本实施例提供的方法可应用于可自主移动的机器人,主要用于对机器人进行定位,即确定机器人在环境地图中的初始位置。本实施例并不限定机器人的形状,例如可以是圆形、椭圆形、三角形、凸多边形、人型等。其中,机器人可以通过安装软件、app,或者在相应器件中写入程序代码来实现本实施例提供的机器人定位方法的逻辑。
[0112]
在本实施例中,机器人可自主移动,在移动过程中需要进行导航定位。在实际应用
中,机器人可能发生被劫持的状况,例如被搬动、悬空或被大范围拖动等。在这些情况下,机器人可能会缺少或丢失之前的位置信息,因此需要重新确定机器人的当前位姿。
[0113]
在本实施例中,机器人存储其所处环境对应的环境地图。在定位过程中,机器人从当前位置向第二位置移动,并获取移动过程中的环境信息,将移动过程的环境信息与机器人存储的环境地图进行比对,以定位机器人在存储的环境地图中的位姿。这里的位姿包括机器人的位置和朝向。
[0114]
可选地,环境地图可以包括视觉地图和栅格地图中的至少一个。其中,视觉地图是预先基于视觉传感器采集的环境图像构建的,该视觉地图可在一定程度上描述机器人所处的区域环境,主要存储有与机器人所处环境相关的若干环境图像的信息,例如环境图像对应的机器人位姿、环境图像包含的特征点以及特征点的描述子等。栅格地图是预先基于激光传感器采集到的环境数据构建的,该栅格地图是对存储机器人所处区域环境数字栅格化的产物。栅格地图中的每个栅格与机器人所处环境中的一个小块区域对应,每个栅格包含了坐标、是否被障碍物占用两类基本信息,栅格被占据的概率值表示对应区域的环境信息。栅格地图中栅格数量越多,栅格地图对机器人所处环境的描述也就越详细,相应地,基于该栅格地图的定位精度也就越高。
[0115]
若上述机器人上的传感器包括视觉传感器,则视觉传感器可以在机器人向第二位置移动过程采集环境图像,相应地,机器人存储的环境地图包括视觉地图,则可根据视觉传感器在机器人向第二位置移动过程中采集环境图像和视觉地图对机器人进行定位。
[0116]
若上述机器人上的传感器包括激光传感器,则激光传感器可以在机器人向第二位置移动过程中采集环境数据,相应地,机器人存储的环境地图包括栅格地图,则可根据激光传感器在机器人向第二位置移动过程采集的环境数据和栅格地图对机器人进行定位。
[0117]
若上述机器人上的传感器包括视觉传感器和激光传感器,则视觉传感器可在机器人向第二位置移动过程采集环境图像和激光传感器可在机器人向第二位置移动过程中采集环境数据,相应地,机器人存储的环境地图包括区域视觉地图和区域栅格地图,可以联合视觉传感器在机器人向第二位置移动过程采集的环境图像、视觉地图、激光传感器在机器人向第二位置移动过程采集的环境数据和栅格地图对机器人进行定位。
[0118]
为了便于描述,在下述实施例中,将视觉传感器在机器人向第二位置移动过程采集的环境图像和激光传感器在机器人向第二位置移动过程采集的环境数据,统一称为移动过程中的环境信息。
[0119]
在本实施例中,在定位过程中,机器人可以从当前位置向新位置移动,在移动过程中可获取更多的环境信息,进而基于获得的环境信息与机器人存储的环境地图进行比对,有利于成功定位出机器人在存储的环境地图中的位姿。另外,机器人移动定位,不同位置的环境信息一般不同,有利于将类似的区域环境区分开,可以克服机器人待在原地定位时可能因存在多个类似的区域环境而无法获得准确位姿的问题。
[0120]
在一些可选实施例中,在步骤201之前,在确定需要定位时,机器人可以首先采集当前位置的环境信息,然后,将当前位置的环境信息与存储的环境地图进行比对,以确定其在存储的环境地图中的位姿。如果此次比对结果不满足设定的比对要求,则机器人可以根据其当前位置的环境信息,选择与当前位置不同的位置作为第二位置并执行后续操作,以便在向第二位置移动过程中继续进行定位。反之,如果此次比对结果满足设定的比对要求,
则无需执行后续定位操作。
[0121]
可选地,可以预先设定比对要求,例如,可以预先设定采集到当前位置的环境信息与存储的环境地图的匹配率阈值,若二者的匹配率达到设定的匹配率阈值,则认为比对的结果满足设定的比对要求;若二者的匹配率小于设定的匹配率阈值,则认为比对的结果不满足设定的比对要求。
[0122]
在该可选实施例中,首先,机器人待在原地进行定位,若定位出机器人的位姿,则无需执行后续定位操作;反之,在机器人可以向第二位置移动并基于移动过程中的环境信息继续进行定位,这不仅可提高机器人定位的效率,而且在机器人待在原地无法定位出其位姿时,向第二位置移动并基于移动过程中的环境信息继续进行定位,可保证成功地、准确地定位出机器人的位姿。
[0123]
在另一可选实施例中,在确定需要定位时,机器人可以直接采集其当前位置的环境信息,然后根据采集到的当前位置的环境信息选择与当前位置不同的位置作为第二位置,并向第二位置移动,获取移动过程中的环境信息,将移动过程中的环境信息与存储的环境地图进行比对,以定位机器人在存储的环境地图中的位姿。在该方式中,跳过机器人待在原地进行定位的过程,机器人直接向第二位置移动,根据移动过程中的环境信息进行定位,适用于机器人在初始位置时不利于定位的场景。
[0124]
在本技术实施例中,可以随机选择与当前位置不同的另一位置,作为第二位置。当然,也可以采用其它方式选择与当前位置不同的另一位置,作为第二位置。例如,可以基于机器人当前位置的环境信息,确定当前位置周围的至少一个可通过边界;从至少一个可通过边界中选择目标边界,根据目标边界确定第二位置。
[0125]
下面将结合图1d所示环境的栅格地图,对步骤201之前,选择与机器人当前位置不同的第二位置的一种实施方式进行示例性说明。
[0126]
首先,对图1d所示的栅格地图a进行说明。如图1d所示,栅格地图a包含2部分:机器人当前位置所属局部区域对应的局部栅格地图b和未知区域对应的局部栅格地图c。另外,如图1d所示,根据机器人当前位置所属局部区域和未知区域的相交边界上是否存在障碍物遮挡,将机器人当前位置所属的局部区域和未知区域的相交边界划分为存在障碍物遮挡的边界和无障碍物遮挡的边界。为便于描述,将存在障碍物遮挡的边界简称为障碍物边界d,将无障碍物遮挡的边界简称为可通过边界e。例如,栅格地图a为某酒店的环境地图,机器人当前所处环境区域为酒店的某个房间,则未知区域可为酒店的大厅或者走廊等,障碍物边界d为机器人所在房间的墙壁,可通过边界e为机器人所在房间的门。
[0127]
基于图1d所示的栅格地图a,可基于机器人当前位置的环境信息,确定机器人当前在栅格地图a中的大概范围,即局部栅格地图b,基于局部栅格地图b确定机器人当前位置周围的至少一个可通过边界e,如图1e所示;从至少一个可通过边界e中选择出目标边界e1,之后,根据目标边界e1确定第二位置。
[0128]
可选地,在根据目标边界e1确定第二位置时,可以随机选择目标边界e1上的任一位置,作为第二位置;也可以随机选择目标边界e1之外的环境区域中的任一位置,作为第二位置。其中,目标边界e1之外的环境区域可为未知区域c的全部区域,也可为未知区域c的部分区域,目标边界e1之外的环境区域的大小可根据实际应用场景而定,在此不做限定。
[0129]
可选地,在选择目标边界e1时,可以随机从至少一个可通过边界e中选择一个作为
目标边界e1;或者,也可以按照一定的算法或策略,从至少一个可通过边界e中选择一个可通过边界作为目标边界e1。
[0130]
下面对从至少一个可通过边界e中选择出目标边界e1的一些可选实施方式进行示例性说明。
[0131]
在一可选实施例中,在选择目标边界e1时,可以对至少一个可通过边界e进行边界优化处理,得到至少一个优化后的可通过边界如图1f所示;然后,根据每个优化后的可通过边界的尺寸以及每个优化后的可通过边界与机器人当前位置p之间的距离,从至少一个优化后的可通过边界中选择出目标边界e1,如图1g所示。可选地,针对每个优化后的可通过边界可根据该优化后的可通过边界的端点确定该优化后的可通过边界的尺寸,并计算该优化后的可通过边界到机器人当前位置p的距离。
[0132]
可选地,对至少一个可通过边界e进行边界优化处理的方法及其技术效果的详细描述,可参见上述机器人实施例中方法1和方法2的相关描述,此处不再赘述。
[0133]
进一步,可以预设一长度阈值,基于此,可以从上述优化后的可通过边界中选择出尺寸大于该长度阈值的边界,为便于描述,将这些尺寸大于长度阈值的边界定义为第一可通过边界。基于第一可通过边界,从优化后的可通过边界中选择出目标边界e1的具体实施方式,可参见上述机器人实施例中对实施方式1-3的相关描述,此处不再赘述。
[0134]
进一步,在机器人从其当前所在位置处p向第二位置移动的途中,一般会存在一些障碍物,例如房间中摆放的桌椅、家用电器等。基于此,机器人在从其当前所处环境区域向目标环境区域移动时,可以根据其与第二位置之间的相对位置关系和环境信息,规划导航路径,如图1g所示;之后,机器人沿着图1g所示的规划好的导航路径从机器人当前所在位置p向第二位置移动。这样,机器人可绕开向第二位置移动途中的障碍物,便于机器人顺利向第二位置移动。
[0135]
在另一可选实施例中,在选择目标边界e1时,可以对至少一个可通过边界e进行边界优化处理,得到至少一个优化后的可通过边界如图1f所示;根据机器人与至少一个优化后的可通过边界之间的相对位置关系和环境地图,规划到至少一个优化后的可通过边界的导航路径;根据到至少一个优化后的可通过边界的导航路径,从至少一个优化后的可通过边界选择所述目标边界。
[0136]
结合上述实施方式2和实施方式3,当第一可通过边界的个数大于2时,可以先根据机器人与每个第一可通过边界之间的相对位置关系和环境信息,规划机器人从当前位置p移动到每个第一可通过边界的导航路径,并根据到每个第一可通过边界的导航路径,从第一可通过边界中选择出目标边界e1。优选地,可选择各导航路径中最短的导航路径所对应的第一可通过边界作为目标边界e1。然而,当各导航路径的长度相同时,选择第一可通过边界中尺寸最大的边界为目标边界e1。
[0137]
在一些应用场景中,在机器人沿着导航路径从其当前位置p向第二位置移动过程中,可能会有新的边界出现。例如,在一些公司的仓储分拣场景中,分拣机器人在通过两个相邻货架之间的通道(即目标边界e1)向第二位置移动过程,上述相邻的两个货架可能被搬移,此时则会出现新的边界。
[0138]
基于上述应用场景,在机器人沿着导航路径从其当前位置向第二位置移动的过程中,可监测机器人当前位置周围是否有新的可通过边界出现;当监测到有新的可通过边界出现,且新的可通过边界可以作为新的目标边界时,根据新的目标边界重新确定第二位置。之后,可重新规划机器人从其当前位置处前往新的第二位置的新的导航路径;并沿着新的导航路径从其当前所在位置向新的第二位置移动。其中,根据新的目标边界重新确定第二位置的实施方式可参见上述实施例中确定第二位置的相关描述,此处不再赘述。
[0139]
可选地,可以根据新的可通过边界的尺寸和新的可通过边界与机器人当前所在位置之间的距离,判断新的可通过边界是否能作为新的目标边界。若新的可通过边界的尺寸大于上述目标边界e1,且与机器人当前所在位置之间的距离比上述目标边界e1要近,则确定新的可通过边界为新的目标边界。否则,则确定新的可通过边界不能作为新的目标边界,机器人沿着原导航路径继续向原来的第二位置移动。
[0140]
进一步,需要说明的是,在上述确定新的目标边界时,可以对新的可通过边界进行边界优化处理,其优化处理过程可参见上述实施例中方法1和方法2的描述,此处不再赘述。
[0141]
在另一些应用场景中,在机器人沿着导航路径从其当前位置p向第二位置移动过程中,目标边界e1可能消失,例如,在一些公司的仓储分拣场景中,分拣机器人在通过两个相邻货架之间的通道(即目标边界e1)向第二位置移动过程中,该通道有可能被临时阻挡,即目标边界e1消失。
[0142]
基于上述应用场景,在机器人沿着导航路径从其当前位置向第二位置移动的过程中,可监测目标边界e1的存在状态;当监测到目标边界e1消失时,根据机器人当前位置的环境信息,从当前位置周围存在的可通过边界中选择新的目标边界,并根据新的目标边界重新确定第二位置;之后,重新规划机器人从当前位置前往新的第二位置的新的导航路径;并沿着新的导航路径从当前位置向新的第二位置移动。其中,确定新的目标边界以及根据新的目标边界重新确定第二位置的实施方式可参见上述实施例中确定第二位置的相关描述,此处不再赘述。
[0143]
在上述或下述实施例中,在步骤201中,可根据机器人当前位置的环境信息,规划到第二位置的导航路径;进而机器人沿到第二位置的导航路径向第二位置移动。其中,所采用的路径规划算法包括但不局限于:d*算法、a*算法等,均属于本领域的公知技术,此处不再赘述。
[0144]
在机器人沿到第二位置的导航路径向第二位置移动过程中,可以获取移动过程中的环境信息,并将所获取的移动过程中的环境信息与存储的环境地图进行对比,以定位机器人在存储的环境地图中的位姿。可选地,可以在机器人沿到第二位置的导航路径向第二位置移动过程中,将所获取的移动过程中的环境信息与存储的环境地图进行至少一次比对,以定位机器人在存储的环境地图中的位姿。
[0145]
例如,可以在机器人到达第二位置后,将所获取的移动过程中的环境信息与存储的环境地图进行一次比对,以定位机器人在存储的环境地图中的位姿。
[0146]
又例如,可以预设定位周期,并启动一个定时器或计数器对该定位周期进行计时。这样,在机器人沿到第二位置的导航路径向第二位置移动过程中,可以在每个定位周期到达时将所获取的移动过程中的环境信息与存储的环境地图进行一次比对,以定位机器人在存储的环境地图中的位姿。这种边移动边定位的方式,不仅有利于提高定位的准确度,而且
还可以即时进行定位,提高定位效率。
[0147]
在本技术实施例中,不管采用哪种实施方式确定第二位置,在步骤203中,需要将所获取的移动过程中的环境信息与存储的环境地图进行对比。一种比对方式可以为:根据所获取的移动过程中的环境信息,构建临时地图;并将所构建的临时地图和存储的环境地图进行比对,以确定机器人在存储的环境地图中的位姿。关于临时地图与存储的环境地图进行比对的过程,可参见前述实施例,在此不再赘述。
[0148]
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤201和202的执行主体可以为设备a;又比如,步骤201的执行主体可以为设备a,步骤202的执行主体可以为设备b;等等。
[0149]
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如201、202等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
[0150]
相应地,本技术实施例还提供一种存储有计算机指令的计算机可读存储介质,计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行包括以下的动作:
[0151]
在定位过程中,控制机器人从当前位置向第二位置移动;获取移动过程中的环境信息;将移动过程中的环境信息与机器人存储的环境地图进行比对,以定位机器人在存储的环境地图中的位姿。
[0152]
在一可选实施方式中,一个或多个处理器执行的动作还包括:获取机器人当前位置的环境信息;根据当前位置的环境信息,选择与当前位置不同的第二位置。
[0153]
在一可选实施方式中,一个或多个处理器执行的动作还包括:将机器人当前位置的环境信息与机器人存储的环境地图进行比对,以定位机器人在存储的环境地图中的位姿;若比对的结果不满足设定的比对要求,选择与当前位置不同的第二位置并执行后续操作。
[0154]
在一可选实施方式中,上述控制机器人向第二位置移动的动作包括:根据机器人当前位置的环境信息,规划到第二位置的导航路径;控制机器人沿到第二位置的导航路径向第二位置移动。相应地,上述定位机器人在存储的环境地图中的位姿的动作包括:在控制机器人沿到第二位置的导航路径向第二位置移动过程中,将移动过程中的环境信息与机器人存储的环境地图进行至少执行一次比对,以定位机器人在存储的环境地图中的位姿。
[0155]
在一可选实施方式中,上述选择第二位置的动作还包括:基于机器人当前位置的环境信息,确定当前位置周围的至少一个可通过边界;从至少一个可通过边界中选择目标边界,根据目标边界确定第二位置。
[0156]
在一可选实施方式中,上述选择目标边界的动作包括:对至少一个可通过边界进行边界优化处理,以获得至少一个优化后的可通过边界;根据机器人与至少一个优化后的可通过边界之间的相对位置关系和环境地图,规划机器人到至少一个优化后的可通过边界的导航路径;根据到至少一个优化后的可通过边界的导航路径,从至少一个优化后的可通过边界选择目标边界。
[0157]
在一可选实施方式中,一个或多个处理器选择目标边界的动作还包括:对至少一个可通过边界进行边界优化处理,以获得至少一个优化后的可通过边界;根据每个优化后的可通过边界的尺寸以及每个优化后的可通过边界与所述机器人当前位置之间的距离,从至少一个优化后的可通过边界中选择目标边界。
[0158]
在一可选实施方式中,上述确定第二位置的动作还包括:从目标边界上选择一个位置,作为第二位置;或者,从目标边界之外的环境区域中选择一个位置,作为第二位置。
[0159]
在一可选实施方式中,一个或多个处理器执行的动作还包括:在控制机器人向第二位置移动过程中,监测当前位置周围是否有新的可通过边界出现;当有新的可通过边界出现,且新出现的可通过边界符合目标边界条件时,将新出现的可通过边界作为新的目标边界,并根据新的目标边界重新确定第二位置。
[0160]
在一可选实施方式中,一个或多个处理器执行的动作还包括:在控制机器人向第二位置移动过程中,监测目标边界的存在状态;当目标边界消失时,从当前位置周围存在的可通过边界中选择新的目标边界,并根据新的目标边界重新确定第二位置。
[0161]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0162]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0163]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0164]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0165]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0166]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0167]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0168]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0169]
以上所述仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
技术特征:
1.一种机器人定位方法,其特征在于,包括:机器人获取当前位置的环境信息;所述机器人基于当前位置的环境信息,确定当前位置周围的至少一个可通过边界;所述可通过边界为所述机器人当前位置所属局部区域和未知区域的相交边界中无障碍物遮挡的边界;所述机器人当前位置所属局部区域是指所述机器人当前所处的环境区域;所述未知区域为所述机器人存储的环境地图对应的环境区域中除所述机器人当前位置所属局部区域之外的其它区域;在定位过程中,机器人从当前位置朝向靠近至少一个所述可通过边界的方向移动;获取所述移动过程中的环境信息,并根据所述移动过程中的环境信息定位所述机器人在环境地图中的位姿。2.根据权利要求1所述的方法,其特征在于,机器人从当前位置朝向靠近至少一个所述可通过边界的方向移动,包括:机器人从当前位置朝向至少一个所述可通过边界的方向移动,以到达或通过所述可通过边界。3.根据权利要求1所述的方法,其特征在于,机器人从当前位置朝向靠近至少一个所述可通过边界的方向移动,包括:机器人从当前位置朝向靠近目标边界的方向移动,所述目标边界是至少一个所述可通过边界中的一个可通过边界。4.根据权利要求3所述的方法,其特征在于,机器人从当前位置朝向靠近目标边界的方向移动,包括:机器人从当前位置向第二位置移动,以朝向所述目标边界或所述目标边界之外的环境区域移动,所述第二位置是靠近所述目标边界的位置。5.根据权利要求4所述的方法,其特征在于,所述第二位置是所述目标边界之内的环境区域中的一个位置;或者,所述第二位置是所述目标边界上的一个位置;或者,所述第二位置是所述目标边界之外的环境区域中的一个位置;其中,所述目标边界之外的环境区域为所述未知区域的全部区域,或者为所述未知区域的部分区域。6.根据权利要求4所述的方法,其特征在于,机器人从当前位置向第二位置移动之前,还包括:所述机器人将所述当前位置的环境信息与所述机器人存储的环境地图进行比对;若所述比对的结果不满足设定的比对要求,所述机器人执行从所述当前位置向第二位置移动的操作。7.根据权利要求3所述的方法,其特征在于,所述目标边界是至少一个所述可通过边界中到机器人的当前位置的导航路径最短的可通过边界,或者是至少一个所述可通过边界中到机器人的当前位置的距离最短的可通过边界,或者是至少一个所述可通过边界中可通过尺寸最大的可通过边界。8.根据权利要求3-7任一项所述的方法,其特征在于,还包括:所述机器人从当前位置朝向靠近目标边界的方向移动过程中,监测当前位置周围是否有新的可通过边界出现;当有新的可通过边界出现,且新出现的可通过边界符合目标边界条件时,将所述新出
现的可通过边界作为新的目标边界,并朝向靠近所述新的目标边界的方向移动。9.根据权利要求3-7任一项所述的方法,其特征在于,还包括:所述机器人从当前位置朝向靠近目标边界的方向移动过程中监测所述目标边界的存在状态;当所述目标边界消失时,从当前位置周围存在的可通过边界中选择新的目标边界,并朝向靠近所述新的目标边界的方向移动。10.一种机器人,其特征在于,包括:机械本体,所述机械本体上设有一个或多个传感器、一个或多个处理器,以及一个或多个存储计算机指令的存储器;所述一个或多个存储器,用于存储计算机指令以及环境地图;所述一个或多个处理器,用于执行所述计算机指令,以用于实现权利要求1-9任一项所述方法中的步骤。11.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器实现权利要求1-9任一项所述方法中的步骤。
技术总结
本申请实施例提供一种机器人定位方法、机器人以及存储介质。在本申请实施例中,在定位的过程中,机器人可以从当前位置向新位置移动,在新移动中可获取到更多的环境信息,进而基于获取的环境信息与机器人存储的环境地图进行比对,有利于成功定位出机器人在存储的环境地图中的位姿。另外,机器人移动定位,不同位置的环境信息一般不同,有利于将类似的区域环境区分开,可以克服机器人待在原地定位时可能因存在多个类似的区域环境而无法获得准确位姿的问题。姿的问题。姿的问题。
技术研发人员:岑斌
受保护的技术使用者:科沃斯机器人股份有限公司
技术研发日:2018.06.15
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/