机器人重定位与环境地图构建方法、机器人及存储介质与流程

文档序号:15840208发布日期:2018-11-07 08:20阅读:221来源:国知局
机器人重定位与环境地图构建方法、机器人及存储介质与流程

本申请涉及人工智能技术领域,尤其涉及一种机器人重定位与环境地图构建方法、机器人及存储介质。

背景技术

随着人工智能技术的发展,移动机器人的研究和发展非常迅速,一些服务型机器人也已逐渐进入人们的日常生活。不管是什么类型的机器人,只要自主移动,就需要在家庭或其他环境中进行导航定位。

在现有技术中,一些机器人配备激光传感器,结合即时定位与地图构建(simultaneouslocalizationandmapping,slam)技术,在自身位置不确定的条件下,可在未知环境中构建环境地图,并利用环境地图进行自主定位和导航。

在实际应用中,机器人可能发生绑架或重启等情况。在这些情况下,机器人需要重定位。目前,机器人会基于已构建的环境地图,利用激光传感器进行重定位。但是,这种重定位方法的计算量较大,重定位效率较低。



技术实现要素:

本申请的多个方面提供一种机器人重定位与环境地图构建方法、机器人及存储介质,用以保证重定位精度,降低重定位的计算量,提高重定位效率。

本申请实施例提供一种机器人重定位方法,包括:

在重定位时,将机器人的视觉传感器在所述机器人处于当前位置时采集到的第一环境图像,在所述机器人所处环境对应的视觉地图中进行匹配;若在所述视觉地图中匹配到第二环境图像,根据所述第二环境图像对应的机器人位姿计算所述机器人的初步估计位姿;结合所述初步估计位姿,根据所述机器人的激光传感器在所述机器人处于当前位置时采集到的环境数据,在所述机器人所处环境对应的栅格地图中进行局部匹配,以获取所述机器人的最终位姿。

本申请实施例还提供一种环境地图构建方法,包括:

分别利用机器人的激光传感器和视觉传感器对所述机器人所处环境进行探测;根据所述激光传感器探测到的环境数据构建栅格地图;结合所述栅格地图构建过程中计算的机器人位姿,利用所述视觉传感器探测到的环境图像构建视觉地图;其中,所述栅格地图和所述视觉地图构成所述机器人所处环境的环境地图。

本申请实施例还提供一种机器人,包括:机械本体,所述机械本体上设有视觉传感器、激光传感器、一个或多个处理器,以及一个或多个存储计算机指令的存储器;

所述视觉传感器,用于采集所述机器人周围的环境图像;所述激光传感器,用于采集所述机器人周围的环境数据;所述存储器,还用于存储所述机器人所处环境对应的环境地图,所述环境地图包含栅格地图和视觉地图;

所述一个或多个处理器,用于执行所述计算机指令,以用于:在重定位时,将所述视觉传感器在所述机器人处于当前位置时采集到的第一环境图像在所述视觉地图中进行匹配;若在所述视觉地图中匹配到第二环境图像,根据所述第二环境图像对应的机器人位姿计算所述机器人的初步估计位姿;结合所述初步估计位姿,根据所述激光传感器在所述机器人处于当前位置时采集到的环境数据,在所述栅格地图中进行局部匹配,以获取所述机器人的最终位姿。

本申请实施例还提供一种机器人,包括:机械本体,所述机械本体上设有视觉传感器、激光传感器、一个或多个处理器,以及一个或多个存储计算机指令的存储器;

所述视觉传感器,用于采集所述机器人周围的环境图像;所述激光传感器,用于采集所述机器人周围的环境数据;所述存储器,还用于存储所述机器人所处环境对应的环境地图,所述环境地图包含栅格地图和视觉地图;

所述一个或多个处理器,用于执行所述计算机指令,以用于:分别利用所述激光传感器和所述视觉传感器对所述机器人所处环境进行探测;根据所述激光传感器探测到的环境数据构建栅格地图;结合所述栅格地图构建过程中计算的机器人位姿,利用所述视觉传感器探测到的环境图像构建视觉地图;其中,所述栅格地图和所述视觉地图构成所述机器人所处环境的环境地图。

本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:

在重定位时,将机器人的视觉传感器在所述机器人处于当前位置时采集到的第一环境图像,在所述机器人所处环境对应的视觉地图中进行匹配;

若在所述视觉地图中匹配到第二环境图像,根据所述第二环境图像对应的机器人位姿计算所述机器人的初步估计位姿;

结合所述初步估计位姿,根据所述机器人的激光传感器在所述机器人处于当前位置时采集到的环境数据,在所述机器人所处环境对应的栅格地图中进行局部匹配,以获取所述机器人的最终位姿。

本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行包括以下的动作:

分别利用机器人的激光传感器和视觉传感器对所述机器人所处环境进行探测;

根据所述激光传感器探测到的环境数据构建栅格地图;

结合所述栅格地图构建过程中计算的机器人位姿,利用所述视觉传感器探测到的环境图像构建视觉地图;其中,所述栅格地图和所述视觉地图构成所述机器人所处环境的环境地图。

在本申请实施例中,提供一种包含视觉地图和栅格地图的环境地图。在对机器人进行重定位时,结合激光传感器和视觉传感器,首先基于视觉传感器采集到的环境图像在视觉地图中进行快速匹配得到初步估计位姿,结合初步估计位姿,利用激光传感器采集的环境数据在栅格地图上进行局部匹配得到精确位姿。基于初步估计位姿将栅格地图的匹配范围缩小了,降低了栅格匹配时的计算量,有利于提高重定位效率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1a为本申请一示例性实施例提供的一种机器人的硬件结构框;

图1b为本申请一示例性实施例提供的一种人形机器人的线条图;

图1c为本申请一示例性实施例提供的一种非人形机器人的线条图;

图2a为本申请一示例性实施例提供的一种机器人重定位方法的流程示意图;

图2b为本申请一示例性实施例提供的另一种机器人重定位方法的流程示意图;

图3为本申请另一示例性实施例提供的一种环境地图构建方法的流程示意图;

图4为本申请一示例性实施例提供的一种重定位装置的结构示意图;

图5为本申请另一示例性实施例提供的一种环境地图构建装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

针对现有机器人重定位存在的计算量较大,效率较低等技术问题,在本申请一些实施例中,结合激光传感器和视觉传感器,首先基于视觉传感器采集到的环境图像在视觉地图中进行快速匹配得到初步估计位姿,结合初步估计位姿,利用激光传感器采集的环境数据在栅格地图上进行局部匹配得到精确位姿。基于初步估计位姿将栅格地图的匹配范围缩小了,降低了栅格匹配时的计算量,有利于提高重定位效率。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1a为本申请一示例性实施例提供的一种机器人的硬件结构框图。如图1a所示,该机器人100包括:机械本体101;机械本体101上设有一个或多个处理器102和一个或多个存储计算机指令的存储器103。除此之外,机械本体101上还设有视觉传感器104和激光传感器105。

值得说明的是,一个或多个处理器102、一个或多个存储器103、视觉传感器104和激光传感器105可设置于机械本体101内部,也可以设置于机械本体101的表面。

机械本体101是机器人100的执行机构,可以在确定的环境中执行处理器102指定的操作。其中,机械本体101一定程度上体现了机器人100的外观形态。在本实施例中,并不限定机器人100的外观形态。例如,机器人100可以是图1b所示的人形机器人,则机械本体101可以包括但不限于:机器人的头部、手部、腕部、臂部、腰部和基座等机械结构。另外,机器人100也可以是图1c所示形态相对简单一些的非人形机器人,则机械本体101主要是指机器人100的机身。

值得说明的是,机械本体101上还设置有机器人100的一些基本组件,例如驱动组件、里程计、电源组件、音频组件等等。可选地,驱动组件可以包括驱动轮、驱动电机、万向轮等。不同机器人100所包含的这些基本组件以及基本组件的构成均会有所不同,本申请实施例列举的仅是部分示例。

一个或多个存储器103,主要用于存储一个或多个计算机指令,这些计算机指令可被一个或多个处理器102执行,致使一个或多个处理器102控制机器人100实现相应功能、完成相应动作或任务。除了存储计算机指令之外,一个或多个存储器103还可被配置为存储其它各种数据以支持在机器人100上的操作。这些数据的示例包括用于在机器人100上操作的任何应用程序或方法的指令,机器人100所处环境的环境地图,便于人机交互的图片、视频、语音数据等。

一个或多个存储器103,可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。

一个或多个处理器102,可以看作是机器人100的控制系统,可用于执行一个或多个存储器103中存储的计算机指令,以控制机器人100实现相应功能、完成相应动作或任务。值得说明的是,机器人100处于不同场景时,其所需实现的功能、完成的动作或任务会有所不同;相应地,一个或多个存储器103中存储的计算机指令也会有所不同,而一个或多个处理器102执行不同计算机指令可控制机器人100实现不同的功能、完成不同的动作或任务。

在本实施例中,机器人100可自主移动,并可在自主移动的基础上完成一定作业任务。例如,在超市、商场等购物场景中,购物车机器人需要跟随顾客移动,以容纳顾客选购的商品。又例如,在一些公司的仓储分拣场景中,分拣机器人需要跟随分拣人员移动到货架拣货区,然后开始分拣订单货物。又例如,在家庭清扫场景中,扫地机器人需要清扫客厅、卧室、厨房等区域。在这些应用场景中,机器人100需要移动。对于需要移动并且可移动的机器人100来说,在其所处环境中实现导航定位是基本功能。则,在机器人自主移动场景中,一个或多个存储器103中存储的计算机指令被一个或多个处理器102执行时能够致使处理器102控制机器人100实现与自主移动相关的功能,例如导航定位、重定位等。

在本实施例中,机器人100上的视觉传感器104和激光传感器105可辅助完成机器人100的导航定位和重定位等。其中,视觉传感器104可以看作是机器人100的“眼睛”,主要用于采集机器人100周围环境的图像,这些图像可称为环境图像。视觉传感器104可以采用任何具有图像采集功能的设备实现,例如可以采用摄像头、照相机等。其中,激光传感器105是一种以发射激光束的方式采集机器人100周围的环境数据的雷达系统。激光传感器105采集到的环境数据可以包括但不限于:机器人100周围对象的距离、角度等。激光传感器105可以采用任何能够发射激光光束的设备实现,例如可以采用激光雷达。

值得说明的是,视觉传感器104和激光传感器105可以按照设定的采集频率工作,且视觉传感器104使用的采集频率与激光传感器105使用的采集频率可以相同,也可以不同。优选地,激光传感器105使用的采集频率可n倍于视觉传感器104的采集频率,n是大于1的自然数。

在正常情况下,机器人100可以根据激光传感器105采集到的环境数据和一个或多个存储器103中存储的机器人100所在环境对应的环境地图进行导航定位。但是,在实际应用中,机器人100可能发生“绑架”或“重启”等情况。在这些情况下,机器人100可能会缺少或丢失之前的位置信息,因此需要重新确定机器人的当前位姿,即重定位。

在本实施例中,机器人100所处环境对应的环境地图包含视觉地图和栅格地图。其中,视觉地图是预先基于视觉传感器104采集的环境图像构建的,该视觉地图可在一定程度上描述机器人100所处的环境信息,主要存储有与机器人100所处环境相关的若干环境图像的信息,例如环境图像对应的机器人位姿、环境图像包含的特征点以及特征点的描述子等。栅格地图是预先基于激光传感器105采集到的环境数据构建的,该栅格地图是对存储机器人100所处环境数字栅格化的产物。栅格地图中的每个栅格与机器人100所处环境中的一个小块区域对应,每个栅格包含了坐标、是否被障碍物占用两类基本信息,栅格被占据的概率值表示对应区域的环境信息。栅格地图中栅格数量越多,栅格地图对机器人100所处环境的描述也就越详细,相应地,基于该栅格地图的定位精度也就越高。

在本实施例中,结合视觉传感器104和激光传感器105,利用视觉地图和栅格地图对机器人100进行重定位。其中,视觉传感器104会不断采集机器人100周围的环境图像,相应地,激光传感器105也会不断采集机器人100周围的环境数据。则,一个或多个处理器102执行一个或多个存储器103中存储的计算机指令对机器人100进行重定位时,可以将视觉传感器104在机器人100处于当前位置时采集到的第一环境图像,在视觉地图中进行匹配;若在视觉地图中匹配到第二环境图像,根据第二环境图像对应的机器人位姿计算机器人100处于当前位置时的初步估计位姿;进而,结合该初步估计位姿,根据激光传感器105在机器人处于当前位置时采集到的环境数据,在栅格地图中进行局部匹配,以获取机器人100处于当前位置时的最终位姿。

上述第一环境图像是指视觉传感器104在机器人100处于当前位置时采集到的机器人100周围的环境图像。上述第二环境图像是视觉地图中与第一环境图像相似的环境图像,在本实施例中不对“相似”做限定,可根据应用需求适应性设定。另外,上述匹配窗口主要用于限定栅格地图上的部分栅格。机器人100当前所处的位置也就是有待重定位的位置。

可选地,若在视觉地图中未匹配到第二环境图像,无法计算机器人100的初步估计位姿,则一个或多个处理器102可以控制机器人100移动到下一位置,或者也可以由人工手动将机器人100移动到下一位置,并在机器人100处于下一位置时继续基于视觉地图和栅格地图对机器人100进行重定位,直到在某一位置成功地重定位出机器人100的位姿为止。在机器人100处于下一位置时继续基于视觉地图和栅格地图对机器人100进行重定位的过程与上述重定位过程类似,不再赘述。

进一步可选地,在机器人100自己移动到下一位置的情况下,一个或多个处理器102可以利用去重探索算法确定下一位置,或者也可以利用随机算法确定下一位置,然后控制机器人100移动到下一位置处。其中,一个或多个处理器102控制机器人100移动或移动到下一位置主要是向机器人100的执行机构发出移动指令,以指示机器人100的执行机构移动或移动至下一位置。

在本实施例中,机器人重定位时,首先基于视觉传感器采集的环境在视觉地图中进行快速匹配得到初步估计位姿,再结合初步估计位姿,利用激光传感器采集到的环境数据在栅格地图上中进行局部匹配,基于初步估计位姿可以缩小在栅格地图中的匹配范围,有利于降低栅格匹配时的计算量,提高重定位效率,也有利于重定位的精度。

在本申请实施例中,在对机器人100重定位时,需要将第一环境图像在视觉地图中进行匹配。本申请实施例并不限定将第一环境图像在视觉地图中进行匹配的方式,凡是能够确定视觉地图中是否存在与第一环境图像相似的第二环境图像的匹配方式均适用于本申请实施例。

在一可选实施方式中,在将第一环境图像在视觉地图中进行匹配时,可以利用词袋模型技术,从视觉地图中选择与第一环境图像的纹理匹配度符合纹理匹配度要求的至少一个候选环境图像;然后计算每个候选环境图像与第一环境图像之间符合描述子距离条件和对极几何约束条件的特征点数量;若至少一个候选环境图像中存在特征点数量大于设定特征点数量阈值的候选环境图像,则获取特征点数量大于设定特征点数量阈值的候选环境图像,作为第二环境图像。

可选地,在机器人100加载视觉地图时,可以根据视觉地图中存储的各环境图像的特征点和特征点的描述子生成词袋模型的词典(或者称为词袋)。词典的生成过程大概包括:根据视觉地图中各环境图像包含的特征点的描述子,用k-means算法对视觉地图中各环境图像包含的特征点进行聚类,等到k-means算法收敛时,可以得到每个簇(cluster)最后的质心,一个质心即为词典中的一个词,用k叉树来表示这些质心,至此构建出词袋模型的词典(dictionary)。k叉树上的每个叶子节点表示一个质心,即一个词,每个词唯一代表一个特征点,该节点存储有其所表示的词的词频和逆索引。其中,一个词的词频表示该词出现的频次,一个词的逆索引指向该词所代表的特征点所属的环境图像。其中,特征点是指像素值、灰度值等可以与其周围其它特征点区别开的信息;特征点的描述子主要用于描述该特征点与周围其他特征点之间的关系。

基于上述,利用词袋模型技术,从视觉地图中选择与第一环境图像的纹理匹配度符合纹理匹配度要求的至少一个候选环境图像时,可以提取第一环境图像包含的特征点,并生成所提取到的特征点对应的描述子;根据从第一环境图像中提取到的各特征点的描述子,从上述词典中获取与从第一环境图像中提取到的各特征点对应的词,形成一个词集合;然后获取词集合中各词的逆索引所指向的环境图像形成一个图像集合;对该图像集合中的每个环境图像,根据该环境图像所包含的属于词集合中的词的词频加权计算出该环境图像与第一环境图像的纹理匹配度,该纹理匹配度可以是一个匹配得分;根据图像集合中各环境图像与第一环境图像的纹理匹配度,从图像集合中选择符合纹理匹配度要求的至少一个候选环境图像。

其中,根据应用场景以及对重定位精度等要求的不同,纹理匹配度要求也会有所不同。例如,纹理匹配度要求要求选择纹理匹配度最大的环境图像,则可以从视觉地图中选择与第一环境图像的纹理匹配度最大的环境图像作为候选环境图像。又例如,纹理匹配度要求要求选择纹理匹配度大于设定纹理匹配度阈值的环境图像,则可以从视觉地图中选择与第一环境图像的纹理匹配度大于纹理匹配度阈值的环境图像作为候选环境图像。又例如,纹理匹配度要求要求选择纹理匹配度在特定纹理匹配度范围内的环境图像,则可以从视觉地图中选择与第一环境图像的纹理匹配度在特定纹理匹配度范围内的环境图像作为候选环境图像。

为了降低误匹配的概率,可以设定一些约束条件,例如描述子距离条件和对极几何约束条件,从而过滤掉一些噪声特征点,以便于更加准确地获取第二环境图像。基于此,在获得至少一个候选环境图像之后,可以识别每个候选环境图像与第一环境图像之间符合描述子距离条件和对极几何约束条件的特征点,其中,符合这两个条件的特征点即为两个图像之间相匹配的特征点。两个图像之间相匹配的特征点的数量越多,说明这两个图像的纹理匹配度越高。因此,针对每个候选环境图像,可以计算该候选环境图像与第一环境图像之间符合描述子距离条件和对极几何约束条件的特征点数量;进而,判断至少一个候选环境图像中是否存在特征点数量大于设定特征点数量阈值的候选环境图像;若判断结果为存在,说明特征点数量大于设定特征点数量阈值的候选环境图像与第一环境图像非常相似,故可以获取特征点数量大于设定特征点数量阈值的候选环境图像作为所述第二环境图像。

可选地,可以运用ransac(randomsampleconsensus)算法求候选环境图像与第一环境图像之间符合对极几何约束条件的特征点。ransac是一种现有算法,在此不做详细描述。

在上述可选实施方式中,利用词袋模型技术进行图像匹配,有利于提高匹配速度,进而提高重定位效率;进一步,结合描述子距离条件和对极几何约束条件对从视觉地图中匹配到的环境图像进行筛选或过滤,可以降低无匹配概率,利于提高基于第二环境图像重定位的准确度和可靠性。

在本申请实施例中,在从视觉地图中匹配到第二环境图像之后,可以从视觉地图中获取第二环境图像对应的机器人位姿,第二环境图像对应的机器人位姿是指在构建视觉地图过程中机器人100拍摄第二环境图像时的位姿;然后,根据第二环境图像对应的机器人位姿计算机器人100处于当前位置时的初步估计位姿。

例如,可以根据第一环境图像与第二环境图像中之间相匹配的特征点的位置,计算出本质矩阵e或者基础矩阵f;然后,根据本质矩阵e或者基础矩阵f确定第一环境图像相对第二环境图像的相对位姿;进而,根据该相对位姿和第二环境图像对应的机器人位姿,计算机器人100处于当前位置时的初步估计位姿。该计算过程使用了基于词袋模型技术所提取的特征点的信息,使用两个环境图像之间相匹配的特征点计算两个环境图像的相对位姿,信息量相对较少,有利于提高计算效率。

进一步,在获得初步估计位姿后,可结合该初步估计位姿,利用激光传感器105在机器人100处于当前位置时采集到的环境数据,在栅格地图中进行局部匹配。本申请实施例并不限定结合使用初步估计位姿和激光传感器105采集的环境数据的方式,凡是将两者结合能够实现在栅格地图中进行局部匹配的方式均适用于本申请实施例。在一可选实施方式中,可以根据初步估计位姿确定栅格地图上的匹配窗口;然后,根据激光传感器105在机器人100处于当前位置时采集到的环境数据,在栅格地图上的匹配窗口中进行匹配,以获取机器人100的最终位姿。这种方式相对简单,易于实现,匹配效率也较高。

在本申请上述实施例中,描述了机器人100重定位的过程。根据应用场景的多样性,需要机器人100重定位的情况可能有多种。下面举例说明:

在应用场景1中,本申请各实施例的机器人具体为扫地机器人。用户使用扫地机器人执行清扫任务,每次清扫任务需要清扫的区域具有随机性,例如可能是客厅、厨房、或者也可能是卧室。另外,为了节约扫地机器人的电力,每次清扫任务结束后,扫地机器人可自动关闭。这样,每次需要扫地机器人执行清扫任务时,用户可以将扫地机器人搬到待清扫区域,并通过触控、声音或物理按钮等方式重新启动扫地机器人。此时,由于重新启动,扫地机器人之前的位置信息已经丢失,扫地机器人需要重定位,以确定其在当前待清扫区域中的位置,以便于能够顺利执行清扫任务。

在该应用场景1中,当扫地机器人需要重新定位其在待清扫区域中的位置时,可以在当前位置利用其视觉传感器采集待清扫区域对应的第一环境图像,在待清扫区域对应的视觉地图中进行匹配;若在视觉地图中匹配到第二环境图像,根据第二环境图像对应的机器人位姿计算扫地机器人处于当前位置时的初步估计位姿;进而,结合该初步估计位姿,根据扫地机器人的激光传感器在当前位置采集到的环境数据,在待清扫区域对应的栅格地图中进行局部匹配,以获取扫地机器人的最终位姿,即获得扫地机器人在待清扫区域中的位置。

在应用场景2中,在商场、酒店等大堂中使用迎宾机器人迎接客人。若迎宾机器人的传感器突然故障,或者因为迎宾机器人移动速度过快,导致丢失之前的位置信息。为了便于能够以正确地方式继续迎接客人,迎宾机器人需要启动重定位,以便于重新定位其在大堂中的位置。此时,迎宾机器人可在当前位置利用其视觉传感器采集大堂区域对应的第一环境图像,在大堂区域对应的视觉地图中进行匹配;若在视觉地图中匹配到第二环境图像,根据第二环境图像对应的机器人位姿计算迎宾机器人处于当前位置时的初步估计位姿;进而,结合该初步估计位姿,根据迎宾机器人的激光传感器在当前位置采集到的环境数据,在大堂区域对应的栅格地图中进行局部匹配,以获取迎宾机器人的最终位姿,即获得迎宾机器人在大堂区域中的位置。

在应用场景3中,无论是何种机器人,在完成相应任务过程中,都需要自主移动,在移动过程中就离不开导航定位。在机器人导航过程中,对导航定位精度有一定要求,若导航定位的精度不能满足导航需求,需要触发重定位,以便重定位后能够继续进行导航定位。

在应用场景3中,机器人在启动重定位之前,可以利用激光传感器采集到的环境数据和栅格地图进行导航。值得说明的是,该导航过程除了利用激光传感器之外,还可以结合机器人的其它传感器,例如里程计,但不限于此。例如,可以基于机器人的初始位置,结合机器人的里程计,计算出机器人的粗略位置,进而结合激光传感器采集到的环境数据在栅格地图中进行匹配,基于匹配结果对该粗略位置进行修正,从而获得机器人的精确位置。值得说明的是,这里仅是简单列举了一种示例性的导航定位过程,导航定位过程可以有多种实现方式,在此不做过多描述。

为了保证导航精度,在导航过程中,可以采用以下至少一种方式来判断是否需要启动重定位过程。

方式a:根据激光传感器在机器人导航过程中采集到的环境数据和栅格地图,判断是否需要启动重定位。

可选地,方式a的详细实施方式包括:计算激光传感器在机器人导航程中采集到的环境数据与栅格地图的匹配得分;若该匹配得分低于设定的得分阈值,确定需要启动重定位;反之,若该匹配得到高于设定的得分阈值,则确定不需要启动重定位,即机器人可以继续利用激光传感器采集到的环境数据和栅格地图进行导航。

方式b:根据视觉传感器在机器人导航过程中采集到的环境图像和视觉地图,判断是否需要启动重定位。

可选地,方式b的详细实施方式包括:将视觉传感器在机器人导航程中采集到的环境图像在视觉地图中进行匹配;若在视觉地图中匹配到第三环境图像,计算第三环境图像对应的机器人位姿和在机器人导航过程中基于栅格地图计算出的机器人位姿之间的距离;若该距离大于设定距离阈值,确定需要启动重定位;反之,确定不需要启动重定位,即机器人可以继续利用激光传感器采集到的环境数据和栅格地图进行导航。

在实际应用中,可以根据应用需求,设定判断周期,每当判断周期到达时,采用方式a和/或方式b判断是否需要启动重定位。根据应用需求的不同,判断周期可灵活设定,例如可以是1秒钟,即每1秒钟,根据最新的数据判断一次是否需要启动重定位。在同时采用方式a和方式b的情况下,两种方式可以对应相同的判断周期,也可以对应不同的判断周期。另外,除此周期性判断是否启动重定位之外,也可以不设定判断周期,而是每当采集到环境数据或环境图像时就执行一次判断操作。

值得说明的是,在实际应用中,可以采用上述任一方式。或者,也可以同时采用两种方式。在同时采用上述两种方式时,只要一种方式确定需要启动重定位时,就要启动重定位。同时采用上述两种方式,对机器人位置的置信度具有冗余校验的效果,而且结合激光传感器,还可以满足实时性要求。

在本申请实施例中,在对机器人100重定位时,依赖机器人100所处环境的环境地图,该环境地图包括视觉地图和栅格地图。在使用机器人100所处环境的环境地图之前,需预先构建该环境地图。

在本申请实施例中,一个或多个处理器102执行一个或多个存储器103中存储的计算机指令,除了可以对机器人100进行重定位之外,还可用于构建机器人100所处环境的环境地图。其中,一个或多个处理器102执行一个或多个存储器103中存储的计算机指令构建环境地图的过程包括:

分别利用机器人100上的激光传感器105和视觉传感器104对机器人所处环境进行探测;激光传感器105会探测到机器人处于不同位置时其周围的环境数据,而视觉传感器104会探测到机器人处于不同位置时其周围的环境图像。然后,根据激光传感器105探测到的环境数据构建栅格地图;结合栅格地图构建过程中计算的机器人位姿,利用视觉传感器104探测到的环境图像构建视觉地图;其中,栅格地图和视觉地图构成机器人所处环境的环境地图。

值得说明的是,上述根据激光传感器105探测到的环境数据构建栅格地图的过程可采用或参照现有激光即时定位与地图构建(simultaneouslocalizationandmapping,slam)过程实现,关于激光slam过程可参考现有技术,在此不做赘述。

在本申请实施例中,并不限定结合使用栅格地图构建过程中计算的机器人位姿和视觉传感器104探测到的环境图像的方式。在一可选实施方式中,可以将栅格地图构建过程中计算的机器人位姿直接作为视觉传感器104探测到的环境图像对应的机器人位姿,这种结合使用方式相对简单,且利用栅格地图构建过程中计算的机器人位姿精度较高的优势,有利于保证视觉地图的准确度。

在一些示例性实施例中,视觉传感器105在机器人重定位过程中主要其辅助作用,而不论是在机器人重定位过程中还是在机器人导航定位过程中,激光传感器105发挥主要作用,为了保证重定位或导航定位的精度,激光传感器105提供机器人位姿的频率(或者说是采集环境数据的频率)往往几倍于视觉传感器采集环境图像的频率,这意味着在视觉传感器采集一张环境图像的时间内,栅格地图构建过程中会计算出多个机器人位姿。针对这种情况,可以根据时间对齐原则,针对视觉传感器采集到的任一环境图像,从栅格地图构建过程中计算的机器人位姿中,选择时间上与该环境图像的采集时间相匹配的机器人位姿,作为该环境图像对应的机器人位姿;然后,根据该环境图像对应的机器人位姿和该环境图像中的特征点,确定该环境图像是否属于关键帧图像;当确定该环境图像属于关键帧图像时,将该环境图像对应的机器人位姿和环境图像中的特征点加入视觉地图中。

在上述实施方式中,选择关键帧图像形成视觉地图,该视觉地图是一种稀疏视觉地图,信息量相对较小,在使用过程中需要匹配的图像数量较少,可提高效率,而且存储关键帧图像也可以满足初步估计位姿所需的精度。

可选地,在根据该环境图像对应的机器人位姿和该环境图像中的特征点,确定该环境图像是否属于关键帧图像时,可以采用但不限于以下几种方式:

方式1:主要根据环境图像包含的特征点数量进行判断。若环境图像包含的特征点数量大于特征点数量阈值,说明该环境图像所包含的环境信息比较丰富,则可以将其作为关键帧图像保存至视觉地图中。

方式2:主要根据环境图像与上一关键帧图像之间的视差进行判断。若环境图像与上一关键帧图像之间的视差大于视差阈值,说明该环境图像与上一关键帧图像变化较大,则可以将其作为关键帧图像保存至视觉地图中。

方式3:主要根据环境图像与上一关键帧图像之间的位姿差异进行判断。若环境图像与上一关键帧图像之间的位姿差异大于位姿差异阈值,说明视觉传感器在拍摄该环境图像与在拍摄上一关键帧图像时机器人所在位置发生了较大变化,则可以将其作为关键帧图像保存至视觉地图中。

方式4:主要根据环境图像包含的特征点数量、环境图像与上一关键帧图像之间的视差以及环境图像与上一关键帧图像之间的位姿差异进行判断。若该环境图像包含的特征点数量大于特征点数量阈值,该环境图像与上一关键帧图像之间的机器人位姿差异大于位姿差异阈值,且与上一关键帧图像之间的视差大于视差阈值,确定该环境图像为新的关键帧图像。

值得说明的是,除了上述方式1-4之外,还可以将上述方式1-3两两任意组合形成新的判断方式,这些判断方式均适用于本申请实施例。

除上述基于机器人之外,本申请一些示例性实施例还提供一些机器人重定位方法和环境地图构建方法。下面结合附图对这些方法进行详细描述。

图2a为本申请一示例性实施例提供的一种机器人重定位方法的流程示意图。如图2a所示,该方法包括:

201、在重定位时,将机器人的视觉传感器在机器人处于当前位置时采集到的第一环境图像,在机器人所处环境对应的视觉地图中进行匹配。

202、若在视觉地图中匹配到第二环境图像,根据第二环境图像对应的机器人位姿计算机器人的初步估计位姿。

203、结合初步估计位姿,根据机器人的激光传感器在机器人处于当前位置时采集到的环境数据,在机器人所处环境对应的栅格地图中进行局部匹配,以获取机器人的最终位姿。

本实施例提供的方法可应用于可自主移动的机器人,主要用于对机器人进行重定位,即重新确定机器人的初始位置。本实施例并不限定机器人的形状,例如可以是圆形、椭圆形、三角形、凸多边形、人型等。其中,机器人可以通过安装软件、app,或者在相应器件中写入程序代码来实现本实施例提供的重定位方法的逻辑。

在本实施例中,机器人可自主移动,在移动过程中需要进行导航定位。在实际应用中,机器人可能发生“绑架”或“重启”等情况。在这些情况下,机器人可能会缺少或丢失之前的位置信息,因此需要重新确定机器人的当前位姿,即重定位。

在本实施例中,机器人所处环境对应的环境地图包含视觉地图和栅格地图。其中,视觉地图是一种基于视觉传感器预先创建的地图,主要存储有机器人所处环境中一些环境图像的信息,例如环境图像对应的机器人位姿、环境图像包含的特征点等。栅格地图是基于激光传感器预先构建的地图是对存储机器人所处环境数字栅格化的产物。栅格地图中的每个栅格与机器人所处环境中的一个小块区域对应,每个栅格包含了坐标、是否被障碍物占用两类基本信息,栅格被占据的概率值表示对应区域的环境信息。栅格地图中栅格数量越多,对机器人所处环境的描述也就越详细,相应地,基于该栅格地图的定位精度也就越高。

在本实施例中,结合机器人的激光传感器和视觉传感器,利用视觉地图和栅格地图,对机器人进行重定位。其中,视觉传感器会不断采集机器人周围的环境图像,相应地,激光传感器也会不断采集机器人周围的环境数据。

当需要对机器人进行重定位时,可以将视觉传感器在机器人处于当前位置时采集到的第一环境图像,在视觉地图中进行匹配;若在视觉地图中匹配到第二环境图像,根据第二环境图像对应的机器人位姿计算机器人的初步估计位姿;进而,结合该初步估计位姿,根据激光传感器在机器人处于当前位置时采集到的环境数据,在栅格地图中进行局部匹配,以获取机器人的最终位姿。

上述第一环境图像是指视觉传感器在机器人处于当前位置(即需要重定位的位置)时采集到的机器人周围的环境图像。上述第二环境图像是视觉地图中与第一环境图像相似的环境图像。另外,上述匹配窗口主要用于限定栅格地图上的部分栅格。

可选地,若在视觉地图中未匹配到第二环境图像,无法计算机器人的初步估计位姿,则机器人移动到下一位置,或者也可以由人工手动将机器人移动到下一位置,并在机器人处于下一位置时继续基于视觉地图和栅格地图对机器人进行重定位。在机器人处于下一位置时继续基于视觉地图和栅格地图对机器人进行重定位的过程与上述重定位过程类似,不再赘述。

进一步可选地,在机器人自己移动到下一位置的情况下,机器人可以利用去重探索算法确定下一位置,或者也可以利用随机算法确定下一位置,然后机器人移动到下一位置处。

在本实施例中,机器人重定位时,首先基于视觉传感器采集的环境在视觉地图中进行快速匹配得到初步估计位姿,再结合初步估计位姿缩小在栅格地图中的匹配范围,利用激光传感器采集到的环境数据在栅格地图上中进行局部匹配,有利于降低栅格匹配时的计算量,提高重定位效率,也有利于重定位的精度。

在本申请实施例中,在对机器人进行重定位时,需要将第一环境图像在视觉地图中进行匹配。本申请实施例并不限定将第一环境图像在视觉地图中进行匹配的方式,凡是能够确定视觉地图中是否存在与第一环境图像相似的第二环境图像的匹配方式均适用于本申请实施例。

在一可选实施方式中,在步骤201中,将第一环境图像在视觉地图中进行匹配时,可以利用词袋模型技术,从视觉地图中选择与第一环境图像的纹理匹配度符合纹理匹配度要求的至少一个候选环境图像;计算每个候选环境图像与第一环境图像之间符合描述子距离条件和对极几何约束条件的特征点数量;若至少一个候选环境图像中存在特征点数量大于设定特征点数量阈值的候选环境图像,则获取特征点数量大于设定特征点数量阈值的候选环境图像作为第二环境图像从。采用词袋模型技术进行图像匹配,有利于提高匹配速度,进而提高重定位效率;进一步,结合描述子距离条件和对极几何约束条件对从视觉地图中匹配到的环境图像进行筛选或过滤,可以降低无匹配概率,利于提高基于第二环境图像重定位的准确度和可靠性。

在一可选实施方式中,在上述步骤202中,在计算初步估计位姿时,可以根据第一环境图像与第二环境图像中之间相匹配的特征点的位置,计算出本质矩阵e或者基础矩阵f;然后,根据本质矩阵e或者基础矩阵f确定第一环境图像相对第二环境图像的相对位姿;进而,根据该相对位姿和第二环境图像对应的机器人位姿,计算机器人处于当前位置时的初步估计位姿。

在一可选实施方式中,在上述步骤203中,在栅格地图中进行局部匹配时,可以根据初步估计位姿确定栅格地图上的匹配窗口;然后,根据激光传感器在机器人处于当前位置时采集到的环境数据,在栅格地图上的匹配窗口中进行匹配,以获取机器人的最终位姿。

在本申请实施例中,触发机器人重定位的情况可能有多种,例如机器人发生“绑架”情况,或者机器人重启等。在一些应用场景中,在机器人导航过程中,定位精度不能满足导航需求时,也会触发重定位。

可选地,在机器人导航过程中,可以采用以下至少一种方式判断是否需要启动重定位:

方式a:根据激光传感器在机器人导航过程中采集到的环境数据和栅格地图,判断是否需要启动重定位。

方式b:根据视觉传感器在机器人导航过程中采集到的环境图像和视觉地图,判断是否需要启动重定位。

可选地,方式a的详细实施方式包括:计算激光传感器在机器人导航程中采集到的环境数据与栅格地图的匹配得分;若该匹配得分低于设定的得分阈值,确定需要启动重定位;反之,若该匹配得到高于设定的得分阈值,则确定不需要启动重定位,即机器人可以继续利用激光传感器采集到的环境数据和栅格地图进行导航。

可选地,方式b的详细实施方式包括:将视觉传感器在机器人导航程中采集到的环境图像在视觉地图中进行匹配;若在视觉地图中匹配到第三环境图像,计算第三环境图像对应的机器人位姿和在机器人导航过程中基于栅格地图计算出的机器人位姿之间的距离;若该距离大于设定距离阈值,确定需要启动重定位;反之,确定不需要启动重定位,即机器人可以继续利用激光传感器采集到的环境数据和栅格地图进行导航。

在实际应用中,可以根据应用需求,设定判断周期,每当判断周期到达时,采用方式a和/或方式b判断是否需要启动重定位。根据应用需求的不同,判断周期可灵活设定,例如可以是1秒钟,即每1秒钟,根据最新的数据判断一次是否需要启动重定位。在同时采用方式a和方式b的情况下,两种方式可以对应相同的判断周期,也可以对应不同的判断周期。另外,除此周期性判断是否启动重定位之外,也可以不设定判断周期,而是每当采集到环境数据或环境图像时就执行一次判断操作。

值得说明的是,在实际应用中,可以采用上述任一方式。或者,也可以同时采用两种方式。在同时采用上述两种方式时,只要一种方式确定需要启动重定位时,就要启动重定位。同时采用上述两种方式,对机器人位置的置信度具有冗余校验的效果,而且结合激光传感器,还可以满足实时性要求。下面对同时采用两种方式的方式流程进行详细说明。

图2b为本申请一示例性实施例提供的另一种机器人重定位方法的流程示意图。如图2b所示,该方法包括:

21、机器人启动,加载环境地图,环境地图包含栅格地图和视觉地图,继续执行步骤22。

22、在机器人移动过程中,利用激光传感器采集机器人周围的环境数据,并根据采集到的环境数据和栅格地图进行导航,可继续执行步骤23和步骤25。

23、在导航过程中,计算激光传感器在机器人导航程中采集到的环境数据与栅格地图的匹配得分,继续执行步骤24。

24、判断上述匹配得分是否低于设定的得分阈值,若判断结构为是,执行步骤29;若判断结果为否,执行步骤22。

25、在导航过程中,将视觉传感器在机器人导航程中采集到的环境图像在视觉地图中进行匹配。

26、判断是否在视觉地图中匹配到环境图像c3;若判断结构为是,执行步骤27;若判断结果为否,返回步骤22。

27、计算环境图像c3对应的机器人位姿和在机器人导航过程中基于栅格地图计算出的机器人位姿之间的距离,并执行步骤28。

28、判断上述距离是否大于设定的距离阈值;若判断结果为是,执行步骤29;若判断结果为否,返回步骤22。

29、确定需要启动重定位,并执行步骤30-32。

30、将视觉传感器在机器人处于当前位置时采集到的环境图像c1,在视觉地图中进行匹配。

31、若在视觉地图中匹配到环境图像c2,根据环境图像c2对应的机器人位姿计算机器人的初步估计位姿。

32、结合初步估计位姿,根据激光传感器在机器人处于当前位置时采集到的环境数据在栅格地图中进行局部匹配,以获取机器人的最终位姿,重定位过程结束,并返回步骤22。

值得说明的是,在步骤22之后,可分别进入步骤23和步骤25,步骤23和步骤25所在两个分支可以并行执行。

在本实施例中,在导航定位过程中,基于激光传感器和栅格地图,可利用高效匹配算法,快速实现环境纹理匹配,进一步,结合激光传感器和视觉传感器可对导航定位过程中定位处的机器人位置的可信度进行冗余校验,既可满足实时性要求,又可以降低重定位的误判概率;在重定位过程中,基于视觉传感器通过快速匹配得到机器人的初步估计位姿,进而结合初步估计位姿可基于激光传感器在栅格地图中进行局部匹配,得到精确的位姿数据,栅格匹配的数据量相对较低,重定位效率较高,而且相比于单激光的重定位方法,还可以大幅降低误匹配率。

图3为本申请另一示例性实施例提供的一种环境地图构建方法的流程示意图。如图3所示,该方法包括:

301、分别利用机器人的激光传感器和视觉传感器对机器人所处环境进行探测。

302、根据激光传感器探测到的环境数据构建栅格地图。

303、结合栅格地图构建过程中计算的机器人位姿,利用视觉传感器探测到的环境图像构建视觉地图;其中,栅格地图和视觉地图构成机器人所处环境的环境地图。

在本实施例中,结合机器人的激光传感器和视觉传感器,利用激光传感器采集到的环境数据构建栅格地图,进一步将栅格地图构建过程中计算出的机器人位姿与视觉传感器采集到的环境图像相结合构建视觉地图,最终生成包含栅格地图和视觉地图的环境地图。该环境地图是一种融合地图,所包含的信息更加丰富,在基于该环境地图进行导航定位以及重定位时有利于提高精度。

另外,在本实施例中,环境地图构建过程主要依赖机器人的激光传感器和视觉传感器,对机器人所处环境没有特殊要求,可适用于各种环境,而且无需对环境进行改造,有利于降低部署维护成本。

值得说明的是,上述根据激光传感器探测到的环境数据构建栅格地图的过程可采用或参照现有激光slam过程实现,关于激光slam过程可参考现有技术,在此不做赘述。

在本申请实施例中,并不限定结合使用栅格地图构建过程中计算的机器人位姿和视觉传感器探测到的环境图像的方式。在一可选实施方式中,可以将栅格地图构建过程中计算的机器人位姿直接作为视觉传感器探测到的环境图像对应的机器人位姿,这种结合使用方式相对简单,且利用栅格地图构建过程中计算的机器人位姿精度较高的优势,有利于保证视觉地图的准确度。

在一些示例性实施例中,视觉传感器在机器人重定位过程中主要其辅助作用,而不论是在机器人重定位过程中还是在机器人导航定位过程中,激光传感器发挥主要作用,为了保证重定位或导航定位的精度,激光传感器提供机器人位姿的频率(或者说是采集环境数据的频率)往往几倍于视觉传感器采集环境图像的频率,这意味着在视觉传感器采集一张环境图像的时间内,栅格地图构建过程中会计算出多个机器人位姿。针对这种情况,可以根据时间对齐原则,针对视觉传感器采集到的任一环境图像,从栅格地图构建过程中计算的机器人位姿中,选择时间上与该环境图像的采集时间相匹配的机器人位姿,作为该环境图像对应的机器人位姿;然后,根据该环境图像对应的机器人位姿和该环境图像中的特征点,确定该环境图像是否属于关键帧图像;当确定该环境图像属于关键帧图像时,将该环境图像对应的机器人位姿和环境图像中的特征点加入视觉地图中。

在上述实施方式中,选择关键帧图像形成视觉地图,该视觉地图是一种稀疏视觉地图,信息量相对较小,在使用过程中需要匹配的图像数量较少,可提高效率,而且存储关键帧图像也可以满足初步估计位姿所需的精度。

可选地,在根据该环境图像对应的机器人位姿和该环境图像中的特征点,确定该环境图像是否属于关键帧图像时,可以采用但不限于以下几种方式:

方式1:主要根据环境图像包含的特征点数量进行判断。若环境图像包含的特征点数量大于特征点数量阈值,说明该环境图像所包含的环境信息比较丰富,则可以将其作为关键帧图像保存至视觉地图中。

方式2:主要根据环境图像与上一关键帧图像之间的视差进行判断。若环境图像与上一关键帧图像之间的视差大于视差阈值,说明该环境图像与上一关键帧图像变化较大,则可以将其作为关键帧图像保存至视觉地图中。

方式3:主要根据环境图像与上一关键帧图像之间的位姿差异进行判断。若环境图像与上一关键帧图像之间的位姿差异大于位姿差异阈值,说明视觉传感器在拍摄该环境图像与在拍摄上一关键帧图像时机器人所在位置发生了较大变化,则可以将其作为关键帧图像保存至视觉地图中。

方式4:主要根据环境图像包含的特征点数量、环境图像与上一关键帧图像之间的视差以及环境图像与上一关键帧图像之间的位姿差异进行判断。若该环境图像包含的特征点数量大于特征点数量阈值,该环境图像与上一关键帧图像之间的机器人位姿差异大于位姿差异阈值,且与上一关键帧图像之间的视差大于视差阈值,确定该环境图像为新的关键帧图像。

值得说明的是,除了上述方式1-4之外,还可以将上述方式1-3两两任意组合形成新的判断方式,这些判断方式均适用于本申请实施例。

需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤401至步骤403的执行主体可以为设备a;又比如,步骤301和302的执行主体可以为设备a,步骤303的执行主体可以为设备b;等等。

另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如301、302等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。

图4为本申请又一示例性实施例提供的一种重定位控制装置的结构示意图。该装置可以作为机器人的内部模块实现;或者,也可以独立于机器人,与机器人通信连接,并可对机器人进行控制。如图4所示,该装置包括:第一匹配模块41、计算模块42和第二匹配模块43。

第一匹配模块41,用于在重定位时,将机器人的视觉传感器在机器人处于当前位置时采集到的第一环境图像,在机器人所处环境对应的视觉地图中进行匹配。

计算模块42,用于在第一匹配模块41从视觉地图中匹配到第二环境图像时,根据第二环境图像对应的机器人位姿计算机器人的初步估计位姿。

第二匹配模块43,用于结合计算模块42得到的初步估计位姿,根据机器人的激光传感器在机器人处于当前位置时采集到的环境数据,在机器人所处环境对应的栅格地图中进行局部匹配,以获取机器人的最终位姿。

在一可选实施方式中,该重定位控制还包括:移动控制模块。该移动控制模块,用于在第一匹配模块41从视觉地图中未匹配到第二环境图像时,控制机器人移动到下一位置,以在机器人处于下一位置时继续基于视觉地图和栅格地图对机器人进行重定位。

在一可选实施方式中,第一匹配模块41具体用于:利用词袋模型技术,从视觉地图中选择与第一环境图像的纹理匹配度符合纹理匹配度要求的至少一个候选环境图像;然后计算每个候选环境图像与第一环境图像之间符合描述子距离条件和对极几何约束条件的特征点数量;若至少一个候选环境图像中存在特征点数量大于设定特征点数量阈值的候选环境图像,则获取特征点数量大于设定特征点数量阈值的候选环境图像,作为第二环境图像。

在一可选实施方式中,计算模块42具体用于:根据第一环境图像与第二环境图像之间相匹配的特征点的位置,计算出本质矩阵或者基础矩阵;根据本质矩阵或者基础矩阵确定第一环境图像相对第二环境图像的相对位姿;根据相对位姿和第二环境图像对应的机器人位姿,计算机器人的初步估计位姿。

在一可选实施方式中,第二匹配模块43具体用于:根据初步估计位姿确定栅格地图上的匹配窗口;根据激光传感器在机器人处于当前位置时采集到的环境数据,在栅格地图上的匹配窗口中进行匹配,以获取机器人的最终位姿。

在一可选实施方式中,重定位控制装置还包括:第一重定位判断模块和第二重定位判断模块中的至少一个判断模块。

第一重定位判断模块,用于在重定位之前,根据所述激光传感器在所述机器人导航过程中采集到的环境数据和所述栅格地图,判断是否需要启动重定位。进一步可选地,第一重定位判断模块具体用于:计算激光传感器在机器人导航程中采集到的环境数据与栅格地图的匹配得分;以及在匹配得分低于设定的得分阈值时,确定需要启动重定位;反之,确定不需要启动重定位。

第二重定位判断模块,用于在重定位之前,根据所述视觉传感器在所述机器人导航程中采集到的环境图像和所述视觉地图,判断是否需要启动重定位。进一步可选地,第二重定位判断模块具体用于:将视觉传感器在机器人导航程中采集到的环境图像在视觉地图中进行匹配;若在视觉地图中匹配到第三环境图像,计算第三环境图像对应的机器人位姿和在机器人导航过程中基于栅格地图计算出的机器人位姿之间的距离;在该距离大于设定距离阈值时,确定需要启动重定位。

本实施例提供的重定位控制装置,在对机器人进行重定位时,结合机器人的激光传感器和视觉传感器,首先基于视觉传感器采集到的环境图像在视觉地图中进行快速匹配得到初步估计位姿,结合初步估计位姿,利用激光传感器采集的环境数据在栅格地图上进行局部匹配得到精确位姿。由于利用初步估计位姿将栅格地图的匹配范围缩小了,降低了栅格匹配时的计算量,有利于提高重定位效率。

相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行包括以下的动作:

在重定位时,将机器人的视觉传感器在机器人处于当前位置时采集到的第一环境图像,在机器人所处环境对应的视觉地图中进行匹配;

若在视觉地图中匹配到第二环境图像,根据第二环境图像对应的机器人位姿计算机器人的初步估计位姿;

结合初步估计位姿,根据机器人的激光传感器在机器人处于当前位置时采集到的环境数据,在机器人所处环境对应的栅格地图中进行局部匹配,以获取机器人的最终位姿。

在一可选实施方式中,一个或多个处理器执行的动作还包括:在从视觉地图中未匹配到第二环境图像时,控制机器人移动到下一位置,以在机器人处于下一位置时继续基于视觉地图和栅格地图对机器人进行重定位。

在一可选实施方式中,上述在视觉地图中进行匹配的动作进一步包括:利用词袋模型技术,从视觉地图中选择与第一环境图像的纹理匹配度符合纹理匹配度要求的至少一个候选环境图像;然后计算每个候选环境图像与第一环境图像之间符合描述子距离条件和对极几何约束条件的特征点数量;若至少一个候选环境图像中存在特征点数量大于设定特征点数量阈值的候选环境图像,则获取特征点数量大于设定特征点数量阈值的候选环境图像,作为第二环境图像。

在一可选实施方式中,上述计算初步估计位姿的动作进一步包括:根据第一环境图像与第二环境图像之间相匹配的特征点的位置,计算出本质矩阵或者基础矩阵;根据本质矩阵或者基础矩阵确定第一环境图像相对第二环境图像的相对位姿;根据相对位姿和第二环境图像对应的机器人位姿,计算机器人的初步估计位姿。

在一可选实施方式中,上述在栅格地图上进行局部匹配的动作进一步包括:根据初步估计位姿确定栅格地图上的匹配窗口;根据激光传感器在机器人处于当前位置时采集到的环境数据,在栅格地图上的匹配窗口中进行匹配,以获取机器人的最终位姿。

在一可选实施方式中,一个或多个处理器执行的动作还包括以下至少一种判断动作:

在重定位之前,根据所述激光传感器在所述机器人导航过程中采集到的环境数据和所述栅格地图,判断是否需要启动重定位;

在重定位之前,根据所述视觉传感器在所述机器人导航程中采集到的环境图像和所述视觉地图,判断是否需要启动重定位;

当所述至少一种判断动作中存在判断结果为是的判断动作时,确定需要启动重定位。

进一步可选地,上述根据环境数据和栅格地图判断是否需要启动重定位的动作进一步包括:计算激光传感器在机器人导航程中采集到的环境数据与栅格地图的匹配得分;以及在匹配得分低于设定的得分阈值时,确定需要启动重定位;反之,确定不需要启动重定位。

进一步可选地,上述根据环境图像和视觉地图判断是否需要启动重定位的动作进一步包括:将视觉传感器在机器人导航程中采集到的环境图像在视觉地图中进行匹配;若在视觉地图中匹配到第三环境图像,计算第三环境图像对应的机器人位姿和在机器人导航过程中基于栅格地图计算出的机器人位姿之间的距离;在该距离大于设定距离阈值时,确定需要启动重定位;反之,确定不需要启动重定位。

图5为本申请又一示例性实施例提供的一种环境地图构建装置的结构示意图。该装置可以作为机器人的内部模块实现;或者,也可以独立于机器人,与机器人通信连接,并可对机器人进行控制。如图5所示,该装置包括:探测模块51、第一构建模块52和第二构建模块53。

探测模块51,用于分别利用机器人的激光传感器和视觉传感器对机器人所处环境进行探测。

第一构建模块52,用于根据激光传感器探测到的环境数据构建栅格地图。

第二构建模块53,用于结合栅格地图构建过程中计算的机器人位姿,利用视觉传感器探测到的环境图像构建视觉地图;其中,栅格地图和视觉地图构成机器人所处环境的环境地图。

在一可选实施方式中,第二构建模块53具体用于:针对视觉传感器采集到的任一环境图像,从栅格地图构建过程中计算的机器人位姿中,选择时间上与该环境图像的采集时间相匹配的机器人位姿,作为该环境图像对应的机器人位姿;根据该环境图像对应的机器人位姿和该环境图像中的特征点,确定该环境图像是否属于关键帧图像;当确定该环境图像属于关键帧图像时,将该环境图像对应的机器人位姿和该环境图像中的特征点加入该视觉地图中。

进一步可选地,第二构建模块53在确定任一环境图像是否属于关键帧图像时,具体用于:若该环境图像包含的特征点数量大于特征点数量阈值,该环境图像与上一关键帧图像之间的机器人位姿差异大于位姿差异阈值,且与上一关键帧图像之间的视差大于视差阈值,确定该环境图像为新的关键帧图像。

本实施例提供的环境地图构建装置,可结合机器人的激光传感器和视觉传感器,利用激光传感器采集到的环境数据构建栅格地图,进一步将栅格地图构建过程中计算出的机器人位姿与视觉传感器采集到的环境图像相结合构建视觉地图,最终生成包含栅格地图和视觉地图的环境地图。该环境地图是一种融合地图,所包含的信息更加丰富,在基于该环境地图进行导航定位以及重定位时有利于提高精度。

相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行包括以下的动作:

分别利用机器人的激光传感器和视觉传感器对机器人所处环境进行探测;

根据激光传感器探测到的环境数据构建栅格地图;

结合栅格地图构建过程中计算的机器人位姿,利用视觉传感器探测到的环境图像构建视觉地图;

其中,栅格地图和视觉地图构成机器人所处环境的环境地图。

在一可选实施方式中,上述构建视觉地图的动作进一步包括:针对视觉传感器采集到的任一环境图像,从栅格地图构建过程中计算的机器人位姿中,选择时间上与该环境图像的采集时间相匹配的机器人位姿,作为该环境图像对应的机器人位姿;根据该环境图像对应的机器人位姿和该环境图像中的特征点,确定该环境图像是否属于关键帧图像;当确定该环境图像属于关键帧图像时,将该环境图像对应的机器人位姿和该环境图像中的特征点加入该视觉地图中。

进一步可选地,上述确定环境图像是否属于关键帧图像,包括:若该环境图像包含的特征点数量大于特征点数量阈值,该环境图像与上一关键帧图像之间的机器人位姿差异大于位姿差异阈值,且与上一关键帧图像之间的视差大于视差阈值,确定该环境图像为新的关键帧图像。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1