掌桥专利:专业的专利平台
掌桥专利
首页

一种无人驾驶设备的定位方法及装置

文献发布时间:2023-06-19 10:44:55


一种无人驾驶设备的定位方法及装置

技术领域

本说明书涉及定位技术领域,尤其涉及一种无人驾驶设备的定位方法及装置。

背景技术

目前,在无人驾驶设备领域,通常需要基于对无人驾驶设备的定位结果,进行无人驾驶设备的控制,例如,控制无人驾驶设备按照规划路径移动,或者控制无人驾驶设备避障。

现有技术中,应用无人驾驶设备的场景按照行驶路径的类型,可分为两种:一种是对大量重复任务,由于出发地和目的地固定,因此无人驾驶设备是按照既定的路径执行任务,也就是在固定路径上重复执行任务。另一种是针对个性化的任务,由于出发地和目的地根据任务需求而变化的,因此需要根据接收到的任务信息,再进行路径规划,也就是说无人驾驶设备执行任务是没有固定路径的。

在现有技术中,无人驾驶设备一般是基于全球定位系统(Global PositioningSystem,GPS)进行定位的。无人驾驶设备一般是通过GPS芯片接收卫星的信号,从而确定无人驾驶设备自身的位置。

但是,由于需要基于卫星信号进行定位,因此GPS定位的精度受无人驾驶设备周围环境影响较大,例如,当无人驾驶设备行驶到有较多高楼遮蔽的区域,或在多云多雾等天气下行驶时,GPS芯片会出现信号弱的情况,导致提供的位置信息误差较大。甚至当GPS芯片故障时,会出现无法提供位置信息的情况。由于无人驾驶设备的运行极大的依赖于GPS芯片提供的位置信息,因此当出现上述情况时,无人驾驶设备由于不能确定自身的位置,导致无法按照准确路径行进,更无法避开途中遇到的障碍物。

可见,现有无人驾驶设备亟需一种新的定位方法,以避免上述问题。

发明内容

本说明书提供一种无人驾驶设备的定位方法及装置,以部分的解决现有技术存在的上述问题。

本说明书采用下述技术方案:

本说明书提供了一种无人驾驶设备的定位方法,所述方法具体包括:

确定无人驾驶设备当前时刻的飞行高度;

从预设的各飞行高度区间对应的各特征地图中,确定所述飞行高度落入的飞行高度区间对应的特征地图,所述特征地图是所述无人驾驶设备或其它无人驾驶设备预先在沿指定飞行路线并按照所述飞行高度区间飞行时,根据各时刻采集的图像构建的;

将所述无人驾驶设备上的视觉传感器当前时刻采集的周视图像与所述飞行高度对应的特征地图进行匹配,确定当前时刻的第一位姿信息;

通过惯性测量单元确定当前时刻的第二位姿信息,根据所述第一位姿信息滤波更新所述第二位姿信息,并根据更新后的第二位姿信息确定所述无人驾驶设备在当前时刻的位姿。

可选地,确定无人驾驶设备当前时刻的飞行高度,具体包括:

获取无人驾驶设备上配置的俯视的双目视觉传感器在当前时刻采集的两帧图像,确定所述两帧图像中特征点的匹配关系,以根据所述匹配关系确定所述两帧图像中包含的各特征点与所述无人驾驶设备的距离;

根据确定出的各特征点与所述无人驾驶设备的距离,从各特征点中选择用于确定飞行高度的各特征点;

根据选择出的各特征点,确定所述无人驾驶设备当前时刻的飞行高度。

可选地,将所述无人驾驶设备上的视觉传感器当前时刻采集的周视图像与所述飞行高度对应的特征地图进行匹配,确定当前时刻的第一位姿信息,具体包括:

提取所述周视图像中各特征点的描述子;

根据所述各特征点的描述子,确定各特征点的三维坐标;

将所述周视图像中各特征点的描述子与所述飞行高度对应的特征地图中各特征点的描述子进行匹配;

根据匹配结果以及所述各特征点的三维坐标,确定在所述飞行高度对应的特征地图中,与所述周视图像对应的场景图像;

确定所述场景图像对应的位姿信息;

根据所述场景图像对应的位姿信息,确定当前时刻的第一位姿信息。

可选地,所述视觉传感器为周视的双目视觉传感器,所述各特征点的三维坐标是根据所述周视图像的两帧图像的匹配关系,通过三角化方法确定的;

根据所述场景图像对应的位姿信息,确定当前时刻的第一位姿信息,具体包括:

确定所述周视图像与所述场景图像对应的若干对特征点,其中,所述场景图像是所述无人驾驶设备或其它无人驾驶设备预先采集的用于确定所述飞行高度对应的特征地图的图像;

根据所述场景图像对应的位姿信息,将所述若干对特征点进行解算,确定当前时刻的第一位姿信息。

可选地,所述方法还包括:

将所述周视图像中的特征点与参考帧中的特征点进行解算,确定当前时刻的第三位姿信息。

可选地,将所述周视图像中的特征点与参考帧中的特征点进行解算,确定当前时刻的第三位姿信息,具体包括:

确定参考帧对应的位姿,其中,所述参考帧为所述周视的双目视觉传感器在当前时刻之前获取的图像;

根据所述周视图像中的特征点的描述子,以及所述参考帧中的特征点的描述子,确定所述周视图像与所述参考帧对应的若干对特征点;

根据所述参考帧对应的位姿,将所述若干对特征点进行解算,确定当前时刻的第三位姿信息。

可选地,确定所述无人驾驶设备在当前时刻的位姿,具体包括:

根据所述第一位姿信息,滤波更新所述第二位姿信息得到第一次更新后的位姿信息;

根据所述第三位姿信息,滤波更新所述第一次更新后的位姿信息,得到第二次更新后的位姿信息;

根据所述第二次更新后的位姿信息,确定所述无人驾驶设备在当前时刻的位姿。

可选地,所述无人驾驶设备上配置有全球定位系统芯片;

所述无人驾驶设备或其它无人驾驶设备预先在沿指定飞行路线并按照所述飞行高度区间飞行时,根据各时刻采集的图像预先构建所述特征地图,具体包括:

针对每个预设的高度区间,通过视觉传感器获取各时刻该高度区间对应的图像;

当所述全球定位系统芯片输出的位置信息正常时,则根据所述全球定位系统芯片确定所述无人驾驶设备的位姿,并根据所述视觉传感器获取各时刻该高度区间对应的图像,通过视觉惯性同时定位与建图方法,构建该高度区间对应的特征地图;

当所述全球定位系统芯片输出的位置信息不正常时,则通过视觉惯性里程计确定所述无人驾驶设备的位姿,以及根据所述视觉传感器获取各时刻该高度区间对应的图像,通过视觉惯性同时定位与建图方法,结合闭环检测法,构建该高度区间对应的特征地图。

本说明书提供了一种无人驾驶设备的定位装置,所述装置具体包括:

高度确定模块,用于确定无人驾驶设备当前时刻的飞行高度;

地图确定模块,用于从预设的各飞行高度区间对应的各特征地图中,确定所述飞行高度落入的飞行高度区间对应的特征地图,所述特征地图是其它无人驾驶设备预先在沿所述固定飞行路线并按照所述飞行高度区间飞行时,根据各时刻采集的图像构建的;

第一位姿确定模块,用于将所述无人驾驶设备上的视觉传感器当前时刻采集的周视图像与所述飞行高度对应的特征地图进行匹配,确定当前时刻的第一位姿信息;

定位模块,用于通过惯性测量单元确定当前时刻的第二位姿信息,根据所述第一位姿信息滤波更新所述第二位姿信息,并根据更新后的第二位姿信息确定所述无人驾驶设备在当前时刻的位姿。

本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述无人驾驶设备的方法。

本说明书提供了一种无人驾驶设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述无人驾驶设备的方法。

本说明书采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书提供的无人驾驶设备的方法中,确定无人驾驶设备的飞行高度,从预设的各飞行高度区间对应的各特征地图中,确定该飞行高度落入的飞行高度区间对应的特征地图,将该无人驾驶设备上的视觉传感器当前时刻采集的周视图像与该飞行高度对应的特征地图进行匹配,确定第一位姿信息,通过惯性测量单元确定第二位姿信息,根据第一位姿信息更新第二位姿信息,并根据更新后的第二位姿信息确定无人驾驶设备在当前时刻的位姿。

从上述方法中可以看出,本方法可在GPS芯片提供的位置信息误差较大,或者GPS芯片故障,无法提供位置信息的情况下,为无人驾驶设备提供准确的位置信息,使无人驾驶设备能够确定自身的位置,按照准确路径行进,并灵活躲避途中遇到的障碍物。

附图说明

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

图1为本说明书中一种无人驾驶设备的定位方法的流程示意图;

图2a为本说明书提供的一种无人驾驶设备的示意图;

图2b为本说明书提供的一种无人驾驶设备的示意图;

图2c为本说明书提供的一种无人驾驶设备的示意图;

图3为本说明书提供的一种无人驾驶设备的位姿优化效果的示意图;

图4为本说明书提供的一种无人驾驶设备的定位装置的示意图;

图5为本说明书提供的对应于图1的无人驾驶设备的结构示意图。

具体实施方式

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

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

目前,在一些应用无人驾驶设备进行配送、运输、航拍等场景中,无人驾驶设备需要准确确定自身的位置,按照任务需求,沿固定或非固定路径行进,并避开途中遇到的障碍物,以确保顺利完成任务。在现有技术中,无人驾驶设备一般基于GPS芯片进行定位,而GPS芯片会出现信号弱或者芯片故障导致不能准确定位的情况。

在这类情况下,还可以通过视觉传感器获取无人驾驶设备周围的图像信息,并通过惯性测量单元(Inertial Measurement Unit,IMU)来对无人驾驶设备进行定位。而这种通过IMU来对无人驾驶设备进行定位的方法,是增量式的定位方法,即由IMU估计出的无人驾驶设备当前时刻的位姿是根据上一时刻估计出的位姿来确定的,所以IMU在上一时刻估计出的位姿的误差会累积到当前时刻,导致IMU估计出的当前时刻的位姿误差更大,因此随着无人驾驶设备行驶时间的增长,确定出的位姿的累计误差就会越来越大。若无人驾驶设备沿固定路径行进,其真实运动轨迹相对于固定路径的偏移会越大,以至于最终无人驾驶设备无法按照固定路径准确抵达任务目的地。若无人驾驶设备的行进路径不固定,则在确定出的无人驾驶设备位置信息误差较大的情况下,无人驾驶设备也无法进行路径规划,无法正常有效的躲避遇到的障碍物。

为了解决现有在GPS芯片不能对无人驾驶设备准确定位时,IMU对无人驾驶设备定位的误差较大的情况,本申请提供了一种无人驾驶设备的定位方法。

图1为本说明书中一种无人驾驶设备的定位方法的流程示意图,具体包括以下步骤:

S100:确定无人驾驶设备当前时刻的飞行高度。

在本说明书中,无人驾驶设备是无人飞行设备,例如,无人直升机、固定翼无人机、旋翼无人机等设备,后续以无人机统称上述无人驾驶设备进行说明。

在无人机的应用场景中,由于大部分任务的重复性和固定性,无人机大多沿着固定飞行路线飞行来执行任务,所以在本说明书中,以无人驾驶设备沿固定飞行路线飞行进行说明。

在本说明书一个或多个实施例中,无人机至少配置有一个周视的视觉传感器,用于对无人机飞行高度的环境采集周视图像。

在本说明书中,将无人机启动时的IMU坐标系作为世界坐标系,世界坐标系的选取具体可根据需要设置,本说明书在此不作限制。在本说明书一个或多个实施例中,无人机可以通过多种方式确定飞行高度,例如可通过毫米波雷达或高度计来确定该无人机的飞行高度。此时,该无人机的结构可以如图2a所示。

图2a为本说明书提供的一种无人驾驶设备的示意图,如图,200为无人驾驶设备的机身,201为无人驾驶设备的旋翼,202为周视的视觉传感器,210为高度测量模块。该高度测量模块210具体可以是毫米波雷达、高度计等等,本说明书不做限制。在本说明书一个或多个实施例中,该无人机上还可以配置有俯视的双目视觉传感器,并通过该俯视的双目视觉传感器确定飞行高度。由于俯视的双目视觉传感器是向下即向地面采集的图像,所以图像中的特征点与无人机间的距离,反映了无人机与地面的距离。因此,可以根据图像中的特征点与无人机间的距离,确定无人机在当前时刻的飞行高度。此时,该无人机的结构可以如图2b所示。

图2b为本说明书提供的一种无人驾驶设备的示意图,如图,203为无人驾驶设备的机身,204为无人驾驶设备的旋翼,205为俯视的双目视觉传感器,206为周视的视觉传感器。

由于地面往往高度不平,存在局部凹陷和凸起,地面也可能会有坡度,所以在俯视的双目视觉传感器向地面采集的图像中,各特征点与无人机的距离是有差异的。并且,地面上的行人、车辆、动植物的高度也不相同,且具有较大差异,导致确定出的各特征点与无人机的距离差异较大。所以在确定出各特征点与无人机的距离后,可以根据确定出的距离将各特征点划分类别,然后从其中选择用于确定无人机的飞行高度的各特征点,然后根据选择出的各特征点,确定无人机当前时刻的飞行高度。例如,假设俯视的双目视觉传感器采集的图像中包含40个特征点,其中,15个特征点与无人机的距离在45m±0.5m的范围浮动,25个特征点与无人机的距离在40m±0.5m的范围浮动。则可将与无人机的距离在40m±0.5m的范围浮动的25个特征点,作为用于确定无人机的飞行高度的各特征点。

进一步地,可对25个特征点中的各特征点与无人机的距离取平均值,作为最终确定出的无人机当前时刻的飞行高度,也可以取各特征点与无人机的距离的最大值或最小值或者中位数等,作为最终确定出的无人机当前时刻的飞行高度。当然也可以通过其他方法确定无人机当前时刻的飞行高度,本说明书不做限制,具体可根据需要设置。

在本说明书一个或多个实施例中,也可以在确定出各特征点与无人机的距离后,不根据各特征点与无人机的距离对各特征点进行分类,直接对各特征点与无人机的距离取平均值、最大值、最小值中的一种,作为最终确定出的无人机当前时刻的飞行高度。

具体的,在确定无人机当前时刻的飞行高度时,无人机可以先获取俯视的双目视觉传感器在当前时刻采集的两帧图像,并提取两帧图像中各特征点的描述子,以及根据描述子,确定两帧图像中各特征点的匹配关系。然后根据两帧图像中各特征点的匹配关系,通过三角化方法,确定各特征点的深度即各特征点与无人机的距离,并根据确定出的各特征点与无人机的距离,从各特征点中选择用于确定飞行高度的各特征点。最后,根据选择出的各特征点,确定无人机当前时刻的飞行高度。其中,匹配关系是指,在俯视的双目视觉传感器在当前时刻采集的两帧图像中,一个视觉传感器采集的一帧图像中的哪个特征点与另一个视觉传感器采集的一帧图像的哪个特征点对应环境中物体上的同一个点。

S102:从预设的各飞行高度区间对应的各特征地图中,确定所述飞行高度落入的飞行高度区间对应的特征地图。

在确定了无人机的飞行高度后,可根据该飞行高度,确定与该飞行高度落入的飞行高度区间对应的特征地图,以便于后续可根据该特征地图确定一个无人机的位姿信息。其中,该特征地图是该无人驾驶设备或其它无人驾驶设备预先在沿指定飞行路线并按照该飞行高度区间飞行时,根据各时刻采集的图像构建的。该指定飞行路线可以为一条,也可以为多条。在该指定飞行路线为一条时,该指定飞行路线中可以包括该无人驾驶设备执行当前任务时所飞行的固定飞行路线。例如,假设该指定飞行路线为类似于“口”字形的路线时,该固定飞行路线可以为该“口”字的一个边,也可以为该“口”字的相邻两个边组成的类似于“L”形的路线。或者,该指定飞行路线也可以与该固定飞行路线重合。在该指定飞行路线为多条时,该固定飞行路线可以由多条指定飞行路线组成的。例如,假设该固定飞行路线为类似于“口”字形的路线,则该指定飞行路线可以为多条“一”字形的路线,组合构成该“口”字形的路线,或者,该指定飞行路线也可以为多条类似于“L”形的路线,组合构成该“口”字形的路线。

在本说明书一个或多个实施例中,由于同时沿同一条固定飞行路线飞行的无人机可能有多个,不同无人机需要在不同的飞行高度区间沿该固定飞行路线飞行,所以,在其它无人驾驶设备预先在沿指定飞行路线构建特征地图时,需要针对不同的飞行高度构建该飞行高度区间对应的特征地图,以便于无人驾驶设备在任何高度沿该指定飞行路线包括的固定飞行路线飞行时,都可以匹配到对应的特征地图。

例如,假设其它无人驾驶设备预先以20m为间隔,分别在距离地面20m、40m、60m的飞行高度构建特征地图,可将各特征地图对应的飞行高度区间分别设置为20m±10m、40m±10m、60m±10m。若无人驾驶设备在距离地面45m的飞行高度飞行,则无人驾驶设备对应的飞行高度区间为40m±10m,于是,可以确定此时与无人机的飞行高度区间对应的特征地图为距离地面40m的特征地图。

对于如何建立各飞行高度区间对应的特征地图的过程,本说明书后续再进行详细描述。

S104:将所述无人驾驶设备上的视觉传感器当前时刻采集的周视图像与所述飞行高度对应的特征地图进行匹配,确定当前时刻的第一位姿信息。

在本说明书提供的一个或多个实施例中,该用于采集周视图像的视觉传感器可以为周视的双目视觉传感器。此时,该无人机的结构可以如图2c所示。

图2c为本说明书提供的一种无人驾驶设备的示意图,如图,206为无人驾驶设备的机身,207为无人驾驶设备的旋翼,208为俯视的双目视觉传感器,209为周视的双目视觉传感器。

在本说明书提供的一个或多个实施例中,在确定出无人机的飞行高度落入的飞行高度区间对应的特征地图后,可将无人机上的周视的双目视觉传感器当前时刻采集的两帧图像作为周视图像,并将周视图像与无人驾驶设备当前时刻的飞行高度对应的特征地图进行匹配,进一步确定当前时刻无人驾驶设备的第一位姿信息。其中,位姿可以是无人驾驶设备的三维位置坐标、偏航角、滚动角以及俯仰角,也可以是其它能够描述无人驾驶设备具体位置信息的内容,具体可根据需要设置,本说明书在此不做限制。

具体的,可以提取周视图像中各特征点的描述子,根据各特征点的描述子,确定周视图像的两帧图像的匹配关系,并根据周视图像的两帧图像的匹配关系,通过三角化方法,确定各特征点的深度,以确定各特征点的三维坐标。其中,周视的两帧图像是指,当前时刻周视的双目视觉传感器的左右两个视觉传感器分别采集的图像,周视图像的两帧图像的匹配关系是指,周视图像的左边一个视觉传感器采集的图像中的哪个特征点与右边一个视觉传感器采集的图像中的哪个特征点对应环境中物体上的同一个点。描述子的提取可以是通过FAST方法,也可以是通过Harris方法,具体可根据需要设置,本说明书在此不做限制。

之后,可以将周视图像中各特征点的描述子与该飞行高度对应的特征地图中各特征点的描述子进行匹配,并根据匹配结果以及各特征点的三维坐标,确定在该飞行高度对应的特征地图中,与周视图像对应的场景图像,以及确定周视图像与该场景图像对应的若干对特征点。最后,确定该场景图像对应的位姿信息,即该无人驾驶设备或其它无人驾驶设备在拍摄该场景地图时的位姿信息,并根据该场景图像对应的位姿信息,将若干对特征点进行pnp解算,根据解算得到的位姿信息确定当前时刻的第一位姿信息。其中,该场景图像是其它无人驾驶设备预先采集的用于确定该飞行高度对应的特征地图的图像。

S106:通过惯性测量单元确定当前时刻的第二位姿信息,根据所述第一位姿信息滤波更新所述第二位姿信息,并根据更新后的第二位姿信息确定所述无人驾驶设备在当前时刻的位姿。

在确定出无人驾驶设备在当前时刻的第一位姿信息后,可根据IMU确定无人驾驶设备在当前时刻的第二位姿信息。由于IMU确定出的无人驾驶设备的位姿信息存在累计误差,而通过将特征地图匹配确定出的第一位姿信息不存在累计误差,且噪声是IMU确定出的位姿信息存在误差的原因之一,所以可以通过滤波的方法,根据第一位姿信息更新IMU确定出的位姿信息,得到一个更准确的位姿信息,作为最终确定出的无人驾驶设备在当前时刻在世界坐标系下的位姿,然后,根据世界坐标系与地理坐标系的对应关系,将最终确定出的无人驾驶设备在当前时刻在世界坐标系下的位姿转换为地理坐标系下的位姿,即带有经纬度的位姿,以实现对无人驾驶设备的定位。其中,采用该滤波方法具体可为卡尔曼滤波方法。

基于图1所示的无人驾驶设备的定位方法,确定无人驾驶设备的飞行高度,从预设的各飞行高度区间对应的各特征地图中,确定该飞行高度落入的飞行高度区间对应的特征地图,将该无人驾驶设备上的视觉传感器当前时刻采集的周视图像与该飞行高度对应的特征地图进行匹配,确定第一位姿信息,通过惯性测量单元确定第二位姿信息,根据第一位姿信息更新第二位姿信息,并根据更新后的第二位姿信息确定无人驾驶设备在当前时刻的位姿。

从上述方法中可以看出,本方法可在GPS芯片提供的位置信息误差较大,或者GPS芯片故障,无法为无人驾驶设备提供位置信息的情况下,为无人驾驶设备提供准确的位置信息,使无人驾驶设备能够确定自身的位置,按照准确路径行进,并灵活躲避途中遇到的障碍物。

在本说明书提供的一个或多个实施例中,步骤S104中的用于采集周视图像的视觉传感器还可以为周视的单目视觉传感器,也可以是深度视觉传感器。在确定出无人机的飞行高度落入的飞行高度区间对应的特征地图后,可以提取视觉传感器采集的周视图像中各特征点的描述子,并根据各特征点的描述子,以及该周视图像对应的环境中的标志物,确定各特征点的三维坐标。然后将该周视图像中各特征点的描述子与飞行高度对应的特征地图中各特征点的描述子进行匹配,并根据匹配结果以及各特征点的三维坐标,确定在该飞行高度对应的特征地图中,与该周视图像对应的场景图像,以及确定该场景图像对应的位姿信息,最后,根据该场景图像对应的位姿信息,确定当前时刻的第一位姿信息。

另外,在本说明书提供的一个或多个实施例中,还可以将周视图像中的特征点与参考帧中的特征点进行解算,确定无人驾驶设备当前时刻的第三位姿信息。其中,参考帧是无人驾驶设备在沿该固定飞行路线飞行的过程中,于当前时刻之前获取的图像,无人驾驶设备在获取参考帧时的位姿是已确定的、准确的位姿。参考帧的选取,可根据需要设置,可以将前一时刻无人驾驶设备通过双目视觉传感器获取的图像作为参考帧,也可以将关键帧作为参考帧,本说明书在此不作限制。

具体的,首先可以确定参考帧对应的无人驾驶设备的位姿,然后根据周视图像中的特征点的描述子,以及参考帧中的特征点的描述子,确定周视图像与参考帧对应的若干对特征点。其中,将周视图像中与参考帧中对应环境中物体上同一个点的两个特征点作为一对特征点,若干对特征点是指多个这样的特征点对。

之后,根据参考帧对应的位姿,将若干对特征点进行pnp解算,确定无人驾驶设备在当前时刻的第三位姿信息。

进一步地,在确定出无人驾驶设备在当前时刻的第三位姿信息后,可根据第一位姿信息以及第三位置信息滤波更新第二位姿信息。具体的,根据第一位姿信息,滤波更新第二位姿信息得到第一次更新后的位姿信息,然后根据第三位姿信息,滤波更新第一次更新后的位姿信息,得到第二次更新后的位姿信息,最后,根据第二次更新后的位姿信息,确定无人驾驶设备在当前时刻的位姿。在根据第一位姿信息以及第三位置信息滤波更新第二位姿信息后,可修正IMU确定出的第二位姿信息的累计误差,确定出无人驾驶设备在当前时刻在世界坐标系下的位姿的实际位姿,然后根据世界坐标系与地理坐标系的对应关系,将最终确定出的无人驾驶设备当前时刻在世界坐标系下的实际位姿转换为地理坐标系下的位姿,以实现对无人驾驶设备的准确定位。其中,本说明书中的地理坐标系可以采用经纬度和海拔高度表示位姿。

另外,在本说明书中,上述无人驾驶设备的定位方法的触发时间可以是在GPS芯片无法准确确定无人驾驶设备的位姿时,也可以是在无人驾驶设备启动沿固定飞行路线飞行时。即,本说明书提供的无人驾驶设备的定位方法,即可以应用于配置有GPS芯片的无人驾驶设备进行定位,也可以应用于未配置有GPS芯片的无人驾驶设备进行定位。

另外,在本说明书一个或多个实施例中,建立各飞行高度区间对应的特征地图时,需要基于配置有GPS芯片的无人驾驶设备,在各飞行高度区间沿该固定飞行路线飞行,并通过视觉惯性同时定位与建图(Visual-Inertial Simultaneous Localization andMapping,VI-SLAM)方法构建。

具体的,针对每个预设的高度区间,通过周视的双目视觉传感器获取各时刻该高度区间对应的图像。当GPS芯片输出的位置信息正常时,则根据GPS芯片确定无人驾驶设备的位姿,并根据周视的双目视觉传感器获取各时刻该高度区间对应的图像,通过VI-SLAM方法,构建该高度区间对应的特征地图。当GPS芯片输出的位置信息不正常时,则通过视觉惯性里程计确定无人驾驶设备的位姿,以及根据周视的双目视觉传感器获取各时刻该高度区间对应的图像,通过VI-SLAM方法,结合闭环检测法,构建该高度区间对应的特征地图。

在本说明书中,GPS芯片输出的位置信息正常是指,GPS芯片输出的无人驾驶设备的位置信息的误差在正常范围内,或者GPS芯片输出的无人驾驶设备的位置信息是根据预设数量以上的卫星发射的信号确定的。其中,该预设数量具体可根据需要设置,例如该预设数量是8,则当GPS芯片收到的信号对应的卫星个数大于8个时,认为GPS芯片输出的位置信息正常。当GPS芯片收到的信号对应的卫星个数小于8个时,则认为GPS芯片输出的位置信息不正常。

在本说明书一个或多个实施例中,当GPS芯片输出的位置信息正常,并根据GPS芯片确定无人驾驶设备的位姿,以及通过VI-SLAM方法构建各高度区间对应的特征地图时,在VI-SLAM的优化过程中固定无人驾驶设备的位姿,只对各特征点的位置进行优化。当GPS芯片输出的位置信息不正常,并通过视觉惯性里程计确定无人驾驶设备的位姿,以及通过VI-SLAM方法构建各高度区间对应的特征地图时,在VI-SLAM的优化过程中对位姿和特征点的位置都进行优化。

由于在GPS芯片输出的位置信息失去正常前后,是通过不同方法来确定无人驾驶设备的位姿的,所以可能存在GPS芯片输出的位置信息失去正常前后构建的特征地图衔接有误的情况。类似的,在GPS芯片输出的位置信息恢复正常前后,也可能存在这样的问题。所以,在本说明书一个或多个实施例中,可以根据GPS芯片输出的位置信息失常前确定出的最后一个位姿信息,以及GPS芯片输出的位置信息恢复后确定出的第一个位姿信息,确定这两个位姿信息的相对位姿作为VI-SLAM的优化过程的输入。可确保在GPS芯片无法输出正常的位置信息的时间段内,通过视觉惯性里程计确定出的无人驾驶设备的位姿更准确,使GPS芯片输出的位置信息失常的时刻前后,以及GPS芯片输出的位置信息恢复正常的时刻前后构建的特征地图正常过度。

图3为本说明书提供的一种无人驾驶设备的位姿优化效果的示意图,如图所示,直线箭头指向的方向表示无人驾驶设备的前进方向。曲线箭头表示由GPS芯片定位时,无人驾驶设备的一段运动轨迹,黑色虚线表示在GPS芯片无法正常定位时,IMU预测出的无人驾驶设备的运动轨迹。其中,左边的白色菱形表示在t

在本说明书步骤S100中确定无人驾驶设备当前时刻的飞行高度时,还可以通过GPS来确定,或是通过其它现有技术中,可以对无人驾驶设备进行飞行高度确定的方法中的一种或几种的结合,来确定无人驾驶设备的飞行高度。例如,结合高度气压计或者结合无线电高度计,确定无人驾驶设备的飞行高度。

另外,在本说明书步骤S104中确定第一位姿信息时,还可以在通过三角化方法确定出周视图像中各特征点的三维坐标后,根据周视图像的各特征点,构建Delaunay三角网,并确定一个3D地图。之后,将构建出的该3D地图与无人驾驶设备在当前时刻的飞行高度对应的特征地图根据描述子进行匹配,确定该3D地图与该飞行高度对应的特征地图中的哪一部分重合,并根据确定出的重合结果,以及特征地图中重合部分对应的其它无人驾驶设备在构建该重合部分时的位姿,确定无人驾驶设备当前时刻的位姿信息。

另外,在本说明书中该无人驾驶设备的定位方法可用于无人配送,具体可应用于使用无人驾驶设备配送货物的领域中。在无人驾驶设备执行配送任务的过程中,当GPS芯片无法正常定位时,或者无人驾驶设备未配有GPS芯片时,携带有货物的无人驾驶设备可通过该无人驾驶设备的定位方法确定自己的位姿,并沿着其携带的货物对应的任务的飞行路线,从出发地前往目的地,以完成无人驾驶设备携带的货物对应的配送任务。

以上为本说明书的一个或多个实施例提供的无人驾驶设备的定位方法,基于同样的思路,本说明书还提供了相应的无人驾驶设备的定位装置,如图4所示。

图4为本说明书提供的一种无人驾驶设备的定位装置示意图,该装置包括:高度确定模块、地图确定模块、第一位姿确定模块、定位模块,其中:

高度确定模块300,用于确定无人驾驶设备当前时刻的飞行高度;

地图确定模块301,用于从预设的各飞行高度区间对应的各特征地图中,确定所述飞行高度落入的飞行高度区间对应的特征地图,所述特征地图是所述无人驾驶设备或其它无人驾驶设备预先在沿指定飞行路线并按照所述飞行高度区间飞行时,根据各时刻采集的图像构建的;

第一位姿确定模块302,用于将所述无人驾驶设备上的视觉传感器当前时刻采集的周视图像与所述飞行高度对应的特征地图进行匹配,确定当前时刻的第一位姿信息;

定位模块303,用于通过惯性测量单元确定当前时刻的第二位姿信息,根据所述第一位姿信息滤波更新所述第二位姿信息,并根据更新后的第二位姿信息确定所述无人驾驶设备在当前时刻的位姿。

可选地,所述高度确定模块300,用于获取无人驾驶设备上配置的俯视的双目视觉传感器在当前时刻采集的两帧图像,确定所述两帧图像中特征点的匹配关系,以根据所述匹配关系确定所述两帧图像中包含的各特征点与所述无人驾驶设备的距离,根据确定出的各特征点与所述无人驾驶设备的距离,从各特征点中选择用于确定飞行高度的各特征点,根据选择出的各特征点,确定所述无人驾驶设备当前时刻的飞行高度。

可选地,所述第一位姿确定模块302,用于提取所述周视图像中各特征点的描述子,根据所述各特征点的描述子,确定各特征点的三维坐标,将所述周视图像中各特征点的描述子与所述飞行高度对应的特征地图中各特征点的描述子进行匹配,根据匹配结果以及所述各特征点的三维坐标,确定在所述飞行高度对应的特征地图中,与所述周视图像对应的场景图像,确定所述场景图像对应的位姿信息,根据所述场景图像对应的位姿信息,确定当前时刻的第一位姿信息。

可选地,确定所述周视图像与所述场景图像对应的若干对特征点,其中,所述场景图像是所述无人驾驶设备或其它无人驾驶设备预先采集的用于确定所述飞行高度对应的特征地图的图像,根据所述场景图像对应的位姿信息,将所述若干对特征点进行解算,确定当前时刻的第一位姿信息。

可选地,将所述周视图像中的特征点与参考帧中的特征点进行解算,确定当前时刻的第三位姿信息。

可选地,确定参考帧对应的位姿,其中,所述参考帧为所述周视的双目视觉传感器在当前时刻之前获取的图像,根据所述周视图像中的特征点的描述子,以及所述参考帧中的特征点的描述子,确定所述周视图像与所述参考帧对应的若干对特征点,根据所述参考帧对应的位姿,将所述若干对特征点进行解算,确定当前时刻的第三位姿信息。

可选地,所述定位模块303,用于根据所述第一位姿信息,滤波更新所述第二位姿信息得到第一次更新后的位姿信息,根据所述第三位姿信息,滤波更新所述第一次更新后的位姿信息,得到第二次更新后的位姿信息,根据所述第二次更新后的位姿信息,确定所述无人驾驶设备在当前时刻的位姿。

可选地,针对每个预设的高度区间,通过视觉传感器获取各时刻该高度区间对应的图像,当所述全球定位系统芯片输出的位置信息正常时,则根据所述全球定位系统芯片确定所述无人驾驶设备的位姿,并根据所述视觉传感器获取各时刻该高度区间对应的图像,通过视觉惯性同时定位与建图方法,构建该高度区间对应的特征地图,当所述全球定位系统芯片输出的位置信息不正常时,则通过视觉惯性里程计确定所述无人驾驶设备的位姿,以及根据所述视觉传感器获取各时刻该高度区间对应的图像,通过视觉惯性同时定位与建图方法,结合闭环检测法,构建该高度区间对应的特征地图。

本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的无人驾驶设备的定位方法。

本说明书还提供了图5所示的无人驾驶设备的示意结构图。如图5所示,在硬件层面,该无人驾驶设备包括处理器、内部总线、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1提供的无人驾驶设备的定位方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

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

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

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

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

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

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

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

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

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

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

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

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

相关技术
  • 无人驾驶设备定位方法、装置、无人驾驶设备和存储介质
  • 一种无人驾驶设备的定位方法及定位装置
技术分类

06120112668934