NDT算法原理

NDT算法原理NDT 算法原理算法提出原文 TheNormalDis ANewApproach FromIEEE 参考 https www cnblogs com 21207 iHome p 8039741 htmlNDT 是基于栅格化地图的算法 主要算法思路 基于 2D 场景将参考帧点云地图分为一个个小块 c

NDT算法原理

算法提出原文:The Normal Distributions Transform: A New Approach to Laser Scan Matching(From IEEE)

参考:https://www.cnblogs.com/21207-iHome/p/8039741.html

NDT是基于栅格化地图的算法,主要算法思路:基于2D场景

将参考帧点云地图分为一个个小块(cell),计算下一时刻的目标帧得到的点云,变换到参考坐标,落到对应参考帧的cell中的概率。就是同一个环境点,不同时刻检测结果,变换到同一坐标,落在同一个cell。通过这种关系得到评分指标,最优化得到R,t。

详细步骤:

  1. 将参考点云(reference scan)所占的空间划分成指定大小(CellSize)的网格或体素(Voxel);并计算每个网格的多维正态分布参数:
  2. 计算网格的概率分布模型:
  1. 变换要配准的点云(second/Target scan)到参考(reference)坐标系下(参考点云的坐标系,通常是前一帧)。
    在这里插入图片描述
  2. 根据正态分布参数计算每个转换点落在对应cell中的概率
    在这里插入图片描述
  3. NDT配准得分(score):计算对应点落在对应网格cell中的概率之和
    在这里插入图片描述
  4. 根据牛顿优化算法对目标函数 − s c o r e −score score进行优化,即寻找变换参数 p p p使得 s c o r e score score的值最大。优化的关键步骤是要计算目标函数的梯度和Hessian矩阵:
    q = x ′ i − q i q=x′_i−q_i q=xiqi,则:
    在这里插入图片描述
    根据链式求导法则以及向量、矩阵求导的公式,s梯度方向为:
    在这里插入图片描述
    其中q对变换参数 p i p_i pi的偏导数 ∂ q ∂ p i \frac{\partial q}{
    {\partial p}_i}
    piq
    即为变换T的雅克比矩阵:
    在这里插入图片描述
    根据上面梯度的计算结果,继续求 s s s关于变量 p i p_i pi p j p_j pj的二阶偏导:
    在这里插入图片描述
    根据变换方程,向量 q q q对变换参数 p p p的二阶导数的向量为:
    在这里插入图片描述









  5. 跳转到第3步继续执行,直到达到收敛条件为止
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233924.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 此视频无法播放0xc00d36c4_视频播放失败代码-30

    此视频无法播放0xc00d36c4_视频播放失败代码-30相信很多用户都遇到过视频无法播放的问题。比如将重要视频从旧电脑拷到U盘上,使用另一台电脑播放时,提示视频播放错误代码0xc00d36c4,不支持该视频播放。其实,视频无法播放的问题是很常见的,不少用户在电脑上连接相机或者手机后播放视频,也会提示0xc00d36c4。出现这样的问题要怎么解决,怎么才能修复该视频文件使其正常播放?播放MP4格式视频显示错误代码0xc00d36c4的情况大多数情况下,…

    2022年9月29日
    4
  • (2021 最新版)IntelliJ IDEA 下载安装及配置教程

    (2021 最新版)IntelliJ IDEA 下载安装及配置教程前言因为自己电脑最近实在是太卡了,也一直提示更新,索性就直接重装了个系统。因为需要重装下IDEA,而现在新版本的IDEA和之前的版本还是有很大变化的,所以在这里写一篇博客做个记录,方便自己后续配置,也顺便分享给大家。准备工作既然要安装IDEA,那么首先需要前往JetBrains的官网下载最新版的IDEA,下载地址如下:https://www.jetbrains.com/idea/download/这里最新的版本是2021.1.2,而因为我有旗舰版的账号,所以这里就以旗舰版安装

    2022年5月20日
    918
  • nginx根据url转发_nginx代理转发

    nginx根据url转发_nginx代理转发公司老项目是python做的,作为一个学java的,现在让我去重构这个项目的一部分页面,所以决定用java来重做,然后通过nginxurl转发来实现两个项目的无缝衔接,好了接下来看如何配置URL转发了很简单的第一个location是原先的项目第二个location是我要转发的路径即我访问www.lc.com/abc/**之后的请求都会被准发到另一个服务器去处理。配…

    2022年10月19日
    4
  • maven 项目打jar包 并包含所有依赖「建议收藏」

    maven 项目打jar包 并包含所有依赖「建议收藏」背景:基于最近项目部署,需要打jar包,然后涉及接口调用,反复测试,出现了各种问题,最后找到合理方案,特做以下总结:一、延伸知识:Springboot打jar包命令1.把之前打过的包通通干掉mvnpackageclean-Dmaven.test.skip=true2.重新打包mvnpackage-Dmaven.test.skip=true3.Springboot的打包插件<build><plugins>&

    2022年6月19日
    84
  • jasypt库的使用[通俗易懂]

    jasypt库的使用[通俗易懂]jasypt库的使用1.简介Jasypt是一个Java简易加密库,用于加密配置文件中的敏感信息,如数据库密码。jasypt库与springboot集成,在实际开发中非常方便。2.添加依赖jasypt开发者开发了starter,添加jasypt-spring-boot-starter依赖就可以了。该库中有使用到slf4j依赖,若单独测试,需添加相应依赖,或直接添加spring-boot-st…

    2022年9月26日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号