SLAM中的NDT配准简介与使用

更新时间:2023-06-09 19:31:04 阅读: 评论:0

SLAM中的NDT配准简介与使⽤
NDT⽅法
1.NDT⽅法理论基础
NDT(The Normal Distributions Transform)budget
正态分布概率密度函数
⼀元正态分布的密度函数表⽰为:
⼀元正态分布的似然函数为:
可在任何⼀本数理统计课本中查到、现在我们拓展到多元即含有Xp p个变量
对于多元的情况有:
Similar to an occupancy grid, the NDT establishes aregular subdivision of the plane. But where the occupancy grid reprents the probability of a cell being occupied, the NDT reprents the probability of measuring a sample foreach position within the cell. We u a cell size of 100cm by 100 cm
uta与分配栅格类似,NDT建⽴了平⾯的细分区域。但是这⾥的栅格表⽰单元被占⽤的概率,NDT表⽰针对单元内每个位置测量样本的概率。我们使⽤100厘⽶乘100厘⽶的单元⼤⼩
To minimize effects of discretization, we decided to ufour overlapping grids. That is, one grid with side lengthl of a single cell is placed first, then a cond one, shifted by l/2 horizontally, a third one, shifted by l/2 vertically andfinally a fourth one, shifted by l/2 horizontally and verti-cally. Now each 2D point falls into four cells. This will notbe taken into account for the rest of the paper explicitlyand we will describe our algorithm, as if there were onlyone cell per point. So if the probability density of a pointis calculated, it is done with the tacit understanding, that the densities of all four cells are evaluated and the resultis summed up.
为了最⼩化离散化的影响,我们决定使⽤四个重叠的⽹格。也就是说,⾸先放置⼀个具有单个单元格的边长l的⽹格,然后放置第⼆个⽹格,⽔平偏移⽔平⽅向为l / 2,第三个⽹格,垂直偏移长度为l / 2,
最后是第四个,⽔平偏移和垂直便宜长度均为l / 2。现在,每个2D点分为四个单元。在本⽂的其余部分中,不会明确考虑到这⼀点,我们将描述我们的算法,就像每个点只有⼀个像元⼀样。因此,如果计算出⼀个点的概率密度,则可以通过默认理解来完成,即评估所有四个单元的密度并将其结果相加。⼤概
是这样
To prevent this effect, we check, whetherthe smaller eigenvalue of Σ is at least 0.001 times the larger eigenvalue. If not, it is t to this value
husband是什么意思
论⽂中为了避免⾮奇异还设定了⼀个阈值,即噪声要⽐协⽅差的0.001倍要⼩。
Fig. 1 shows an example lar scan and a visualizationof the resulting NDT. The visualization is created byevaluating theprobability density at each point, brightareas indicate high probability densities.
图1显⽰了激光扫描和所得NDT的可视化效果的例⼦。通过评估每个点的概率密度来创建可视化图像,明亮区域表⽰⾼概率密
度。
两个机器⼈坐标系之间的空间映射T由下式给出
攫取(tx,ty)t描述两个帧之间的平移和φ旋转。配准的⽬的是⽤两个位置扫描下的激光数据来恢复这些参数。给出两次扫描(第⼀和第⼆次扫描)后,⽤如下⽅法:attach什么意思
1)创建第⼀次扫描的NDT(参数化)。
2)初始化参数的估计值(⽤0或使⽤⾥程计数据)。
3)对于第⼆次扫描的每个样本:根据参数将构造的点映射到第⼀次扫描的坐标系中。
4)确定每个映射点的对应正态分布。
5)通过评估每个映射点的分布并求和结果来确定参数的分数。
6)优化计算新参数估计。通过最优化⽅法⽜顿法完成。
7)转到3,直到满⾜收敛准则。
以上是配准 ***
special fried rice下⾯是在建图中的应⽤
将全局参考坐标系作为机器⼈坐标系。在下⽂中,激光扫描数据称为关键帧。对关键帧进⾏轨迹描述。在时间tk内,算法执⾏以下步骤
1)假设δ是时间tk-1和tk之间的运动的估计(如来⾃⾥程表的运动估计)。
2)由δ推出tk-1的位置估计。
3)使⽤现有帧进⾏ndt配准,得到新的位置估计。
4)检查关键帧是否⾜够接近于当前帧c。是则进⾏1-4迭代。否则,将最近⼀次成功匹配的扫描作为新的关键帧。
我们将地图定义为关键帧和姿态的集合。当机器⼈到达未知地区时如何在地图中进⾏定位,如何扩展地图、优化地图。
当前机器⼈姿态由旋转矩阵R和平移⽮量T表⽰。从机器⼈坐标系到第i次扫描全局坐标系的映射关系如下:
snowslam问题中包含定位和建图对于定位:
对机器⼈每个位置的扫描数据,评估概率密度结果的⼤⼩来定位。
youthhostel对于建图:
若这⼀帧跟每⼀帧即每个位置的扫描数据均匹配度较⼩,则⽤最近匹配正确的那⼀帧来继续⽤上述NDT⽅法建图。
In this graph, every keyframe is reprented by a node.A node holds the estimate for the po of the keyframein the global
coordinate frame. An edge between twonodes indicates that the corresponding scans have beenpairwi matched and holds the relative po between thetwo scans.
在图中,每个关键帧均由⼀个节点表⽰。节点在全局坐标系中保存关键帧的姿态估计值。两个节点之间的边表⽰相应的扫描已匹配,并保存了两帧间的相对位姿。(此处是图优化部分的内容可以跳转⾼翔博⼠的博客)最后可⽤最化理论给其添边。
以上来⾃论⽂
中⽂部分是加了⾃⼰理解之后的东西,英⽂部分是原作者的话。
后⾯附ndt调⽤及初始化的源码
1.NDT⽅法应⽤
其应⽤相对来说⽐较简单,pcl中有对应的库
初始化参数设置⼯作
汽车零件英语
pcl::NormalDistributionsTransform<pcl::PointXYZ, pcl::PointXYZ> ndt_new;//初始化
ndt_new.tTransformationEpsilon(trans_epsilon);//设置收敛 0.1- 0.001
ndt_new.tStepSize(step_size);//设置步长 0.1
ndt_new.tResolution(resolution);//设置栅格化⼤⼩1-2m最佳
ndt_new.tMaximumIterations(max_iterations);//最⼤迭代步数50-200
ndt_new.tInputTarget(t_InputTarget);//配准的⽬标对准的⽬标
ndt_newer.tInputSource(t_InputSource);//配准的输⼊对准的输⼊
ndt_newer.align(*transform_points, initial_po_matrix);//赋初值
thestatueofliberty结果获取
Eigen::Matrix4f result_po_matrix = FinalTransformation();//四元数矩阵位姿变换矩阵
transform_probability = TransformationProbability();//概率

本文发布于:2023-06-09 19:31:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/913703.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:扫描   坐标系   数据   映射   位置   机器   结果
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图