Skip to content

natsumehe/pointcloud_localization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pointcloud_localization

本文件夹用于点云定位相关的代码与资源。主要内容包括:

  • src/:源代码目录,包含点云处理、定位算法等实现。
  • data/:存放测试用的点云数据集。
  • docs/:项目文档与说明文件。
  • README.md:项目简介、安装方法、使用说明等。
pointcloud_localization/
├── CMakeLists.txt
├── include/
│   ├── voxelizer.hpp          # Step1: 三维栅格化 & 特征提取
│   ├── score_table.hpp        # Step2: 得分查表构建
│   ├── csm_matcher.hpp        # Step3: 全局搜索与配准
│   └── types.hpp              # 通用数据结构(点、栅格索引、姿态)
├── src/
│   ├── voxelizer.cpp
│   ├── score_table.cpp
│   ├── csm_matcher.cpp
│   └── main.cpp               # 程序入口
├── data/
│   └── sample_map.pcd         # 地图点云样例
├── build/                     # CMake 构建输出
└── README.md

三维栅格划分与多元统计信息融合的全局点云定位方法实现方法流程

Step1:栅格粗划分

采用多线激光雷达获得场景的三维点云,并根据三维点云构建场景的三维点云地图。对场景的三维点云地图在x、y、z方向上分别进行栅格划分,获得三维栅格地图;其中,如图2所示,栅格划分的具体过程为:

Step1.1:分别确定x、y、z方向上的分辨率Rx、Ry、Rz;其中分辨率Rx、Ry、Rz构成一个三维栅格,各个方向上划分的分辨率不一定相同;在确定在xoy平面分辨率时,x方向、y方向和z方向上的分辨率可以相同也可以不同,若三个维度上的分辨率保持不同,则相对来说更加灵活。
Step1.2:根据分辨率和三维点云地图的大小,确定划分的栅格数量k;
Step1.3:根据分辨率和栅格数量k,对场景中的三维点云地图进行栅格划分,获得三维栅格地图。

本实施例中的三维点云地图可以是提前构建好的,可以将构建好的场景的三维点云地图直接应用在本发明的定位方法中,也可以是使用时根据具体场景进行构建。

Step2:特征计算

统计三维栅格地图中落入每个三维栅格中的点云,获得每个三维栅格的点云集合Vi,则并统计所有点云集合中的点云最大频数maxp,则maxp=max{n1,n2,…,nk};同时,对每个三维栅格在z方向上进行高斯拟合,计算出每个三维栅格的均值和方差;其中,Vi表示第i个三维栅格的点云集合,ni表示集合Vi中的点的数量,不同的集合,点的数量不尽相同,i表示三维栅格的序号,i=1,2,…k,k表示三维点云地图划分的栅格数量; 其中,频数、均值和方差均表示三维栅格地图的特征,其中,频数是分布特征,表示的是多线激光雷达扫描的点落到三维栅格地图中的概率;均值和方差是统计特征,表示的是多线激光雷达扫描的点落到三维栅格地图中,该点与三维栅格中点的相似度。

Step3:z方向上栅格细化分

将每个三维栅格在z方向上以一定的分辨率Zres细划分,且Zres<Rz,按照下面公式计算点击中细分栅格后的得分: 其中,下标i表示三维栅格的序号,i=1,2,…k,j表示在第i个栅格中按照z方向细划分后的栅格序号,α表示常数系数,z表示高度,Rz表示三维点云地图进行栅格划分时z方向上的分辨率,Zres表示每个三维栅格细化分时z方向上的分辨率,μi表示序号为i的三维栅格的均值,σi表示序号为i的三维栅格的方差; 即为待匹配点云中单个点击中目标栅格后的得分,对划分的栅格进行一元高斯拟合及点云密度信息统计,实现的多元信息融合特征表达。 其中,Step1是进行的第一次栅格划分,Step3在第一次栅格划分基础上,再对z方向上进行细化分,即进行第二次栅格划分,经过这个步骤后,可以把三维空间高精度点云地图划分为一系列三维栅格,并计算出了待匹配点云击中目标栅格后的得分。 可以提前计算点击中每个细分栅格的得分,并组合成一个得分表,采用这种方式,把三维点云地图预划分为三维的得分查找表,在后续的计算中可以直接采用查表的方式,加速计算。

Step4:点云配准定位

将待配准的点云按照CSM的全局搜索方法进行搜索,选择总得分最高的变换作为最优结果,即最终定位结果。 CSM的全局搜索方法是已经有的技术方案,就是采用多分辨形式的分支界定算法来实现的,不是本发明要求保护的创新点所在,因此,此处不作详细赘述。 采用本发明基于多元统计信息的全局定位方法对点云地图进行处理,实现激光雷达点云与地图的配准,配准结果其中,白色点云为高精度矢量地图,黄色点云为初始待匹配点云,红色点云为配准后点云,其中,红色点云能够和地图完全匹配,黄色没有匹配,只是为了表征在巨大旋转和位移误差下面,该方案也能有效实现点云和地图的匹配。

其中依赖的点云处理第三方库为PCL(主要用于处理)和open3d(主要用于显示)

About

高精度地图-点云配准

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors