一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2022-07-16 16:10:04 来源:中国专利 TAG:


1.本发明涉及智能驾驶技术领域,尤其涉及一种终端重定位方法和装置。


背景技术:

2.激光雷达对于自动驾驶终端(如机器人、车辆)必不可少,目前激光雷达市场正处于高速发展之中,激光雷达可以利用脉冲激光测量动态距离,创建并更新三维地图,使得厘米级别的终端定位成为可能。
3.终端在第一次初始化或者在长时间的运行后,由于传感器数据误差、环境信息较少、累积误差等造成定位失败时,为保证终端的正常定位,需要进行重定位。重定位时需要根据当前雷达数据或视觉数据,找到在预先建立的地图上的正确位置。
4.目前在重定位问题上,基于雷达数据设计的帧签名较少,如:使用每个栅格内最高点作为特征点,以按空间排列的二维栅格组成的二维向量作为帧签名。但这种方法使用的特征点数据受移动终端干扰较大,影响其鲁棒性。且设计的二维向量签名不具有旋转不变性,在计算两帧雷达数据之间是否相似时,如果使用二维向量需循环遍历逐列对齐后进行比对,计算量较大;如果使用累加后的一维向量进行比对,则准确度可能会下降。


技术实现要素:

5.有鉴于此,本发明实施例提供一种终端重定位方法和装置,至少能够解决现有技术中终端在重定位时,使用一维向量比对导致的定位准确度低的现象。
6.为实现上述目的,根据本发明实施例的一个方面,提供了一种终端重定位方法,包括:
7.响应于对终端的重定位操作,获取终端采集的当前帧点云数据,对所述当前帧点云数据做签名处理,得到当前帧签名;
8.获取点云地图中每个关键帧点云数据的帧签名,计算所述当前帧签名和每个帧签名的差异值,以按照差异值从小到大的顺序,确定第一预设数量个关键帧点云数据;
9.确定所述第一预设数量个关键帧点云数据中每个关键帧点云数据的位姿,计算每个关键帧点云数据和所述当前帧点云数据的匹配值和位姿变换值;
10.将匹配度最大的关键帧点云数据的位姿叠加相应位姿变换值,得到终端当前在所述点云地图中的目标位姿。
11.可选的,在所述响应于对终端的重定位操作之前,还包括:
12.在一个或多个终端的运行过程中,获取激光雷达采集的多帧点云数据,以基于所述多帧点云数据构建点云地图;
13.按照所述点云地图中相邻帧点云数据之间的距离,从中筛选出距离符合预设距离范围的关键帧点云数据;
14.对每个关键帧点云数据做签名处理,得到每个关键帧点云数据的帧签名;以及使用预设算法计算每个关键帧点云数据的位姿。
15.可选的,所述对所述当前帧点云数据做签名处理,得到当前帧签名,包括:
16.将所述当前帧点云数据中每个点在笛卡尔坐标系下的坐标值,转换为圆柱坐标系下的行索引、列索引、在水平面上的投影点与原点的距离;
17.按照行索引和列索引对所有点进行排列,以生成二维数据,依次计算每一列中相邻两点的倾角,将倾角的绝对值大于或等于预设倾角阈值的相邻两点均标记为竖直方向点;
18.计算每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,以确定每个任意两列的竖直方向点的相对距离分布、每个相对距离分布的贡献值;
19.按照相对距离分布从小到大的顺序排列贡献值,以生成数组,将生成的数组确定为帧签名。
20.可选的,所述计算每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,包括:
21.统计每一列中竖直方向点的数量,以筛选出数量大于或等于第二预设数量的一个或多个列;
22.对于所述一个或多个列中的每一列,计算竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值。
23.可选的,所述确定任意两列的相对距离分布,包括:
24.按照距离方差从小到大的顺序,确定第三预设数量个列;
25.根据每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,计算所述第二预设数量个列中所有任意两列的相对距离分布。
26.可选的,所述确定第三预设数量个列,还包括:
27.对于所述第三预设数量个列中相邻的多列数据,选取方差最小的一列数据、或位于所述多列数据中间的一列数据。
28.可选的,所述按照相对距离分布从小到大的顺序排列贡献值,包括:
29.对同一相对距离分布的贡献值进行累加,基于相对距离分布、累计的贡献值,构建统计图表,根据统计图表中相对距离分布从小到大的顺序排列贡献值。
30.为实现上述目的,根据本发明实施例的另一方面,提供了一种终端重定位装置,包括:
31.帧签名模块,用于响应于对终端的重定位操作,获取终端采集的当前帧点云数据,对所述当前帧点云数据做签名处理,得到当前帧签名;
32.第一计算模块,用于获取点云地图中每个关键帧点云数据的帧签名,计算所述当前帧签名和每个帧签名的差异值,以按照差异值从小到大的顺序,确定第一预设数量个关键帧点云数据;
33.第二计算模块,用于确定所述第一预设数量个关键帧点云数据中每个关键帧点云数据的位姿,计算每个关键帧点云数据和所述当前帧点云数据的匹配值和位姿变换值;
34.位姿模块,用于将匹配度最大的关键帧点云数据的位姿叠加相应位姿变换值,得到终端当前在所述点云地图中的目标位姿。
35.可选的,还包括关键帧模块,用于:
36.在一个或多个终端的运行过程中,获取激光雷达采集的多帧点云数据,以基于所
述多帧点云数据构建点云地图;
37.按照所述点云地图中相邻帧点云数据之间的距离,从中筛选出距离符合预设距离范围的关键帧点云数据;
38.对每个关键帧点云数据做签名处理,得到每个关键帧点云数据的帧签名;以及使用预设算法计算每个关键帧点云数据的位姿。
39.可选的,所述帧签名模块,用于:
40.将所述当前帧点云数据中每个点在笛卡尔坐标系下的坐标值,转换为圆柱坐标系下的行索引、列索引、在水平面上的投影点与原点的距离;
41.按照行索引和列索引对所有点进行排列,以生成二维数据,依次计算每一列中相邻两点的倾角,将倾角的绝对值大于或等于预设倾角阈值的相邻两点均标记为竖直方向点;
42.计算每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,以确定每个任意两列的竖直方向点的相对距离分布、每个相对距离分布的贡献值;
43.按照相对距离分布从小到大的顺序排列贡献值,以生成数组,将生成的数组确定为帧签名。
44.可选的,所述帧签名模块,用于:
45.统计每一列中竖直方向点的数量,以筛选出数量大于或等于第二预设数量的一个或多个列;
46.对于所述一个或多个列中的每一列,计算竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值。
47.可选的,所述帧签名模块,用于:
48.按照距离方差从小到大的顺序,确定第三预设数量个列;
49.根据每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,计算所述第二预设数量个列中所有任意两列的相对距离分布。
50.可选的,所述帧签名模块,用于:
51.对于所述第三预设数量个列中相邻的多列数据,选取方差最小的一列数据、或位于所述多列数据中间的一列数据。
52.可选的,所述帧签名模块,用于:
53.对同一相对距离分布的贡献值进行累加,基于相对距离分布、累计的贡献值,构建统计图表,根据统计图表中相对距离分布从小到大的顺序排列贡献值。
54.为实现上述目的,根据本发明实施例的再一方面,提供了一种终端重定位电子设备。
55.本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一所述的终端重定位方法。
56.为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一所述的终端重定位方法。
57.根据本发明所述提供的方案,上述发明中的一个实施例具有如下优点或有益效果:通过预先构建的点云地图,简单有效的确定终端重定位的候选关键帧,以从中筛选匹配
度最高的目标关键帧,实现重定位关键帧的有效选择,保证重定位结果的准确性,同时还减少了计算资源和时间的过度耗费,在自动驾驶领域,能提高驾驶的效率、舒适度和智能性、安全性。
58.上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
59.附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
60.图1是根据本发明实施例的一种终端重定位方法的主要流程示意图;
61.图2是整体实施流程示意图;
62.图3是根据本发明实施例的一种可选的终端重定位方法的流程示意图;
63.图4(a)是点云数据每个点在地球坐标下的坐标;
64.图4(b)是二维数据排列示意图;
65.图4(c)是通过相对距离直方图生成帧签名示意图;
66.图5是帧签名生成整体流程示意图;
67.图6是根据本发明实施例的一种终端重定位装置的主要模块示意图;
68.图7是本发明实施例可以应用于其中的示例性系统架构图;
69.图8是适于用来实现本发明实施例的移动设备或服务器的计算机系统的结构示意图。
具体实施方式
70.以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
71.需要指出的是,在不冲突的情况下,本发明中的实施例以及实施例中的特征可以互相组合。本技术技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
72.此处对本方案涉及的词语,做解释如下:
73.鲁棒性:在异常和危险情况下系统生存的关键。比如计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不宕机、不崩溃,就是该软件的鲁棒性,用以表征控制系统对特性或参数摄动的不敏感性。
74.slam(simultaneous localization and mapping,机器人同时定位与建图)算法:运用扩展卡尔曼滤波,对状态空间中的机器人位姿和特征(路标)位置进行同时估计。
75.帧签名:又可以称为帧特征编码,在对雷达帧点云数据进行特征提取后,对提取到的特征按照预定策略进行编码,所得编码即为帧签名。
76.旋转不变性:终端转动一定角度,得到的帧特征编码是一样的,就是旋转不变性。
77.参见图1,示出的是本发明实施例提供的一种终端重定位方法的主要流程图,包括如下步骤:
78.s101:响应于对终端的重定位操作,获取终端采集的当前帧点云数据,对所述当前帧点云数据做签名处理,得到当前帧签名;
79.s102:获取点云地图中每个关键帧点云数据的帧签名,计算所述当前帧签名和每个帧签名的差异值,以按照差异值从小到大的顺序,确定第一预设数量个关键帧点云数据;
80.s103:确定所述第一预设数量个关键帧点云数据中每个关键帧点云数据的位姿,计算每个关键帧点云数据和所述当前帧点云数据的匹配值和位姿变换值;
81.s104:将匹配度最大的关键帧点云数据的位姿叠加相应位姿变换值,得到终端当前在所述点云地图中的目标位姿。
82.上述实施方式中,对于步骤s101,本方案主要使用多线激光雷达,多线是相对单线而言的,是激光雷达的产品参数。具体地:
83.1)单线雷达只有一个激光发射器和接收器,经过电机的旋转,投射到前面障碍物是一条线,每次只能检测同一个高度的障碍物,无法测量整体轮廓,多应用于扫地机器人、酒店服务机器人;
84.2)多线雷达目前市场有4线、8线、16线、32线、64线、128线,在垂直方向上设有多个发射器和接收器,通过电机的旋转获得多条线束,线数越多所得物体表面轮廓越完善,相应处理的数据量越大,对硬件要求越高。多线雷达主要应用在无人驾驶场景,可以计算物体的高度信息,并对周围坏境进行3d建模。
85.本方案预先建立关键帧点云数据的帧签名和位姿。将激光雷达、处理设备安装在一个或多个终端上,并按照预设路线行进,激光雷达旋转一圈即可得到一帧点云数据;其中,点云数据指在一个三维坐标系统中的一组向量的集合,激光雷达使用自动化的方式测量在物体表面的大量的点的信息,然后用某种特定数据文件输出点云数据,代表了终端周围建筑物的外轮廓。激光雷达与处理设备连接,因此处理设备会不断获得激光雷达采集的多帧点云数据,自动驾驶场景中需要高精点云地图,其中,点云地图存储的是激光雷达对环境的原始扫描点云数据,优点是保留信息完整,缺点是计算量大,但不能直接用于导航避障。
86.点云地图包括多帧点云数据,为减少后续计算量,可以仅设置关键帧。关键帧是指激光雷达扫描一圈获得的一帧数据,一般每隔一段距离(例如0.2m)取一帧为关键帧,中间的为非关键帧。对每个关键帧调用帧签名处理程序,得到每个关键帧的帧签名。使用slam(如lio-sam)算法处理每个关键帧的点云数据得到每个关键帧的位姿,包括位置和方向,方向主要指车头方向。将点云地图中每个关键帧的帧签名和位姿存储到预设文件中,如txt格式文件,使用时再解析。
87.上述生成点云地图所需的点云数据,可以由本次重定位的终端提供,如终端a之前在路线b中行走,已采集到路线b的点云数据并生成点云地图,也可以由其他一个或多个终端提供,如终端a第一次行走在路线b上,但出现需重定位需求,而终端c、终端d之前在线路b上行走过,已生成点云地图可供终端a使用。
88.终端在点云地图中进行第一次初始化时,或者在长时间的运行后,由于传感器数据误差、环境信息较少、累积误差等造成定位失败时,为保证终端的正常定位,需要进行重定位。响应于对终端的重定位操作,使用激光雷达旋转一圈,以采集位于终端周围的当前帧点云数据,调用帧签名处理程序当前帧点云数据,得到当前帧签名。
89.将当前帧签名与前述预设文件中的每个关键帧的帧签名进行差异或相似度比较,假设帧签名由具备顺序性的200个数字组成,两个帧签名比较即按照数字位置一一比较这200个数字是否相同,如第一个位置0和1不同、第二个位置1和1相同,统计有多少个位置的数字存在差异,以此计算差异值(或相似度),筛选差异值最小(或相似度最大)的k(即第一预设数量,如5)个帧签名。
90.对于步骤s103,点云配准(point cloud registration)指的是输入两幅点云数据,输出一个变换t使得两幅点云数据的位姿的重合程度尽可能高。变换t可以是刚性的(rigid),也可以不是,本方案只考虑刚性变换,即变换只包括旋转、平移。点云配准可以分为粗配准(coarse registration)和精配准(fine registration)两步。粗配准指的是在两幅点云之间的变换完全未知的情况下进行较为粗糙的配准,目的主要是为精配准提供较好的变换初值;精配准则是给定一个初始变换,进一步优化得到更精确的变换。目前应用最广泛的点云精配准算法是迭代最近点算法(iterative closest point,icp)。
91.仅通过帧签名的方式无法100%确定目标关键帧,因此需要进一步处理。将与这k个帧签名对应的关键帧作为候选帧,使用迭代最近点算法(iterative closest point,icp),一一计算当前点云数据与每个关键帧点云数据的匹配值和位姿变换值δt。具体地,直接使用点云数据中的一个一个点,当两个点云数据的点构成的轮廓形状重叠性较高时即表示匹配,代表的是同一个位置的两份点云数据。该过程较为耗时,因此优选通过帧签名匹配方式得到最可能的几个关键帧,然后再进一步处理,以大幅降低处理的数据量,提高计算效率。
92.对于步骤s104,将匹配对最大的关键帧确定为目标关键帧,通过上述步骤,使用icp方法计算出当前点云数据与目标关键帧的位姿变换值δt。从前述预设文件中,确定与该目标关键帧对应的位姿ti,在位姿ti基础上叠加变换δt得到目标位姿t
final
=ti*δt。
93.位姿,表示激光雷达采集点云数据那一刻,激光雷达在地图上的位置和方向。激光雷达每次开机位置可能不同,例如本次点云数据和点云地图中某一关键帧采集时的位置相差2m,通过帧签名差异处理方式确定本次开机位置与该关键帧位置较为接近,但不一定完全重合,因此需要通过icp点云配准方式计算出这2m差异,之后需要补上这2m差异即可确定当前激光雷达在地图上的准确位置,以此完成重定位,后续可以依据当前位置继续进行自动驾驶。
94.整体实施示意图参见图2所示,通过一个或多个终端的激光雷达采集的多帧点云数据生成点云地图,筛选候选关键帧,计算每个关键帧的帧签名和位姿。在终端当前需要定位时,同样使用激光雷达采集当前一帧点云数据,确定其帧签名,计算该帧签名与点云地图中每个关键帧的帧签名的差异值,以进行关键帧筛选。计算当前帧点云数据和每个筛选出的关键帧的匹配度和位姿差异值,对匹配度最大的关键帧的位姿进行位姿调整,得到当前终端的位姿。
95.上述实施例所提供的方法,能够通过预先构建的点云地图,简单有效的确定终端重定位的候选关键帧,以从中筛选匹配度最高的目标关键帧,实现重定位关键帧的有效选择,保证重定位结果的准确性,同时还减少了计算资源和时间的过度耗费,能适用到更复杂的环境中。
96.参见图3,示出了根据本发明实施例的一种可选的终端重定位方法流程示意图,包
括如下步骤:
97.s301:将当前帧点云数据中每个点在笛卡尔坐标系下的坐标值,转换为圆柱坐标系下的行索引、列索引、在水平面上的投影点与原点的距离;
98.s302:按照行索引和列索引对所有点进行排列,以生成二维数据,依次计算每一列中相邻两点的倾角,将倾角的绝对值大于或等于预设倾角阈值的相邻两点均标记为竖直方向点;
99.s303:统计每一列中竖直方向点的数量,以筛选出数量大于或等于第二预设数量的一个或多个列,对于所述一个或多个列中的每一列,计算竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值;
100.s304:确定每个任意两列的竖直方向点的相对距离分布、每个相对距离分布的贡献值,按照相对距离分布从小到大的顺序排列贡献值,以生成数组,将生成的数组确定为帧签名。
101.上述实施方式中,对于步骤s301,本实施方式主要描述如何利用帧签名处理程序处理点云数据,以得到帧签名。以16线激光雷达为例进行说明,16线激光雷达由排成1列的16个激光发射头组成,这16个激光发射头每转0.5度采集一次数据,得到总共16行、1800列数据。从效果上来讲,激光雷达维度(线束)越多,测量精度越高,安全性就越高。
102.激光雷达利用飞行时间计算物体的距离:当发射激光脉冲时,其发射时间和方向将被记录,激光脉冲在空气中传播,直到碰到一个能反射一些能量的障碍物,由传感器记录采集和接收的时间,障碍物的球面坐标利用传感器的返回时间和每次扫描后接收的功率(作为反射率)来计算。
103.空间任何一个目标p所在的位置都可用下列三个坐标值来确定,参见图4(a)所示:
104.(1)目标的斜距r:激光雷达到目标的直线距离。
105.(2)方位角(α):目标斜距r在水平面上的投影与某一起始方向在水平方向的夹角。
106.(3)仰角(β):目标斜距r与其在水平面上的投影在铅锤面上的夹角。
107.雷达数据中每个点在笛卡尔坐标系下的坐标值为(x,y,z),而对于多线激光雷达,如16线雷达数据可以看成16行、1800列数据,因而需将每个点的坐标值转换到圆柱坐标系下,得到每个点的行列索引、在xy平面投影点到坐标原点的距离,参见公式(1):
[0108][0109]
其中,点i的坐标为(xi,yi,zi),ρi为点i在xy平面投影点到坐标原点的距离,rowi为点i的行索引,columni为点i的列索引,例如第三行第四列,16线激光雷达的垂直分辨率2度,在计算row行索引时使用,8为经验值表示偏移量,以保证行索引为正数,水平分辨率0.2度,在计算column时使用,若采用其他多线激光雷达,此处的数值需适应性调整。
[0110]
对于步骤s302,按照行列索引将点云数据排成二维数据,参见图4(b)所示,为二维数据排序示意图。取出每一列数据,对相邻两点的倾角α,以将倾角α的绝对值超过预设倾角
阈值α
max
(如π/3)的相邻两点,标记为竖直方向的点。
[0111]
参见式(2),为计算相邻两点(i-1)和i的倾角α的公式,其中点(i-1)的坐标为(x
i-1
,y
i-1
,z
i-1
),点i的坐标为(xi,yi,zi):
[0112][0113]
对于步骤s303,统计每一列中竖直方向点的数量m。针对某一列数据,如果竖直方向点的数量m大于或等于预设数量m
σ
(即第二预设数量,如5),则使用如下公式(3)首先统计每一列竖直方向点在xy平面投影点到坐标原点的平均距离之后依据计算每一列竖直方向点的距离方差σ,但若m小于m
σ
,则跳过该列。
[0114][0115]
通过上述方式,可以找出打在障碍物(如一堵墙或一根杆上)上的一列点,由这一列点形成一条竖线。同时,使用公式(4)计算出每一列中竖直方向点在x轴和y轴方向上坐标均值,即x和y均值:
[0116][0117]
对于步骤s304,对竖直方向的点的数量m大于或等于预设数量m
σ
的所有列,进行方差排序,以选取方差最小的n(即第三预设数量,如20,且需小于这些列的数量)个目标列数据。为确保选取的列不集中分布,确保点云数据有效性,假设选取了某一列数据,则该列左右相邻的n列数据不再被选取。例如,第50列数据打在墙上,计算出的方差比较小,因此被选中,相应的,第40~49、50~59列所得方差大概率也会较小,但不能选取,还需要在其他位置找特征,如树、杆。上述对于40~59列数据,为相邻数据,可以仅选取方差最小的一列数据,也可以选取中间列数据,如第50列数据。
[0118]
在选取出上述方差最小的n个列数据后,根据下述公式(5),计算任意两列数据的竖直方向点的相对距离分布dist和方差平方σ2。此处的任意两列,是指种排列组合。
[0119][0120]
根据正态分布标准公式(6),计算每一个相对距离分布dist对直方图的贡献值y,累计得到图4(c)所示距离分布的直方图,且每个相对距离分布只取x在(σ-dist)到(σ dist)范围内的值进行计算;其中,直方图是一种二维统计图表,两个坐标分别是统计样本和该样本对应的某个属性的度量。
[0121][0122]
根据图4(c)所示距离分布的直方图中每个相对距离分布的贡献值。假设相对距离分布为0~1时的贡献值累加为5,相对距离分布为1~2的贡献值累加为4,相对距离分布为2~3的贡献值累加为3,相对距离分布为6~7的贡献值累加为3,相对距离分布为7~8的贡献值累加为4,按照相对距离分布从小到大的顺序排列应贡献值,得到数组[5,4,3,0,0,0,3,4],该数组即为帧签名。比较两个帧签名的差异值即为比较两个数组中每个位置的数值是否相同,假设点云地图中某一个关键帧点云数据的帧签名为[4,4,3,2,0,2,0,1],与前述[5,4,3,0,0,0,3,4]比对可知第二个位置、第三个位置和第五个位置数值相同,剩余五个位置的数值均不相同。
[0123]
需要说明的是,数组中的数值0不可去除。例如,去除数组中的数值0后,前述两个帧签名变为[5,4,3,3,4]和[4,4,3,2,2,1],虽后续可以根据实际位置进行比对,但相比前述比对过程无疑增加了计算难度,因此本方案即使某一个相对距离分布的贡献值为0,数组中仍需保留其位置,且设置数值0。
[0124]
另外,帧签名的度量单位均设置统一,如度量单位设置为1,则相对距离分布均以1为单位,得到相对距离分布0~1、相对距离分布1~2,相对距离分布2~3,但若度量单位设置为2,则相对距离分布以2为单位,得到相对距离分布0~2,相对距离分布2~4,相对距离分布4~6,具体依据实际情况统一设定。
[0125]
整体实施过程参见图5所示,对点云数据进行坐标转换,由笛卡尔坐标系转换为圆柱坐标系,得到行列索引和距离,基于行列索引生成点云二维数据,对于每一列数据计算相邻两点的倾角,以进行竖直方向点筛选,进而计算竖直方向点的距离方差、x平均值和y平均值。筛选方差较小的一个或多个列,计算任意两列的相对距离分布和贡献值,以生成帧签名。
[0126]
上述实施例所提供的方法,首先按照行列索引生成点云二维数据,按列统计竖直方向点和方差,筛选方差较小的列计算相对距离分布,以降低计算量、所得相对位置具有旋转不变性,累加每个相对距离分布的贡献值生成直方图,得到点云数据帧签名,以增强鲁棒性和抗干扰性。
[0127]
参见图6,示出了本发明实施例提供的一种终端重定位装置600的主要模块示意图,包括:
[0128]
帧签名模块601,用于响应于对终端的重定位操作,获取终端采集的当前帧点云数据,对所述当前帧点云数据做签名处理,得到当前帧签名;
[0129]
第一计算模块602,用于获取点云地图中每个关键帧点云数据的帧签名,计算所述当前帧签名和每个帧签名的差异值,以按照差异值从小到大的顺序,确定第一预设数量个关键帧点云数据;
[0130]
第二计算模块603,用于确定所述第一预设数量个关键帧点云数据中每个关键帧点云数据的位姿,计算每个关键帧点云数据和所述当前帧点云数据的匹配值和位姿变换值;
[0131]
位姿模块604,用于将匹配度最大的关键帧点云数据的位姿叠加相应位姿变换值,得到终端当前在所述点云地图中的目标位姿。
[0132]
本发明实施装置还包括关键帧模块,用于:
[0133]
在一个或多个终端的运行过程中,获取激光雷达采集的多帧点云数据,以基于所述多帧点云数据构建点云地图;
[0134]
按照所述点云地图中相邻帧点云数据之间的距离,从中筛选出距离符合预设距离范围的关键帧点云数据;
[0135]
对每个关键帧点云数据做签名处理,得到每个关键帧点云数据的帧签名;以及使用预设算法计算每个关键帧点云数据的位姿。
[0136]
本发明实施装置中,所述帧签名模块601,用于:
[0137]
将所述当前帧点云数据中每个点在笛卡尔坐标系下的坐标值,转换为圆柱坐标系下的行索引、列索引、在水平面上的投影点与原点的距离;
[0138]
按照行索引和列索引对所有点进行排列,以生成二维数据,依次计算每一列中相邻两点的倾角,将倾角的绝对值大于或等于预设倾角阈值的相邻两点均标记为竖直方向点;
[0139]
计算每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,以确定每个任意两列的竖直方向点的相对距离分布、每个相对距离分布的贡献值;
[0140]
按照相对距离分布从小到大的顺序排列贡献值,以生成数组,将生成的数组确定为帧签名。
[0141]
本发明实施装置中,所述帧签名模块601,用于:
[0142]
统计每一列中竖直方向点的数量,以筛选出数量大于或等于第二预设数量的一个或多个列;
[0143]
对于所述一个或多个列中的每一列,计算竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值。
[0144]
本发明实施装置中,所述帧签名模块601,用于:
[0145]
按照距离方差从小到大的顺序,确定第三预设数量个列;
[0146]
根据每一列竖直方向点的距离方差、横轴坐标均值和纵轴坐标均值,计算所述第二预设数量个列中所有任意两列的相对距离分布。
[0147]
本发明实施装置中,所述帧签名模块601,用于:
[0148]
对于所述第三预设数量个列中相邻的多列数据,选取方差最小的一列数据、或位于所述多列数据中间的一列数据。
[0149]
本发明实施装置中,所述帧签名模块601,用于:
[0150]
对同一相对距离分布的贡献值进行累加,基于相对距离分布、累计的贡献值,构建统计图表,根据统计图表中相对距离分布从小到大的顺序排列贡献值。
[0151]
另外,在本发明实施例中所述装置的具体实施内容,在上面所述方法中已经详细说明了,故在此重复内容不再说明。
[0152]
图7示出了可以应用本发明实施例的示例性系统架构700,包括终端设备701、702、703,网络704和服务器705(仅仅是示例)。
[0153]
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,安装有各种通讯客户端应用,用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。
[0154]
网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0155]
服务器705可以是提供各种服务的服务器,需要说明的是,本发明实施例所提供的方法一般由服务器705执行,相应地,装置一般设置于服务器705中。
[0156]
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0157]
下面参考图8,其示出了适于用来实现本发明实施例的终端设备的计算机系统800的结构示意图。图8示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0158]
如图8所示,计算机系统800包括中央处理单元(cpu)801,其可以根据存储在只读存储器(rom)802中的程序或者从存储部分808加载到随机访问存储器(ram)803中的程序而执行各种适当的动作和处理。在ram 803中,还存储有系统800操作所需的各种程序和数据。cpu 801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
[0159]
以下部件连接至i/o接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至i/o接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
[0160]
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(cpu)801执行时,执行本发明的系统中限定的上述功能。
[0161]
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的
程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。
[0162]
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0163]
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括帧签名模块、第一计算模块、第二计算模块、位姿模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,位姿模块还可以被描述为“位姿调整模块”。
[0164]
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行上述任一所述的终端重定位方法。
[0165]
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献