一种地图更新方法及装置与流程

文档序号:20922500发布日期:2020-05-29 14:20阅读:219来源:国知局
一种地图更新方法及装置与流程

本申请涉及地图更新技术领域,尤其涉及一种地图更新方法及装置。



背景技术:

目前,在自动导引运输车(automatedguidedvehicle,agv)等物流机器人领域,为实现机器人的定位、导航、路径规划等任务,通常需要构建栅格地图,但是由于场景中通常含有动态物体,如人、车辆等,因此需要实时更新该地图,以消除动态物体对定位和导航的影响。

现有技术中,地图通常可以表示为以下几种,第一种是栅格地图,栅格地图将地图表示为占据、未占据和未知三种状态、并通过概率的方式表示这三种状态,但是,由于在计算的过程中,需要为每个栅格计算其栅格概率,因此,需要占用大量的计算资源和内存,第二种是点云地图,点云地图中大部分是直接通过点云来代表真实世界,但是点云占用的内存是很多的,因此,会造成计算量大的问题,第三种是基于体素的地图,虽然基于体素的地图能够有效减少计算量和占用内存,但是难以进行地图更新,一旦发生动态物体的占据后,体素仍然会存在,动态物体无法滤除。



技术实现要素:

本申请实施例提供一种地图更新方法及装置,以提高地图更新效率,降低计算量。

本申请实施例提供的具体技术方案如下:

一种地图更新方法,包括:

分别获取各帧激光数据,其中,每一帧激光数据包含多个激光点的激光点数据;

分别获取所述各帧激光数据中各激光点数据对应的采集设备的位姿;

根据所述各帧激光数据和对应的位姿,分别将所述各帧激光数据转换到预设全局坐标系中,获得转换后的各帧激光数据;

分别根据所述转换后的各帧激光数据,计算所述各帧激光数据中各激光点的sdf值,并根据所述各激光点的sdf值更新地图。

可选的,分别获取各帧激光数据,具体包括:

分别获取各帧待处理激光数据,其中,每一帧待处理激光数据包含多个激光点的待处理激光点数据;

分别针对任意一帧待处理激光数据,根据所述采集设备的运行速度,分别确定所述任意一帧待处理激光数据中各激光点数据对应的采集设备的待处理位姿;

分别将各待处理位姿转换到所述任意一帧待处理激光数据中第一个激光点数据对应的坐标系中,获得转换后的各待处理位姿,其中,所述坐标系为所述采集设备的坐标系;

根据所述转换后的各待处理位姿和所述待处理激光数据,获得各帧激光数据。

可选的,分别获取所述各帧激光数据中各激光点数据对应的采集设备的位姿之后,进一步包括:

分别针对任意一帧激光数据,计算所述各激光数据对应的体素的法向量,其中,所述法向量表征所述各帧激光数据中各激光点与对应的体素的距离值;

根据各法向量和优化目标函数,分别对所述各激光点数据的位姿进行优化,并获得所述各激光点数据对应的优化后的位姿。

可选的,根据所述各激光点的sdf值更新地图,具体包括:

根据所述各激光点的sdf值,分别将所述各帧激光数据中的各激光点映射到地图中,获得所述各帧激光数据中各激光点在所述地图中的分布,其中,所述sdf值为0时,所述激光点映射到对应的体素中的概率最高,所述sdf值不为0时,所述激光点映射到对应的体素中的概率最低,所述sdf值表征所述激光数据是否为被探测到的物体的表面的坐标;

根据所述各帧激光数据中各激光点在所述地图中的分布,更新所述地图。

可选的,进一步包括:

按照预设周期或在确定所述地图更新结束时,计算所述地图中每个体素的体素概率,其中,所述体素概率表征sdf值为0的概率,所述体素表征各激光点映射到对应的全局坐标系中对应的位置;

若确定所述体素概率小于预设体素概率阈值,则将所述体素从本地存储的体素中删除,并更新所述地图。

一种地图更新装置,包括:

第一获取模块,用于分别获取各帧激光数据,其中,每一帧激光数据包含多个激光点的激光点数据;

第二获取模块,用于分别获取所述各帧激光数据中各激光点数据对应的采集设备的位姿;

转换模块,用于根据所述各帧激光数据和对应的位姿,分别将所述各帧激光数据转换到预设全局坐标系中,获得转换后的各帧激光数据;

第一更新模块,用于分别根据所述转换后的各帧激光数据,计算所述各帧激光数据中各激光点的sdf值,并根据所述各激光点的sdf值更新地图。

可选的,第一获取模块具体用于:

分别获取各帧待处理激光数据,其中,每一帧待处理激光数据包含多个激光点的待处理激光点数据;

分别针对任意一帧待处理激光数据,根据所述采集设备的运行速度,分别确定所述任意一帧待处理激光数据中各激光点数据对应的采集设备的待处理位姿;

分别将各待处理位姿转换到所述任意一帧待处理激光数据中第一个激光点数据对应的坐标系中,获得转换后的各待处理位姿,其中,所述坐标系为所述采集设备的坐标系;

根据所述转换后的各待处理位姿和所述待处理激光数据,获得各帧激光数据。

可选的,分别获取所述各帧激光数据中各激光点数据对应的采集设备的位姿之后,进一步包括:

第一处理模块,用于分别针对任意一帧激光数据,计算所述各激光数据对应的体素的法向量,其中,所述法向量表征所述各帧激光数据中各激光点与对应的体素的距离值;

优化模块,用于根据各法向量和优化目标函数,分别对所述各激光点数据的位姿进行优化,并获得所述各激光点数据对应的优化后的位姿。

可选的,根据所述各激光点的sdf值更新地图时,第一更新模块具体用于:

根据所述各激光点的sdf值,分别将所述各帧激光数据中的各激光点映射到地图中,获得所述各帧激光数据中各激光点在所述地图中的分布,其中,所述sdf值为0时,所述激光点映射到对应的体素中的概率最高,所述sdf值不为0时,所述激光点映射到对应的体素中的概率最低,所述sdf值表征所述激光数据是否为被探测到的物体的表面的坐标;

根据所述各帧激光数据中各激光点在所述地图中的分布,更新所述地图。

可选的,进一步包括:

第二处理模块,用于按照预设周期或在确定所述地图更新结束时,计算所述地图中每个体素的体素概率,其中,所述体素概率表征sdf值为0的概率,所述体素表征各激光点映射到对应的全局坐标系中对应的位置;

第二更新模块,用于若确定所述体素概率小于预设体素概率阈值,则将所述体素从本地存储的体素中删除,并更新所述地图。

一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述地图更新方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述地图更新方法的步骤。

本申请实施例中,分别获取各帧激光数据,各帧激光数据中包含多个激光点的激光点数据,并分别获取各帧激光数据中各激光点数据对应的采集设备的位姿,根据各帧激光数据和对应的位姿,分别将各帧激光数据转换到预设全局坐标系中,获得转换后的各帧激光数据,然后分别根据转换后的各帧激光数据,计算各帧激光数据中各激光点的sdf值,并根据各激光点的sdf值更新地图,这样,通过各帧激光数据和对应的位姿计算sdf值,并根据sdf值更新地图,能够节约计算资源和内存,提高地图的更新效率。

附图说明

图1为本申请实施例中一种地图更新方法的流程图;

图2为本申请实施例中另一种地图更新方法的流程图;

图3为本申请实施例中地图更新装置的结构示意图;

图4为本申请实施例中电子设备的结构示意图。

具体实施方式

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

目前,在自动导引运输车(automatedguidedvehicle,agv)等物流机器人领域,为实现机器人的定位、导航、路径规划等任务,通常需要构建栅格地图,但是由于场景中通常含有动态物体,如人、车辆等,因此需要实时更新该地图,以消除动态物体对定位和导航的影响。

现有技术中,在物流机器人领域,地图通常可以通过以下几种方式进行表示,第一种是栅格地图,将栅格地图表示为占据、未占据和未知三种状态,并通过概率的方式表示这三种状态,但是由于在计算的过程中,需要为每个栅格计算其概率,占用了大量的计算资源和内存,第二种地图为点云地图,大部分是直接用点云来代表真实世界,但是点云占用的内存是很多的,在融合和更新上很难处理,因此,通过点云进行地图的更新,计算量非常大,第三种地图为基于体素的地图,例如截断符号距离函数(truncatedsigneddistancefunction,tsdf)地图,tsdf地图能够有效减少计算量和占用内存,但是tsdf地图难以进行地图更新,一旦发生动态物体的占据后,该体素仍然会存在,动态物体也无法滤除。

本申请实施例中,分别获取各帧激光数据,每一帧激光数据中包含多个激光点的激光数据,并分别获取各帧激光数据中各激光点数据对应的采集设备的位姿,根据获取的各帧激光数据和对应的位姿,分别将各帧激光数据转换到预设全局坐标系中,获得转换后的各激光数据,并计算转换后的各激光数据的有向距离场(signeddistancefield,sdf)值,并根据sdf值更新地图,这样,通过将各帧激光数据转换到全局坐标系中并计算其sdf值,进而根据sdf值更新地图,降低地图更新时的计算量,并提高地图更新效率。

基于上述实施例,基于上述实施例,参阅图1所示,为本申请实施例中一种地图更新方法的流程图,具体包括:

步骤100:分别获取各帧激光数据。

其中,每一帧激光数据包含多个激光点的激光点数据。

本申请实施例中,通过采集设备采集激光数据和位姿,并将激光数据和位姿发送给服务器,由服务器进行计算,并更新地图。

其中,本申请实施例中的采集设备例如可以为物流机器人,本申请实施例中对此并不进行限定。

步骤110:分别获取各帧激光数据中各激光点数据对应的采集设备的位姿。

步骤120:根据各帧激光数据和对应的位姿,分别将各帧激光数据转换到预设全局坐标系中,获得转换后的各帧激光数据。

当获得各帧激光数据和对应的位姿后,将各帧激光数据转换到预设全局坐标系中,获得转换后的各帧激光数据,例如可通过下述公式进行计算:

其中,为转换后的激光数据,为根据采集设备的速度推算出的位姿,为激光数据。

步骤130:分别根据转换后的各帧激光数据,计算各帧激光数据中各激光点的sdf值,并根据各激光点的sdf值更新地图。

本申请实施例中,计算各帧激光数据中各激光点的sdf值时,首先需要获得转换后的激光,转换后的各帧激光数据是根据各帧激光数据和对应的位姿获得的,因此,获得各帧激光数据时,具体包括:

s1:分别获取各帧待处理激光数据。

其中,每一帧待处理激光数据包含多个激光点的待处理激光点数据。

本申请实施例中,由于agv等物流机器人在采集激光数据时,机器人是在运动的,采集到的激光数据会产生运动畸变,因此,需要对采集到的待处理激光数据进行运动畸变去除,获取到去除运动畸变后的激光数据。

本申请实施例中,分别获取各帧待处理激光数据,例如可以通过采集设备发送多个激光,获得激光数据,其中,激光中包含多个激光点,因此,采集到的激光数据中包含多个激光点的激光点数据。

其中,每一帧待处理激光数据中至少包括多个激光点的待处理激光点数据,每一帧的时长可由相关工作人员预先设置,例如可将每一帧设置为1s,本申请实施例中对此并不进行限制。

并且,每一帧激光发射的激光点也可由相关工作人员预先设置,例如,可将每一帧激光数据发送的激光点设置为360个,进而可以得出,采集设备360度发送激光点,每隔1度发送一个激光点,本申请实施例中对此并不进行限制。

s2:分别针对任意一帧待处理激光数据,根据采集设备的运行速度,分别确定任意一帧待处理激光数据中各激光点数据对应的采集设备的待处理位姿。

本申请实施例中,分别针对任意一帧待处理激光数据,通过激光数据的帧间匹配,可以获得任意一帧待处理激光数据的前后帧激光数据的位姿和采集设备的运行速度。

例如,假设在i时刻,采集设备的位姿为,在采集设备发送各激光点的时间段内,可以认为采集设备在激光数据生成时刻的位姿为,其中,

其中,为采集设备发送各激光点的时间差,为采集设备发出的激光的最后一个激光点的时刻,为采集设备发出的激光的第一个激光点的时刻,为采集设备的运行速度。

本申请实施例中,采集设备的运行速度可由相关工作人员预先设置,对此并不进行限定。

针对任意一帧待处理激光数据中各激光点对应的待处理激光点数据,可通过插值得到各待处理激点数据对应的采集设备的待处理位姿。可表示为:

其中,为第j个激光点数据对应的采集设备的待处理位姿,n表示激光点的个数,j表示为第j个激光点,为在第i时刻采集设备对应的位姿,为采集设备在激光数据生成时刻的位姿。

插值式子中的加减符号代表的是李代数上的加减。

s3:分别将各待处理位姿转换到任意一帧待处理激光数据中第一个激光点数据对应的坐标系中,获得转换后的各待处理位姿。

其中,坐标系为采集设备的坐标系。

本申请实施例中,例如,当获得第j个激光点时,然后将各待处理位姿转换到任意一帧待处理激光数据中第一个激光点数据对应的坐标系中,生成转换后的各激光点对应的采集设备的待处理位姿。

s4:根据转换后的各待处理位姿和待处理激光数据,获得各帧激光数据。

本申请实施例中,当获得转换后的各待处理位姿后,进而根据转换后的各待处理位姿和待处理激光数据,重新生成新的激光数据,获得各帧的激光数据。

在通过激光里程计获得各激光数据点的采集设备对应的位姿后,为了进一步提高位姿的准确度,还可以为获取到的位姿校正,具体包括:

s1:分别针对任意一帧激光数据,计算各激光数据对应的体素的法向量。

其中,法向量表征各帧激光数据中各激光点与对应的体素的距离值。

本申请实施例中可以通过激光里程计技术获取各帧激光数据中各激光点数据对应的采集设备的位姿,例如,可以采用帧间匹配(scan-match)、迭代最近点(iterativeclosestpoint,icp)、cartographer、hector等方法提供的激光里程计,获得各帧激光数据中各激光点数据对应的采集设备的位姿,本申请实施例中对此并不进行限制。

当分别获得各帧激光数据中各激光点数据对应的采集设备的位姿后,虽然通过激光里程计获得的位姿可以被信任,但是,为了进一步提高地图更新的准确度,还可以对各帧激光数据中各激光点数据对应的采集设备的位姿进行校正,消除激光里程计带来的误差。

对于第i个激光点,计算其对应的体素的法向量:根据地图中sdf的势场,计算体素的法向量,可表示为:

其中,x,y,z分别为激光点数据对应的坐标的取值,为该激光点投影到的体素坐标。

s2:根据各法向量和优化目标函数,分别对各激光点数据的位姿进行优化,并获得各激光点数据对应的优化后的位姿。

本申请实施例中,当获得各激光点对应的体素的法向量后,根据各法向量,并构建优化目标函数进行优化求解,获得各激光点数据对应的优化后的位姿。

其中,在构架优化目标函数进行优化求解时,例如可以采用高效的非线性优化库(ceres)或图优化(graph-basedoptimization,g2o)等优化库,本申请实施例中对此并不进行限制。

例如,优化目标函数可以表示为:

其中,为优化目标函数,r和t为待优化变量,其初值为激光里程计提供的采集设备对应的位姿,为激光点,为该激光点投影到的体素位置为体素的分辨率。

进而可以根据上述公式获得r,r即为采集设备的位姿中的朝向,同时获得t,t即为激光点的激光点数据对应的坐标(x,y,z)。

当获得转换后的各帧激光数据和优化后的对应的位姿时,根据各帧激光数据和对应的位姿,获得转换后的各帧激光数据,进而分别根据转换后的各帧激光数据,计算各帧激光数据中各激光点的sdf值,并根据各激光点的sdf值更新地图。

本申请实施例中,根据各激光点的sdf值更新地图,具体包括:

s1:根据各激光点的sdf值,分别将各帧激光数据中的各激光点映射到地图中,获得各帧激光数据中各激光点在地图中的分布。

其中,sdf值为0时,激光点映射到对应的体素中的概率最高,sdf值不为0时,激光点映射到对应的体素中的概率最低,sdf值表征激光数据是否为被探测到的物体的表面的坐标。

具体地,当任意一个激光点的sdf值为0时,该激光点映射到对应的体素中的概率最高,对于该体素的前后的体素,也会映射到对应的前后的体素中,但是相对于激光点正对应的体素来说,概率较小,当任意一个激光点的sdf值不为0时,例如,大于0或者小于0,则激光点映射到对应的体素中的概率最低。

本申请实施例中,对于各帧激光数据,每个激光点对应的激光点数据服从高斯分布和均匀分布,激光点数据可表示为:

其中,为当前帧激光的第n个激光点,z为真值,π为置信率,为第n个激光点的方差,为真值的最小值,为真值的最大值。

因此,对于各激光点的sdf值,sdf值表示为各激光点对应的体素沿着光线方向的投影深度,本申请实施例中,各激光点的sdf值例如可以定义为:

其中,v为体素,i为第i个点,为测量深度值,为常量。

进一步地,对于sdf同样服从高斯分布和均匀分布,sdf值例如可以表示为:

其中,为第n个激光点的sdf值。

s2:根据各帧激光数据中各激光点在地图中的分布,更新地图。

本申请实施例中,根据各帧激光数据中各激光点在地图中的分布,更新地图时,针对任意一帧激光数据,其概率分布可以表示为:

该分布可以被近似为beta分布和高斯分布的乘积,可以表示为:

其中,为误差的均值,为误差的方差。

由于地图是由多帧激光数据组成的,因此,地图的分布可以表示为:

其中,

同样的,该分布也可以近似为beta分布和高斯分布的乘积:

根据上述公式即可完成体素的更新,即地图的构建与更新,但本申请实施例中对地图的构建和更新的公式并不进行限定。

当获得各帧激光数据中各激光点对应的sdf值后,则分别将各帧激光数据中的各激光点映射到地图中,并获得各帧激光数据中各激光点在地图中的分布,进而根据分布更新地图。

进一步地,在完成地图构建和更新之后,由于动态物体是在运动的,因此,还可以对动态物体进行实时滤除,具体包括:

s1:按照预设周期或在确定地图更新结束时,计算地图中每个体素的体素概率。

其中,体素概率表征sdf值为0的概率,体素表征各激光点映射到对应的全局坐标系中对应的位置。

本申请实施例中,在更新地图后,可以对动态物体进行实时滤除,也可以在更新地图的过程中,按照预设周期对动态物体进行实时滤除,本申请实施例中对此并不进行限制。

具体包括:计算地图中每个体素的体素概率。

本申请实施例中,体素概率可以表示为,本申请实施例中对此并不进行限制。

s2:若确定体素概率小于预设体素概率阈值,则将体素从本地存储的体素中删除,并更新地图。

本申请实施例中,的物理意义是待插入帧的激光点是否离体素中表面最近,即该体素的体素概率可以表示为越接近1,则表示该体素距离真实表面的距离越近,越接近0,则表示该体素距离真实表面越远。

其中,为体素的体素概率,a和b为获取到的参数,例如可以是通过采集设备的传感器获得的参数,本申请实施例中对此并不进行限制。

如果在第i时刻环境中有动态物体时,动态物体的sdf值集合可以表示为:

在插入地图后,其对应的体素分布可以表示为:

在第j时刻,在动态物体位置处,没有激光点落在第i时刻动态物体所在的位置,即在第j时刻

因此,在第j时刻,将激光数据插入地图后,则该激光数据可以表示为:

因此,动态物体所在的体素被删除,完成地图中动态物体的滤除,但是在有些位置,动态物体的观测只有1次,且动态物体前后有重叠的地方,通过上述方法无法完全消除,因此,可以通过设定体素的概率阈值,将阈值较低的体素去除,进而完成动态物体的滤除,能够提高地图更新的准确度。

因此,本申请实施例中为体素的体素概率预设了一个概率阈值,若确定体素的体素概率小于预设概率阈值,则将体素从本地存储的体素中删除,若确定体素的体素概率大于或等于预设概率阈值,则保留本地存储的体素,预设概率阈值可由相关工作人员预先设置,例如,可将概率阈值设置为0.95,当计算出的体素概率小于概率阈值0.95时,则将体素从本地存储的体素中删除,本申请实施例中对此并不进行限制。

本申请实施例中,分别获取各帧待处理激光数据后,分别针对任意一帧待处理激光数据,根据采集设备的运行速度,分别确定任意一帧待处理激光数据中各激光点数据对应的采集设备的待处理位姿,并将各处理位姿转换到任意一帧待处理激光数据中第一个激光点数据对应的坐标系中,获得转换后的各待处理位姿,然后根据转换后的各待处理位姿和待处理激光数据,获得各帧激光数据,分别获取各帧激光数据中各激光点数据对应的采集设备的位姿之后,分别针对任意一帧激光数据,计算各激光数据对应的体素的法向量,并根据各法向量和优化目标函数,分别对各激光点数据的位姿进行优化,获得优化后的各位姿,然后根据各帧激光数据和优化后的各位姿,获得各激光点对应的sdf值,并根据sdf值更新地图,这样,通过将激光数据和各激光点对应的采集设备的位姿进行校正,并根据矫正后的激光数据和校正后的位姿获得sdf值,能够节约资源,降低计算量,并提高地图更新效率。

进一步地,在确定地图更新结束时,或按照预设周期,计算地图中每个体素的体素概率,若确定体素概率大于预设概率阈值,则将体素从本地存储的体素中删除,并更新地图,这样,通过设置概率阈值,及时删除地图中小于预设概率阈值的体素,能够有效滤除地图中的动态物体。

基于上述实施例,下面以当前帧,并在地图更新结束时,滤除地图中的动态物体为例,对本申请实施例中的地图更新方法进行详细阐述,参阅图2所示,为本申请实施例中另一种地图更新方法的流程图。

步骤200:获取当前帧待处理激光数据。

其中,当前帧激光包含多个激光点,当前帧待处理激光数据包含多个激光点的待处理激光点数据。

步骤201:针对当前帧待处理激光数据,根据采集设备的运行速度,分别确定当前帧待处理激光数据中各激光点数据对应的采集设备的待处理位姿。

步骤202:分别将各待处理位姿转换到当前帧待处理激光数据中第一个激光点数据对应的坐标系中,获得转换后的各待处理位姿。

其中,坐标系为采集设备的坐标系。

步骤203:根据转换后的各待处理位姿和待处理激光数据,获得各帧激光数据。

步骤204:通过激光里程计分别获取当前帧激光数据中各激光点数据对应的采集设备的位姿。

步骤205:针对当前帧激光数据,计算当前帧激光数据对应的体素的法向量。

其中,法向量表征当前帧激光数据中各激光点与对应的体素的距离值。

步骤206:根据各法向量和优化目标函数,分别对各激光点数据的位姿进行优化,并获得各激光点数据对应的优化后的位姿。

步骤207:根据当前帧激光数据和对应的优化后的位姿,分别将当前帧激光数据转换到预设全局坐标系中,获得转换后当前帧激光数据。

步骤208:分别根据转换后的当前帧激光数据,计算当前帧激光数据中各激光点的sdf值。

步骤209:根据当前帧的各激光点的sdf值,分别将当前帧激光数据中的各激光点映射到地图中,获得当前帧激光数据中各激光点在地图中的分布。

其中,sdf值为0时,激光点映射到对应的体素中的概率最高,sdf值不为0时,激光点映射到对应的体素中的概率最低,sdf值表征激光数据是否为被探测到的物体的表面的坐标。

步骤210:根据各帧激光数据中各激光点在地图中的分布,更新地图。

步骤211:计算地图中每个体素的体素概率。

其中,体素概率表征sdf值为0的概率,体素表征各激光点映射到对应的全局坐标系中对应的位置。

步骤212:判断体素概率是否小于预设体素概率阈值,若是,则执行步骤213,若否,则执行步骤214。

步骤213:保留体素,并更新地图。

步骤214:将体素从本地存储的体素中删除,并更新地图。

本申请实施例中,先对获取到的当前帧待处理激光数据进行运动畸变去除,获得当前帧待处理数据,然后分别通过激光里程计获取当前帧激光数据中各激光点数据对应的采集设备的位姿,并将该对应的位姿进行优化,获得对应的优化后的位姿,并根据当前帧激光数据和优化后的位姿,将当前帧激光数据进行转换,获得转换后的当前帧激光数据,并计算当前帧激光数据中各激光点的sdf值,根据当前帧的各激光点的sdf值,分别将当前帧激光数据中的各激光点映射到地图中,获得当前帧激光数据中各激光点在地图中的分布,进而根据分布更新地图,当更新地图后,计算地图中每个体素的体素概率,并根据体素概率滤除地图中的动态物体,这样,能够提高地图更新的准确度、降低计算量。

基于同一发明构思,本申请实施例中提供了地图更新装置,该地图更新装置可以是硬件结构、软件模块、或硬件结构加软件模块。基于上述实施例,参阅图3所示,为本申请实施例中地图更新装置的结构示意图,具体包括:

第一获取模块300,用于分别获取各帧激光数据,其中,每一帧激光数据包含多个激光点的激光点数据;

第二获取模块310,用于分别获取所述各帧激光数据中各激光点数据对应的采集设备的位姿;

转换模块320,用于根据所述各帧激光数据和对应的位姿,分别将所述各帧激光数据转换到预设全局坐标系中,获得转换后的各帧激光数据;

第一更新模块330,用于分别根据所述转换后的各帧激光数据,计算所述各帧激光数据中各激光点的sdf值,并根据所述各激光点的sdf值更新地图。

可选的,第一获取模块300具体用于:

分别获取各帧待处理激光数据,其中,每一帧待处理激光数据包含多个激光点的待处理激光点数据;

分别针对任意一帧待处理激光数据,根据所述采集设备的运行速度,分别确定所述任意一帧待处理激光数据中各激光点数据对应的采集设备的待处理位姿;

分别将各待处理位姿转换到所述任意一帧待处理激光数据中第一个激光点数据对应的坐标系中,获得转换后的各待处理位姿,其中,所述坐标系为所述采集设备的坐标系;

根据所述转换后的各待处理位姿和所述待处理激光数据,获得各帧激光数据。

可选的,分别获取所述各帧激光数据中各激光点数据对应的采集设备的位姿之后,进一步包括:

第一处理模块340,用于分别针对任意一帧激光数据,计算所述各激光数据对应的体素的法向量,其中,所述法向量表征所述各帧激光数据中各激光点与对应的体素的距离值;

优化模块350,用于根据各法向量和优化目标函数,分别对所述各激光点数据的位姿进行优化,并获得所述各激光点数据对应的优化后的位姿。

可选的,根据所述各激光点的sdf值更新地图时,第一更新模块330具体用于:

根据所述各激光点的sdf值,分别将所述各帧激光数据中的各激光点映射到地图中,获得所述各帧激光数据中各激光点在所述地图中的分布,其中,所述sdf值为0时,所述激光点映射到对应的体素中的概率最高,所述sdf值不为0时,所述激光点映射到对应的体素中的概率最低,所述sdf值表征所述激光数据是否为被探测到的物体的表面的坐标;

根据所述各帧激光数据中各激光点在所述地图中的分布,更新所述地图。

可选的,进一步包括:

第二处理模块360,用于按照预设周期或在确定所述地图更新结束时,计算所述地图中每个体素的体素概率,其中,所述体素概率表征sdf值为0的概率,所述体素表征各激光点映射到对应的全局坐标系中对应的位置;

第二更新模块370,用于若确定所述体素概率小于预设体素概率阈值,则将所述体素从本地存储的体素中删除,并更新所述地图。

基于上述实施例,参阅图4所示为本申请实施例中电子设备的结构示意图。

本申请实施例提供了一种电子设备,该电子设备可以包括处理器410(centerprocessingunit,cpu)、存储器420、输入设备430和输出设备440等,输入设备430可以包括键盘、鼠标、触摸屏等,输出设备440可以包括显示设备,如液晶显示器(liquidcrystaldisplay,lcd)、阴极射线管(cathoderaytube,crt)等。

存储器420可以包括只读存储器(rom)和随机存取存储器(ram),并向处理器410提供存储器420中存储的程序指令和数据。在本申请实施例中,存储器420可以用于存储本申请实施例中任一种地图更新方法的程序。

处理器410通过调用存储器420存储的程序指令,处理器410用于按照获得的程序指令执行本申请实施例中任一种地图更新方法。

基于上述实施例,本申请实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意方法实施例中的地图更新方法。

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

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

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

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

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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