一种基于Slam定位方法、装置、电子设备及计算机存储介质与流程

文档序号:16645945发布日期:2019-01-16 08:17阅读:207来源:国知局
一种基于Slam定位方法、装置、电子设备及计算机存储介质与流程

本公开涉及机器人领域,具体涉及一种基于slam定位方法、装置、电子设备及计算机存储介质。



背景技术:

随着用于个人或商业用途的自动装置(即机器人设备)的广泛使用,对于机器人的效率,智能化的要求越来越高,如对于自主行走机器人来说,要求机器人对于行走路线要有较高效的行走路径规划。目前基于视觉slam的自主行走机器人能够在室内的场景工作良好,这是因为室内环境能够提供较为丰富的视觉地标点信息,使得slam算法总是能够捕捉到足够多的地标点(landmark),进而完成自主定位和导航。例如天花板中存在的直线或拐角的地标点信息总是能够被指向朝上的图像传感器捕捉。然而,如果基于视觉slam的自主行走机器人(如自主行走的割草机)在室外工作时,则可能遇到较多的挑战。这是由于室外的环境更为复杂。这里不仅是指光照情况的复杂,场景设置也比室内更为复杂。例如,在一些情况下,图像传感器的固定朝向指向了天空,而天空中没有任何可被识别为地标点的视觉信息,例如一片蓝天。此时slam将无法获得足够多和足够好的地标点进而完成自主定位。再例如,机器人的图像传感器在机器人第一姿态时捕捉到了较好的地标点,而由于作业需求,机器人短时间内转变为第二姿态(例如割草方向转变),此时图像传感器视野地标点瞬间变差,进而导致自主定位丢失。

在现有技术中,一种方法是采用设置人工地标,并通过图像识别技术实现自动装置对于人工地标的图像识别来解决定位问题;另一种方法是基于光学定位系统来解决定位问题。然而上述两种方法对于环境复杂的室外来说并不能满足定位的准确性。



技术实现要素:

为了解决上述问题,本公开提出了一种基于slam的定位方法、装置、电子设备和计算机存储介质,针对复杂的室外应用场景提高了机器人自主行走的定位准确性。

本公开的第一方面提供了一种基于slam的定位方法,包括:

采集机器人当前状态的图像信息;

根据所述图像信息计算地标点信息;

根据所述地标点信息确定追踪方向;

采集所述追踪方向的图像信息进行定位。

在一些实施例中,还包括:如果所述地标点信息不满足预设条件时,调整所述图像信息的采集角度。

在一些实施例中,所述预设条件包括:

地标点的数量大于预先设定阈值σ,和/或

地标点的深度在预先设置深度范围d1~d2之间。

在一些实施例中,所述地标点信息包括地标点,所述根据所述地标点信息确定追踪方向包括:

根据坐标将地标点分成多个目标方向集,每个目标方向集包括至少一个地标点;

将所述目标方向集中的一个作为追踪方向。

在一些实施例中,所述将所述目标方向集中的一个作为追踪方向包括:

计算所述目标方向集的深度权重和,在预先设值深度范围之间,地标点的深度越大,权重越大;

将所述深度权重和最大的目标方向集作为追踪方向。

在一些实施例中,在所述采集所述追踪方向的图像信息进行定位之前,还包括:

比较当前状态的追踪方向与之前状态的追踪方向;

所述根据所述追踪方向进行定位包括:

如果当前状态的追踪方向优于之前状态的追踪方向,根据所述当前状态的追踪方向控制所述图像信息的采集角度的改变,使得能够采集到所述当前状态的追踪方向的图像信息以实现定位。

在一些实施例中,所述调整所述图像信息的采集角度包括:

在垂直和/或水平方向上进行旋转以调整所述图像信息的采集角度。

本公开的第二方面提供了一种基于slam的定位装置,包括:图像传感器、slam计算模块、场景追踪模块、转动平台和平台控制模块;

所述图像传感器采集机器人当前状态的图像信息并传输到所述slam计算模块;

所述slam计算模块根据所述图像信息完成定位和地图构建、并计算地标点信息发送给所述场景追踪模块;

所述场景追踪模块根据所述地标点信息确定追踪方向,并将所述追踪方向发送给所述平台控制模块;

所述转动平台与所述图像传感器相连,用于调整所述图像传感器的采集角度;

所述平台控制模块根据所述追踪方向发出控制信号给所述转动平台,调整所述图像传感器的角度使其采集追踪方向上的图像信息以进行定位。

在一些实施例中,所述场景追踪模块还判断所述地标点信息是否满足预设条件,如果不满足时,将调整所述图像信息的采集角度的控制信号发送给所述平台控制模块。

在一些实施例中,所述预设条件包括:

地标点的数量大于预先设定阈值σ,和/或

地标点的深度在预先设置深度范围d1~d2之间。

在一些实施例中,所述地标点信息包括地标点,所述场景追踪模块根据所述地标点信息确定追踪方向包括:

根据坐标将地标点分成多个目标方向集,每个目标方向集包括至少一个地标点;

将所述目标方向集中的一个作为追踪方向。

在一些实施例中,所述将所述目标方向集中的一个作为追踪方向包括:

计算所述目标方向集的深度权重和,在预先设值深度范围之间,地标点的深度越大,权重越大;

将所述深度权重和最大的目标方向集作为追踪方向。

在一些实施例中,在所述采集所述追踪方向的图像信息进行定位之前,所述场景追踪模块还比较当前状态的追踪方向与之前状态的追踪方向;

所述调整所述图像传感器的角度使其采集追踪方向上的图像信息以进行定位包括:

如果当前状态的追踪方向优于之前状态的追踪方向,根据所述当前状态的追踪方向控制所述图像信息的采集角度的改变,使得能够采集到所述当前状态的追踪方向的图像信息以实现定位。

在一些实施例中,所述调整所述图像传感器的采集角度包括:

在垂直和/或水平方向上进行旋转以调整所述图像传感器的采集角度。

在一些实施例中,所述转动平台为光学设备底部和固定支架连接的转向轴。

在一些实施例中,所述转动平台选自为以下至少一种:云台或脉冲数字码盘;所述云台可在水平和垂直方向上进行旋转,并将水平转角、垂直俯仰角实时动态反馈到所述平台控制模块;所述脉冲数字码盘可在水平方向上进行旋转,并计算出旋转角度反馈到所述平台控制模块。

本公开的第三方面提供了一种电子设备,包括:

存储器以及一个或多个处理器;

其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行,以使所述一个或多个处理器用于执行如前所述的方法。

本公开的第四方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可操作来执行如前所述的方法。

本公开提供了一种基于slam的定位方法、装置、电子设备和计算机存储介质,所述定位方法基于slam算法实时定位和构建地图,根据采集的图像信息获取地标点信息,根据所述地标点信息确定追踪方向,调整图像传感器的角度,使其能够采集追踪方向的图像信息,用于帮助机器人在自主行走过程中进行定位。本公开通过上述方法、装置提高了机器人在复杂的室外等应用场景中自主行走的定位准确性,并且实现简单,操作方便。

附图说明

图1是本公开的一种基于slam的定位方法的流程示意图;

图2是本公开的判断场景信息中的场景是否为可追踪场景的方法流程图;

图3是本公开的从可追踪场景中挑选最优追踪方向的方法流程图;

图4是本公开的一种slam定位装置的结构框图;

图5是本公开的基于slam定位系统的电子设备的结构框图;

图6(a)、(b)、(c)是实施例一中割草机器人的行走示意图;

图7是实施例三中空间方向切分示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本公开进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

slam(simultaneouslocalizationandmapping),也称为cml(concurrentmappingandlocalization),即时定位与地图构建,或并发建图与定位。

本公开的第一方面提供了一种基于slam的定位方法100,如图1所示,包括如下步骤:

步骤110、采集机器人当前状态的图像信息。

具体的,图像传感器通过转动平台安装到自主行走机器人的框架上,并在机器人自主行走的过程中实时采集图像信息,将所述图像信息传输给slam计算模块。所述图像传感器无具体要求,单目或双目都可以。

步骤120、根据所述图像信息计算场景信息,该计算的场景信息具体为地标点信息。

所述slam基于接收的图像信息完成即时定位和地图构建,在该即时定位和地图构建的过程中计算提取图像信息中的地标点(landmark)信息、图像传感器中摄像头的位置和角度信息以及图像传感器相对于自主行走机器人框架的姿态变化参数信息,并将上述这些中间信息传输给场景追踪模块。所述步骤120中的地标点信息包括地标点,室内的地标点包括墙角、固定家具、天花板的直线、拐角等,室外的地标点包括建筑物、树木等。

步骤130、根据所述地标点信息确定追踪方向。

具体包括,首先根据预设条件判断所述场景信息中的场景是否为可追踪场景(步骤200);所述预设条件包括:地标点的数量大于预先设定阈值σ,和/或,地标点的深度在预先设置深度范围d1~d2之间。如果是,从所述可追踪场景中挑选最优追踪方向;如果否,则调整所述图像信息的采集角度。具体的,所述调整所述图像信息的采集角度的步骤包括在垂直和/或水平方向上进行旋转以调整所述图像信息的采集角度。然后,根据坐标将地标点分成多个目标方向集,每个目标方向集包括至少一个地标点;将所述目标方向集中的一个作为追踪方向,即挑选最优追踪方向(步骤300)。

在一具体实施方式中,所述判断场景信息中的场景是否为可追踪场景的步骤200包括,如图2所示:

步骤210、判断某场景的地标点数量是否大于一预先设定阈值σ;如果是,则表示该场景的地标点比较丰富;

步骤220、判断该场景的地标点深度是否在预先设置深度d1~d2之间;如果处于该深度范围内,则表示该场景深度适中;

步骤230、如果该场景同时满足上述两个条件,则该场景为可追踪场景;

步骤240、重复上述步骤,直至对所有场景信息都已进行判断。

通过上述步骤200,得到场景信息中的所有可追踪场景。在另一具体实施方式中,步骤210和步骤220的执行顺序可以替换。

在一具体实施方式中,从可追踪场景中挑选最优追踪方向的步骤300包括,如图3所示:

步骤310、将机器人所处空间按照水平维度切分成n个等分的空间,n为自然数;

步骤320、将所述地标点信息的坐标分入对应的等分空间中;

步骤330、计算所述坐标的深度信息,根据预先设定对不同深度信息的坐标赋予不同的权重;

步骤340、具有权重最高的坐标的地标点所在的等分空间的方向为所述最优追踪方向。

进一步地,如果多个等分空间中同时具有权重最高的坐标的地标点,则具有地标点数量最多的等分空间所在的方向为所述最优追踪方向。

通过上述步骤300,可以获得最优追踪方向。

步骤140、采集所述追踪方向的图像信息进行定位。

根据所述最优追踪方向控制所述图像信息的采集角度的改变,以便始终能够采集到该最优追踪方向上可追踪场景的信息,给所述机器人定位。

所述场景追踪模块根据所得的最优追踪方向发送控制信号给平台控制模块,该平台控制模块将接收的控制信号发送给转动平台以控制转动平台的转动,使得位于转动平台上的图像传感器采集图像信息的方向始终朝向所述最优追踪方向。同时,平台控制模块接收图像传感器相对于自主行走机器人框架的姿态变化参数,并传输给所述slam计算模块。

具体的,在步骤140、采集所述追踪方向的图像信息进行定位之前,还包括:

步骤130’、比较当前状态的追踪方向与之前状态的追踪方向;

步骤140、采集所述追踪方向的图像信息进行定位具体包括:

步骤140’、如果当前状态的追踪方向优于之前状态的追踪方向,根据所述当前状态的追踪方向控制所述图像信息的采集角度的改变,使得能够采集到所述当前状态的追踪方向的图像信息以实现定位。

具体的,所述根据最优追踪方向控制所述图像信息的采集角度的改变的步骤包括:在垂直和/或水平方向上进行旋转以使所述图像信息的采集角度始终朝向所述最优追踪方向。

通过上述基于slam的定位方法,能够对自主行走机器人的行走过程中进行实时定位而不会丢失方向。

本公开的第二方面提供了一种slam定位装置,如图4所示,包括:图像传感器1、slam计算模块2、场景追踪模块3、转动平台5和平台控制模块4;所述图像传感器1采集机器人当前状态的图像信息并传输到所述slam计算模块2;所述slam计算模块2根据所述图像信息完成定位和地图构建、并计算地标点信息发送给所述场景追踪模块3;所述场景追踪模块3根据所述地标点信息确定追踪方向,并将所述追踪方向发送给所述平台控制模块4;所述转动平台5与所述图像传感器1相连,用于调整所述图像传感器1的采集角度;所述平台控制模块4根据所述追踪方向发出控制信号给所述转动平台5,调整所述图像传感器1的角度使其采集追踪方向上的图像信息以进行定位。

进一步地,所述场景追踪模块3还判断所述地标点信息是否满足预设条件,如果不满足时,将调整所述图像信息的采集角度的控制信号发送给所述平台控制模块4。具体的,所述预设条件包括:地标点的数量大于预先设定阈值σ,和/或,地标点的深度在预先设置深度范围d1~d2之间。

进一步地,所述地标点信息包括地标点,所述场景追踪模块3根据所述地标点信息确定追踪方向包括:

根据坐标将地标点分成多个目标方向集,每个目标方向集包括至少一个地标点;将所述目标方向集中的一个作为追踪方向。具体的,所述将所述目标方向集中的一个作为追踪方向包括:计算所述目标方向集的深度权重和,在预先设值深度范围之间,地标点的深度越大,权重越大;将所述深度权重和最大的目标方向集作为追踪方向。

在所述采集所述追踪方向的图像信息进行定位之前,所述场景追踪模块3还比较当前状态的追踪方向与之前状态的追踪方向;调整所述图像传感器1的角度使其采集追踪方向上的图像信息以进行定位包括:如果当前状态的追踪方向优于之前状态的追踪方向,根据所述当前状态的追踪方向控制所述图像信息的采集角度的改变,使得能够采集到所述当前状态的追踪方向的图像信息以实现定位。所述调整所述图像传感器1的采集角度包括:在垂直和/或水平方向上进行旋转以调整所述图像传感器1的采集角度。

具体的,所述slam定位装置将图像传感器1安置在一个转动平台5上,转动平台5可以是一个脉冲数字码盘或云台。转动平台5安装于自主行走机器人框架之上。转动平台5的姿态由一平台控制模块4控制。一个场景追踪模块3从slam计算模块2中获取场景信息,并根据场景信息控制平台控制模块4使转动平台5转动,从而使得图像传感器1始终能够捕捉到场景充分的信息,此处场景充分是指信息中包含能够使得slam定位系统自主定位更为精准、易于视觉跟踪的参考信息。

进一步,为了使得slam定位系统维持在平台转动过程中和机器人行走过程中对场景坐标信息的一致性,平台控制模块4将转动平台5的姿态变化参数输入至slam计算模块2。

具体而言,在本公开的slam定位系统中,场景追踪模块3从slam计算模块2中提取场景信息,并根据场景信息输出控制信号到平台控制模块4,平台控制模块4控制转动平台转动5,使得场景追踪模块3始终能够捕捉到场景充分的信息。

转动平台5为光学设备底部和固定支架连接的转向轴,可以是云台或脉冲数字码盘。转动平台5受平台控制模块控制来转动图像传感器1。同时将图像传感器1相对于自主行走机器人框架的姿态变化参数传入平台控制模块4。码盘在水平方向旋转。码盘能利用计算系统将旋转码盘产生的脉冲增量针对某个基准数进行加减,计算出旋转角度并传入平台控制模块4。云台在水平和垂直两个方向上进行旋转。云台可以将云台运动的水平转角、垂直俯仰角等重要参数实时动态反馈到平台控制模块。

具体的,所述场景追踪模块3根据所述可追踪场景挑选最优追踪方向包括:

将机器人所处空间按照水平维度切分成n个等分的空间,n为自然数;

将所述地标点信息的坐标分入对应的等分空间中;

计算所述坐标的深度信息,根据预先设定对不同深度信息的坐标赋予不同的权重;

具有权重最高的坐标的地标点所在的等分空间的方向为所述最优追踪方向。

进一步地,如果多个等分空间中同时具有权重最高的坐标的地标点,则具有地标点数量最多的等分空间所在的方向为所述最优追踪方向。

图4中给出了本公开所述装置的框图示意图,其中图像传感器1连接到云台或脉冲数字码盘之上,云台或脉冲数字码盘固定于机器人框架之上。图像传感器1将数据传入slam计算模块2,slam计算模块2基于图像数据完成同时的定位和地图构建。在slam计算模块2完成定位和地图构建的过程中会提取图像信息中的地标点(landmark)信息,摄像头的位置和角度和图像传感器1相对于自主行走机器人框架的姿态变化参数。并将该中间信息输出至一个场景追踪模块3。场景追踪模块3基于地标点信息的评估得到一个最优追踪方向,并将追踪方向输出至平台控制模块4。平台控制模块4基于跟踪信息,输出控制信号到云台或脉冲数字码盘,使得图像传感器1的朝向始终指向最优追踪方向。其中,平台控制模块4将图像传感器1的姿态输入至slam计算模块2。以上各模块仅为功能性划分的模块,具体实施中也可以将场景追踪模块3和平台控制模块4合并。或者,由云台或脉冲数字码盘输出图像传感器1的姿态信息到slam模块。

本公开的第三方面提供了一种基于slam定位系统的电子设备500,包括,如图5所示:

存储器502以及一个或多个处理器(cpu)501;

其中,所述存储器502与所述一个或多个处理器501通信连接,所述存储器502中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器501执行,以使所述一个或多个处理器501用于执行如前所述的基于slam的定位方法。如图5所示,还包括输入单元503以及输出单元504,通过总线505彼此相连。在此,根据本申请的方法可以被实现为计算机程序,并且存储在存储器502中。电子设备500中的cpu501通过调用存储器502中存储的上述计算机程序,来具体实现本申请的方法中限定的基于slam的定位方法。

本公开的第四方面提供了一种计算机可读存储介质,其上存储有计算机可执行指令,当所述计算机可执行指令被计算装置执行时,可操作来执行如前所述的基于slam的定位方法。

下面通过具体实施例对本公开进行进一步地说明。

实施例一:

割草机器人框架上安装有脉冲数字码盘,码盘能在水平面根据平台控制模块的控制信号进行水平旋转。初始位置时,割草机器人7的图像传感器对准一栋房屋6。slam计算模块从这栋房屋6捕捉到多个地标点信息。场景追踪模块从slam计算模块接收地标点信息,将房屋6标记为一个可追踪场景。在割草机器人7按照一种预定义的路径行走,例如按工字型在一片区域内探索的过程中,当场景追踪模块发现周围环境中无法提取其他地标点信息(由于草坪和天空较为空旷的原因),则场景追踪模块输出控制信号到平台控制模块,使得图像传感器始终指向房屋方向。例如,在割草机器人7割草任务行进到草坪边界时,割草机器人7掉头,如图6(a)所示。其中圆柱形为割草机机器人7框架,箭头指示图像传感器的朝向,虚线的割草机机器人7代表着机器人行进中的某个位置。其中割草机器人7首先平行行进,并在到达割草工作区域的边界时,进行了一次掉头。由于割草机器人7的掉头动作,使得图像传感器的朝向发生了180度的翻转。由于新的方向内缺少类似房屋的复杂图像,因此场景追踪模块发现周围环境中无法提取其他地标点信息,此后场景追踪模块输出控制信号到平台控制模块,平台控制模块控制脉冲数字码盘旋转图像传感器,使得图像传感器拍摄的方向始终指向房屋6方向,如图6(b)所示。此时,由于场景追踪模块的作用,割草机器人7始终能够获得一组较好的地标点,避免了在掉头过程中丢失地标点而无法完成自主定位的情况。

在另外一种情况下,割草机器人7在行进过程中发现了另外一组较好的地标点,例如邻居家的房屋8,场景追踪模块输出控制信号到平台控制模块,控制码盘使得图像传感器朝向改变,从最初的房屋指向邻居家的房屋8。如图6(c)所示。

实施例二:

自主行走机器人安装有云台,云台能够在水平和垂直两个方向上进行旋转。自主行走机器人有可能从室内迁移至室外。在室内工作时,机器人控制云台使得图像传感器垂直朝向。通过天花板的图像数据,自主行走机器人能够很好的在室内完成定位。当机器人从室内移动到室外的过程中,场景追踪模块通过slam计算模块输出的场景信息发现无法捕捉到场景充分的信息。此时场景控制模块输出控制信号到平台控制模块,平台控制模块调转云台的角度,使得图像传感器朝向斜下方,在调转过程中,当平台控制模块能够捕捉到场景充分的信息时,停止调转。

实施例三:

场景追踪模块可以根据slam计算模块输出的信息单独完成场景追踪,也可以协同其他传感器或处理模块完成场景追踪。本实施例给出一种简单的根据slam计算模块完成场景追踪的方法,一个最为简单的方式为,场景追踪模块将空间均等切分成多个方向,并评估每个方向中的地标点质量和数量。场景追踪模块评估根据每个方向上的地标点9的数量和质量,可计算得到一个最优的方向,并控制转动平台使得图像传感器10对准该方向。如图7所示,场景追踪模块将机器人所处空间按水平维度切分成n个等分的空间。通过地标点的坐标信息,场景追踪模块可以将不同的坐标点分入对应的等分空间内。通过上述方法,再计算出不同坐标点所处的深度信息,并根据深度信息对不同坐标点赋予权重。例如赋予一个特定深度范围内的坐标点更高的权重,是由于通过统计数据显示处于该深度的坐标点较为稳定并能提供较高精度的定位信息。例如深度较小的坐标点意味着随机器人的移动很容易在下一帧被丢失,而深度过远的坐标点可能意味着图像距离较远,图像传感器10分辨率影响导致这些坐标点无法提供高精度的定位信息。进一步,坐标点的位置分布也可以作为衡量该方向的一个参数,在某一方向上的坐标点拥有较为多样的位置分布意味着该方向可以提供多个分散的定位信息,从而使得该方向为一个较优的定位方向。将图像传感器10拍摄到的空间切分为n个方向。通过上述方法,计算出当前一个中最优的方向并指向最优方向,例如当方向③为最优方向时,场景追踪模块通过平台控制模块将传感器朝向11由垂直向上转为方向③。

以上空间划分的方法只为一种可行的方法,并不作为本公开所限定的唯一的方法。场景追踪模块可以通过任何一种评估方式,对坐标点进行评估,从而得到一个最优追踪方向,该追踪方向与其他方向的差异在于能够相比其他方向他提供更好的使用slam方法定位的信息。

应当理解的是,本公开的上述具体实施方式仅仅用于示例性说明或解释本公开的原理,而不构成对本公开的限制。因此,在不偏离本公开的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。此外,本公开所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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