一种定位方法和装置与流程

文档序号:15516209发布日期:2018-09-25 18:16阅读:108来源:国知局

本发明涉及电子技术领域,尤其涉及一种定位方法和装置。



背景技术:

目前,移动机器人被广泛应用于服务行业,其应用场景更多的趋向于商场、超市、医院等室内环境。随着应用环境的复杂度增加,移动机器人在运动过程中对定位精度的要求也越来越高。

同时,随着微处理器的不断发展,越来越多的机器人提供商开始采用微处理器作为移动机器人的核心处理单元。

但是,由于微处理器的处理能力和资源有限,现有定位精度高的定位方法往往依赖于较强的系统处理能力,并且需要占用较多的系统资源,使得使用微处理器的移动机器人在进行定位时受到限制,导致定位精度不高和定位效率低。



技术实现要素:

本发明实施例提供一种定位方法和装置,旨在解决现有技术中使用微处理器的移动机器人定位效率低且定位精度不高的问题。

第一方面,本发明实施例提供了一种定位方法,该定位方法包括:

获取初始点云数据,其中,所述初始点云数据包括预设个数的采样点的采样信息,所述采样信息包括所述采样点的位置坐标和方向角;

计算所述初始点云数据与预设时间段内的历史点云数据之间的点云匹配度;

按照预设数量的步长变化量修改所述初始点云数据,得到所述预设数量的初始参考点云数据,并计算每个所述初始参考点云数据与所述历史点云数据之间的点云匹配度,其中,所述步长变化量包括位置坐标变化量和方向角变化量;

根据所述初始点云数据的点云匹配度和每个所述初始参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第一点云数据;

按照所述预设数量的步长变化量修改所述第一点云数据,得到所述预设数量第一参考点云数据,并计算每个所述第一参考点云数据与所述历史点云数据之间的点云匹配度;

根据所述第一点云数据的点云匹配度和每个所述第一参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第二点云数据;

若所述第一点云数据的点云匹配度大于或者等于所述第二点云数据的点云匹配度,则根据所述第一点云数据输出定位信息,其中,所述定位信息包括机器人的位置和姿态。

另一方面,本发明实施例提供了一种定位装置,该定位装置包括:

获取模块,用于获取初始点云数据,其中,所述初始点云数据包括预设个数的采样点的采样信息,所述采样信息包括所述采样点的位置坐标和方向角;

计算模块,用于计算所述初始点云数据与预设时间段内的历史点云数据之间的点云匹配度;

第一修改模块,用于按照预设数量的步长变化量修改所述初始点云数据,得到所述预设数量的初始参考点云数据,并计算每个所述初始参考点云数据与所述历史点云数据之间的点云匹配度,其中,所述步长变化量包括位置坐标变化量和方向角变化量;

第一选取模块,用于根据所述初始点云数据的点云匹配度和每个所述初始参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第一点云数据;

第二修改模块,用于按照所述预设数量的步长变化量修改所述第一点云数据,得到所述预设数量的第一参考点云数据,并计算每个所述第一参考点云数据与所述历史点云数据之间的点云匹配度;

第二选取模块,用于根据所述第一点云数据的点云匹配度和每个所述第一参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第二点云数据;

第一输出模块,用于若所述第一点云数据的点云匹配度大于或者等于所述第二点云数据的点云匹配度,则根据所述第一点云数据输出定位信息,其中,所述定位信息包括机器人的位置和姿态。

本发明实施获取包括采样点的位置坐标和方向角的初始点云数据,计算初始点云数据与预设时间段内的历史点云数据之间的点云匹配度,并以该初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,从初始点云数据和初始参考点云数据中,选取最大点云匹配度对应的点云数据,作为第一点云数据,再以第一点云数据为基础,按照与得到第一点云数据相同的方法得到第二点云数据,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出机器人的位置和姿态,通过将当前点云数据与历史点云数据在不同方位的刚性匹配,以及梯度下降的查找方式匹配最优的方位作为定位优化方向,实现在定位优化方向的快速收敛,使得搭载微处理器的机器人能够快速准确的实现定位,从而提高定位效率和定位精度。

附图说明

图1是本发明实施例一提供的一种定位方法的流程图;

图2是本发明实施例二提供的一种定位方法的流程图;

图3是本发明实施例三提供的一种定位装置的结构示意图;

图4是本发明实施例四提供的一种定位装置的结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体附图对本发明的实现进行详细的描述。

实施例一:

图1是本发明实施例一提供的一种定位方法的流程图,本发明实施例的执行主体为机器人,其具体可以是机器人的微处理器设备,图1示例的定位方法具体可以包括步骤s101至步骤s107,详述如下:

s101、获取初始点云数据,其中,该初始点云数据包括预设个数的采样点的采样信息,该采样信息包括预设个数的采样点的位置坐标和方向角。

点云(pointcloud)也称为激光点云,是利用激光在同一空间参考系下获取物体表面每个采样点的空间坐标,得到的是一系列表达目标空间分布和目标表面特性的海量点的集合,这个点集合即为点云。点云数据可以包括空间分辨率、点位精度,表面法向量等。

点云数据可以根据各种扫描范围的激光传感器或者各种可以转换为点云输出的传感器采集到的信息获取。

在本发明实施例中,机器人可以包括机器人本体、激光传感器和微处理器等,其中,机器人本体可以包括车轮、车体、里程计、电机、电机驱动器,以及机器人本体运动控制器等,激光传感器用于采集在激光传感器的扫描范围内,机器人本体与当前环境中的参照物体之间的相对距离,微处理器用于处理激光传感器采集的数据,完成对机器人的定位并输出定位信息。

具体地,微处理器根据采集到的预设个数的采样点的采样信息,获取带有位置坐标和方向角信息的初始点云数据。

采样点的预设个数具体可以根据实际应用的需要进行设置,此处不做限制。

s102、计算初始点云数据与预设时间段内的历史点云数据之间的点云匹配度。

具体地,微处理器将步骤s101得到的初始点云数据,与预设时间段内的历史点云数据进行匹配,并计算点云匹配度,该点云匹配度用于标识初始点云数据中的采样点与历史点云数据中对应的采样点之间的采样信息的偏差情况。

预设时间段内的历史点云数据是指在当前时刻之前的预设时间段内的所有点云数据。需要说明的是,预设时间段的具体时长可以根据实际应用的需要进行设置,此处不做限制。

s103、按照预设数量的步长变化量修改初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,其中,该步长变化量包括位置坐标变化量和方向角变化量。

步长变化量包括位置坐标变化量和方向角变化量,每个步长变化量在坐标或者方向上有固定变化量。例如,假设在x坐标、y坐标和方向角均预设了5个固定变化量,则一共有125(5*5*5=125)种步长变化量,即预设数量为125。

具体地,以步骤s101获取的初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每种步长变化量下的初始参考点云数据与历史点云数据之间的点云匹配度,该点云匹配度的计算方法与步骤s102中计算点云匹配度的计算方法相同。

s104、根据初始点云数据的点云匹配度和每个初始参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第一点云数据。

具体地,从步骤s102计算得到的初始点云数据的点云匹配度,以及步骤s103计算得到的在每一种步长变化量下的初始参考点云数据的点云匹配度中,选出最大点云匹配度,将最大点云匹配度对应的点云数据作为第一点云数据。

s105、按照预设数量的步长变化量修改第一点云数据,得到预设数量的第一参考点云数据,并计算每个第一参考点云数据与历史点云数据之间的点云匹配度。

具体地,采用与步骤s103相同的方法,以步骤s104得到的第一点云数据为基础,按照预设数量的步长变化量修改第一点云数据,得到预设数量的第一参考点云数据,并计算每种步长变化量下的第一参考点云数据与历史点云数据之间的点云匹配度,该点云匹配度的计算方法与步骤s102中计算点云匹配度的计算方法相同。

s106、根据第一点云数据的点云匹配度和每个第一参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第二点云数据。

具体地,采用与步骤s104相同的方法,从步骤s104计算得到的第一点云数据的点云匹配度,以及步骤s105计算得到的在每一种步长变化量下的第一参考点云数据的点云匹配度中,选出最大点云匹配度,将最大点云匹配度对应的点云数据作为第二点云数据。

s107、若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出定位信息,其中,该定位信息包括机器人的位置和姿态。

具体地,判断第一点云数据的点云匹配度和第二点云数据的点云匹配度之间的大小,如果第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则认为第一点云数据为机器人当前的最佳定位数据,因此,根据该第一点云数据中采样点的位置坐标和方向角确定机器人当前的位置和姿态,并输出包含机器人的位置和姿态的定位信息。

可以理解的是,在本发明实施例中,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出定位信息,在其他实施例中,也可以是若第一点云数据的点云匹配度大于第二点云数据的点云匹配度,则根据第一点云数据输出定位信息。

本实施例中,获取包括采样点的位置坐标和方向角的初始点云数据,计算初始点云数据与预设时间段内的历史点云数据之间的点云匹配度,并以该初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,从初始点云数据和初始参考点云数据中,选取最大点云匹配度对应的点云数据,作为第一点云数据,再以第一点云数据为基础,按照与得到第一点云数据相同的方法得到第二点云数据,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出机器人的位置和姿态,通过将当前点云数据与历史点云数据在不同方位的刚性匹配,以及梯度下降的查找方式匹配最优的方位作为定位优化方向,实现在定位优化方向的快速收敛,使得搭载微处理器的机器人能够快速准确的实现定位,从而提高定位效率和定位精度。

实施例二:

图2是本发明实施例二提供的一种定位方法的流程图,本发明实施例的执行主体为机器人,其具体可以是机器人的微处理器设备,图2示例的定位方法具体可以包括步骤s201至步骤s216,详述如下:

s201、采集预设个数的每个采样点的里程计信息和激光传感器信息。

里程计是用于测量行程的传感装置,安装在机器人上的里程计通过记录电机转动的圈数计算机器人的行走里程。

具体地,微处理器通过里程计采集每个采样点的里程计信息,并通过激光传感器采集每个采样点与当前环境中对应的参照点之间的相对距离等激光传感器信息。

s202、根据里程计信息计算每个采样点的位置坐标和方向角。

具体地,微处理器根据里程计信息中的行程数据计算每个采样点的位置坐标和方向角。

s203、将每个采样点的位置坐标和方向角与激光传感器信息关联,生成初始点云数据,其中,该初始点云数据包括预设个数的采样点的采样信息,该采样信息包括采样点的位置坐标和方向角。

具体地,微处理器将每个采样点的位置坐标和方向角与激光传感器信息关联,即将每个采样点的位置坐标和方向角添加到该采样点的激光传感器信息中,让激光传感器信息中包含采样点的位置坐标和方向角,并根据关联后的激光传感器信息生成初始点云数据,该初始点云数据包括预设个数的采样点的采样信息,采样信息包括采样点的位置坐标和方向角。

采样点的预设个数具体可以根据实际应用的需要进行设置,此处不做限制。

s204、按照点云匹配条件,将初始点云数据与预设时间段内的历史点云数据进行匹配,得到满足该点云匹配条件的历史点云数据,其中,该点云匹配条件包括初始点云数据中的每个采样点与历史点云数据中的对应采样点之间的距离的平方和最小。

预设时间段内的历史点云数据是指在当前时刻之前的预设时间段内的所有点云数据。需要说明的是,预设时间段的具体时长可以根据实际应用的需要进行设置,此处不做限制。

具体地,初始点云数据中的采样点会在每个历史点云数据中有一个对应的采样点,在初始点云数据和每个历史点云数据中,计算对应采样点之间的距离的平方和,假设在预设时间段内有j个历史点云数据,则针对每个历史点云数据都能够计算得到一个距离的平方和,从计算得到的j个距离的平方和中选取最小值,该最小值对应的历史点云数据即为满足点云匹配条件的历史点云数据。

s205、计算初始点云数据与满足点云匹配条件的历史点云数据之间的角度偏差和距离偏差,其中,距离偏差包括初始点云数据中的每个采样点与满足点云匹配条件的历史点云数据中的对应采样点之间的距离误差。

具体地,根据步骤s204确定的历史点云数据,计算该历史点云数据与步骤s203生成的初始点云数据之间的角度偏差和距离偏差。

角度偏差可以是初始点云数据和历史点云数据之间的中心角度偏差,或者是每个对应采样点之间的角度偏差的综合,角度偏差的具体计算方式可以根据实际应用的需要进行选择,此处不做限制。

距离偏差包括在步骤s203生成的初始点云数据和步骤s204确定的历史点云数据中对应采样点之间的距离误差。

s206、按照公式(1)计算初始点云数据与满足点云匹配条件的历史点云数据之间的点云匹配度:

其中,s为点云匹配度,α为预设的可信度参数,θ为角度偏差,β为预设的匹配度参数,mi为距离误差小于预设的误差阈值的采样点中第i个采样点对应的距离误差,n为距离误差小于预设的误差阈值的采样点的个数。

具体地,预设的可信度参数α、预设的匹配度参数β,以及预设的误差阈值可以根据实际应用需要进行设置,此处不做限制。

角度偏差θ为步骤s205计算得到的初始点云数据与满足点云匹配条件的历史点云数据之间的角度偏差。

根据步骤s205计算得到的在初始点云数据和满足点云匹配条件的历史点云数据中对应采样点之间的距离误差,确定距离误差小于误差阈值的采样点的个数n,mi为在这n个采样点中第i个采样点对应的距离误差。

s207、按照预设数量的步长变化量修改初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,其中,该步长变化量包括位置坐标变化量和方向角变化量。

步长变化量包括位置坐标变化量和方向角变化量,每个步长变化量在坐标或者方向上有固定变化量,例如,假设在x坐标、y坐标和方向角均预设了5个固定变化量,则一共有125(5*5*5=125)种步长变化量,即预设数量为125。

具体地,以步骤s203生成的初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每种步长变化量下的初始参考点云数据与历史点云数据之间的点云匹配度,该点云匹配度的计算方法与步骤s204至步骤s206计算点云匹配度的计算方法相同。

s208、根据初始点云数据的点云匹配度和每个初始参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第一点云数据。

具体地,从步骤s206计算得到的初始点云数据的点云匹配度,以及步骤s207计算得到的在每一种步长变化量下的初始参考点云数据的点云匹配度中,选出最大点云匹配度,将最大点云匹配度对应的点云数据作为第一点云数据。

s209、按照预设数量的步长变化量修改第一点云数据,得到预设数量的第一参考点云数据,并计算每个第一参考点云数据与历史点云数据之间的点云匹配度。

具体地,采用与步骤s207相同的方法,以第一点云数据为基础,按照预设数量的步长变化量修改第一点云数据,得到预设数量的第一参考点云数据,并计算每种步长变化量下的第一参考点云数据与历史点云数据之间的点云匹配度,该点云匹配度的计算方法与步骤s204至步骤s206计算点云匹配度的计算方法相同。

s210、根据第一点云数据的点云匹配度和每个第一参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第二点云数据。

具体地,采用与步骤s208相同的方法,从第一点云数据的点云匹配度,和步骤s209计算得到的在每一种步长变化量下的第一参考点云数据的点云匹配度中,选出最大点云匹配度,将最大点云匹配度对应的点云数据作为第二点云数据。

s211、判断第一点云数据的点云匹配度是否大于或者等于第二点云数据的点云匹配度。

具体地,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则执行步骤s212,否则执行步骤s213。

s212、根据第一点云数据输出定位信息,其中,该定位信息包括机器人的位置和姿态。

具体地,如果第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则认为第一点云数据为机器人当前的最佳定位数据,因此,根据该第一点云数据中采样点的位置坐标和方向角确定机器人当前的位置和姿态,并输出包含机器人的位置和姿态的定位信息。

可以理解的是,在本发明实施例中,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出定位信息,在其他实施例中,也可以是若第一点云数据的点云匹配度大于第二点云数据的点云匹配度,则根据第一点云数据输出定位信息。

当微处理器根据第一点云数据输出定位信息后,流程结束。

s213、获取当前的优化次数。

具体地,若第一点云数据的点云匹配度小于第二点云数据的点云匹配度,则微处理器获取当前的优化次数,该优化次数可以通过统计步骤s211的执行次数得到。

s214、判断当前的优化次数是否达到预设的次数阈值。

具体地,判断当前的优化次数是否达到预设的次数阈值,若当前的优化次数未达到预设的次数阈值,则执行步骤s215,否则执行步骤s216。

预设的次数阈值可以设置为10次,但并不限于此,具体的次数阈值可以根据实际应用的需要进行设置,此处不做限制。

s215、将第二点云数据识别为第一点云数据,返回步骤s209继续执行。

具体地,若当前的优化次数未达到预设的次数阈值,则将步骤s210得到的第二点云数据重新识别为第一点云数据,并返回步骤s209,继续寻找定位优化方向。

s216、根据第二点云数据输出定位信息。

具体地,若当前的优化次数达到预设的次数阈值,则不再继续寻找定位优化方向,直接认为第二点云数据即为机器人当前的最佳定位数据,根据该第二点云数据中采样点的位置坐标和方向角确定机器人当前的位置和姿态,并输出包含机器人的位置和姿态的定位信息。

当微处理器根据第二点云数据输出定位信息后,流程结束。

本实施例中,首先通过采集里程计信息计算采样点的位置坐标和方向角,并与激光传感器信息关联,生成包含位置坐标和方向角的初始点云数据,然后按照点云匹配条件将初始点云数据与预设时间段内的历史点云数据进行匹配,得到满足该点云匹配条件的历史点云数据,并计算初始点云数据与该历史点云数据之间的角度偏差和距离偏差,根据该角度偏差和距离偏差按照公式(1)计算初始点云数据与满足点云匹配条件的历史点云数据之间的点云匹配度,之后以该初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,从初始点云数据和初始参考点云数据中,选取最大点云匹配度对应的点云数据,作为第一点云数据,再以第一点云数据为基础,按照与得到第一点云数据相同的方法得到第二点云数据,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出机器人的位置和姿态,否则继续以第二点云数据为基础寻找定位优化方向,直到达到最大优化次数为止。通过将当前点云数据与历史点云数据在不同方位的刚性匹配,以及梯度下降的方式查找匹配最优的方位作为定位优化方向,实现在定位优化方向的快速收敛,使得搭载微处理器的移动机器人能够快速准确的实现定位,从而提高定位效率和定位精度。

实施例三:

图3是本发明实施例三提供的一种定位装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图3示例的一种定位装置可以是前述实施例一提供的定位方法的执行主体。图3示例的一种定位装置包括:获取模块31、计算模块32、第一修改模块33、第一选取模块34、第二修改模块35、第二选取模块36和第一输出模块37,各功能模块详细说明如下:

获取模块31,用于获取初始点云数据,其中,该初始点云数据包括预设个数的采样点的采样信息,该采样信息包括预设个数的采样点的位置坐标和方向角;

计算模块32,用于计算获取模块31获取到的初始点云数据与预设时间段内的历史点云数据之间的点云匹配度;

第一修改模块33,用于按照预设数量的步长变化量修改获取模块31获取到的初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,其中,步长变化量包括位置坐标变化量和方向角变化量;

第一选取模块34,用于根据计算模块32得到的初始点云数据的点云匹配度和第一修改模块33得到的每个初始参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第一点云数据;

第二修改模块35,用于按照预设数量的步长变化量修改第一选取模块34得到的第一点云数据,得到预设数量的第一参考点云数据,并计算每个第一参考点云数据与历史点云数据之间的点云匹配度;

第二选取模块36,用于根据第一选取模块34得到的第一点云数据的点云匹配度和第二修改模块35得到的每个第一参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第二点云数据;

第一输出模块37,用于若第一选取模块34得到的第一点云数据的点云匹配度大于或者等于第二选取模块36得到的第二点云数据的点云匹配度,则根据第一点云数据输出定位信息,其中,该定位信息包括机器人的位置和姿态。

本实施例提供的一种定位装置中各模块实现各自功能的过程,具体可参考前述图1所示实施例的描述,此处不再赘述。

从上述图3示例的一种定位装置可知,本实施例中,获取包括采样点的位置坐标和方向角的初始点云数据,计算初始点云数据与预设时间段内的历史点云数据之间的点云匹配度,并以该初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,从初始点云数据和初始参考点云数据中,选取最大点云匹配度对应的点云数据,作为第一点云数据,再以第一点云数据为基础,按照与得到第一点云数据相同的方法得到第二点云数据,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出机器人的位置和姿态,通过将当前点云数据与历史点云数据在不同方位的刚性匹配,以及梯度下降的查找方式匹配最优的方位作为定位优化方向,实现在定位优化方向的快速收敛,使得搭载微处理器的机器人能够快速准确的实现定位,从而提高定位效率和定位精度。

实施例四:

图4是本发明实施例四提供的一种定位装置的结构示意图,为了便于说明,仅示出了与本发明实施例相关的部分。图4示例的一种定位装置可以是前述实施例二提供的定位方法的执行主体。图4示例的一种定位装置包括:获取模块41、计算模块42、第一修改模块43、第一选取模块44、第二修改模块45、第二选取模块46和第一输出模块47,各功能模块详细说明如下:

获取模块41,用于获取初始点云数据,其中,该初始点云数据包括预设个数的采样点的采样信息,该采样信息包括预设个数的采样点的位置坐标和方向角;

计算模块42,用于计算获取模块41获取到的初始点云数据与预设时间段内的历史点云数据之间的点云匹配度;

第一修改模块43,用于按照预设数量的步长变化量修改获取模块41获取到的初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,其中,步长变化量包括位置坐标变化量和方向角变化量;

第一选取模块44,用于根据计算模块42得到的初始点云数据的点云匹配度和第一修改模块43得到的每个初始参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第一点云数据;

第二修改模块45,用于按照预设数量的步长变化量修改第一点云数据,得到预设数量的第一参考点云数据,并计算每个第一参考点云数据与历史点云数据之间的点云匹配度;

第二选取模块46,用于根据第一点云数据的点云匹配度和第二修改模块45得到的每个第一参考点云数据的点云匹配度,确定最大点云匹配度对应的点云数据,作为第二点云数据;

第一输出模块47,用于若第一点云数据的点云匹配度大于或者等于第二选取模块46得到的第二点云数据的点云匹配度,则根据第一点云数据输出定位信息,其中,该定位信息包括机器人的位置和姿态。

进一步地,获取模块41包括:

采集子模块411,用于采集每个采样点的里程计信息和激光传感器信息;

信息计算子模块412,用于根据采集子模块411得到的里程计信息计算每个采样点的位置坐标和方向角;

生成子模块413,用于将信息计算子模块412得到的位置坐标和方向角与采集子模块411采集的激光传感器信息关联,生成初始点云数据。

进一步地,计算模块42包括:

数据匹配子模块421,用于按照点云匹配条件,将生成子模块413生成的初始点云数据与预设时间段内的历史点云数据进行匹配,得到满足点云匹配条件的历史点云数据,其中,点云匹配条件包括初始点云数据中的每个采样点与历史点云数据中的对应采样点之间的距离的平方和最小;

偏差计算子模块422,用于计算初始点云数据与数据匹配子模块421得到的满足点云匹配条件的历史点云数据之间的角度偏差和距离偏差,其中,该距离偏差包括初始点云数据中的每个采样点与满足点云匹配条件的历史点云数据中的对应采样点之间的距离误差;

匹配度计算子模块423,用于按照公式(2)计算初始点云数据与满足点云匹配条件的历史点云数据之间的点云匹配度:

其中,s为点云匹配度,α为预设的可信度参数,θ为偏差计算子模块422计算的角度偏差,β为预设的匹配度参数,mi为偏差计算子模块422得到的距离误差小于预设的误差阈值的采样点中第i个采样点对应的距离误差,n为偏差计算子模块422得到的距离误差小于预设的误差阈值的采样点的个数。

进一步地,该定位装置还包括:

优化次数获取模块48,用于若第一点云数据的点云匹配度小于第二选取模块46得到的第二点云数据的点云匹配度,则获取当前的优化次数;

重复处理模块49,用于若优化次数获取模块48获取的优化次数未达到预设的次数阈值,则将第二点云数据识别为第一点云数据,返回第二修改模块45执行所述按照预设数量的步长变化量修改第一点云数据,得到预设数量第一参考点云数据,并计算每个第一参考点云数据与历史点云数据之间的点云匹配度。

进一步地,该定位装置还包括:

第二输出模块50,用于若优化次数获取模块48获取的优化次数达到预设的次数阈值,则根据第二选取模块46得到的第二点云数据输出定位信息。

本实施例提供的一种定位装置中各模块实现各自功能的过程,具体可参考前述图2所示实施例的描述,此处不再赘述。

从上述图4示例的一种定位装置可知,本实施例中,首先通过采集里程计信息计算采样点的位置坐标和方向角,并与激光传感器信息关联,生成包含位置坐标和方向角的初始点云数据,然后按照点云匹配条件将初始点云数据与预设时间段内的历史点云数据进行匹配,得到满足该点云匹配条件的历史点云数据,并计算初始点云数据与该历史点云数据之间的角度偏差和距离偏差,根据该角度偏差和距离偏差按照公式(2)计算初始点云数据与满足点云匹配条件的历史点云数据之间的点云匹配度,之后以该初始点云数据为基础,按照预设数量的步长变化量修改该初始点云数据,得到预设数量的初始参考点云数据,并计算每个初始参考点云数据与历史点云数据之间的点云匹配度,从初始点云数据和初始参考点云数据中,选取最大点云匹配度对应的点云数据,作为第一点云数据,再以第一点云数据为基础,按照与得到第一点云数据相同的方法得到第二点云数据,若第一点云数据的点云匹配度大于或者等于第二点云数据的点云匹配度,则根据第一点云数据输出机器人的位置和姿态,否则继续以第二点云数据为基础寻找定位优化方向,直到达到最大优化次数为止。通过将当前点云数据与历史点云数据在不同方位的刚性匹配,以及梯度下降的方式查找匹配最优的方位作为定位优化方向,实现在定位优化方向的快速收敛,使得搭载微处理器的移动机器人能够快速准确的实现定位,从而提高定位效率和定位精度。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每一个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同或者相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

值得注意的是,上述装置实施例中,所包括的各个模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

本领域普通技术人员可以理解,实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如rom/ram、磁盘或光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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