一、引言
ICP算法可以用于匹配两个点云,得到两个点云之间的位姿转换关系。本文主要介绍已知对应点的ICP匹配算法。

二、ICP算法
首先计算两个点云的质心:

然后将原始点云减去对应的质心,得到去除质心的点云:

计算新产生的两个点云形成的W矩阵,并SVD分解:

那么,两个原始点云的转换关系R和t如下所示:

三、推导过程
对于两组点云:

求解R和t,使得下式最小:

上式进行变换:

其中,цx 和 цp分别为X点云和P点云的质心。
转换为去除质心的形式:

展开得到

由于后面两项都有

我们可以令该项等于0,然后式子转化为

该式子仅与R有关,可以寻找可以最小化上式的R,然后根据=0求解t。

上式进一步转化,得到:

其中,X’ 和 P‘ 是原始点云减去对应质心的点点云,x’和p’是其中的点。

展开得到:

其中旋转矩阵R因为是正交矩阵,所以RTR=1,因此求上式的最小值等价于求最后一项的最小值:

即该式的最大值:

进行转化,用矩阵的迹进行表示:

这里可以用迹表示的原因是3X1矩阵乘以3X3矩阵,再乘以1X3矩阵,得到的是一个常量。常量迹即等于自身

其中,

对H进行SVD分解得到:

设定一个变量X为

得到:

此时得到的XH是一个正定对称矩阵

根据定理:

假设矩阵A为正定对称矩阵,则对于任意的正交矩阵B,都有

类比到我们的推导这里,我们准备求解可以让Trace(RH) 最大的R值,

我们发现,当R=VUT的时候,RH的结果是一个正定对称矩阵

而对于任意一个正定对称矩阵来说,根据定理可以知道,我们再乘以任何一个正交矩阵(旋转矩阵是正交矩阵),都会导致Trace值下降

所以说明,此时的R=VUT取值可以让Trace(RH)取得最大值。

因此:


参考:https://blog.csdn.net/weixin_35695879/article/details/103125575

点云配准icp算法推导相关推荐

  1. 一分钟详解点云配准ICP方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者:丁洪凯 链接:https://zhuanlan.zhihu.com/p/107218828 本文 ...

  2. python 点云配准_点云配准(Registration)算法——以PCL为例

    本文为PCL官方教程的Registration模块的中文简介版. An Overview of Pairwise Registration 点云配准包括以下步骤: from a set of poin ...

  3. PCL之点云配准--ICP

    代码展示: #include <string> #include <iostream> #include <pcl/io/ply_io.h> #include &l ...

  4. 激光雷达点云配准算法

    最近做了一些关于激光雷达的实验,并了解了一些雷达点云配准的算法在这里给大家分享一下,也算是记录一下学习的过程,留下一点自己的理解. 1.为什么要点云配准 因为雷达采集到的点云信息需要进行数据融合,得到 ...

  5. ICP算法实现(C++)

    用C++实现的ICP(Iterative Closest Point,迭代最近点)算法,借助了PCL库实现点云基本变换.KD-tree以及可视化部分,核心迭代部分没有调用PCL的api.代码在KD-t ...

  6. 点云配准2:icp算法在PCL1.10.0上的实现+源码解析

    目录 本文最后实现的配准实例 点云配准系列 准备 程序结构 主程序 1.为什么要降采样 2.体素降采样原理 3.点云更新 icp 配准前的参数设置 icp配准算法内部 对应点对确定(determine ...

  7. 多视图点云配准算法综述

    作者:杨佳琪,张世坤,范世超等 转载自:华中科技大学学报(自然科学版) 编辑:东岸因为@一点人工一点智能 原文:​​多视图点云配准算法综述​​ 摘要:以多视图点云配准为研究对象,对近二十余年的多视图点 ...

  8. 点云配准5:4pcs算法在pcl上的实现

    目录 配准结果 点云配准系列 准备 完整项目文件 参数设定及说明 数据 参数 代码 结果 Bunny hippo 算法缺点 参考及感谢 完 配准结果 偶尔效果比较好,白色是目标点云0°的Bunny,紫 ...

  9. 点云配准(二)— python open3d ICP方法

    上一节中介绍了点云配准的基础知识.本节将采用python open3d来进行点云配准. open3d安装和点云配准介绍,请参考: Open3d读写ply点云文件_Coding的叶子的博客-CSDN博客 ...

  10. python点云快速配准_分享一个V-SLAM中点云配准算法改进的方法

    近年来,随着自主导航的广泛应用,视觉同时定位与地图构建(Visual simultaneous localization and mapping, V-SLAM)通过自身携带的视觉传感器对周围环境进行 ...

最新文章

  1. Build SSCLI20 under VS2008 full Document (完全手册)
  2. python中导入模块用什么命令_Python导入模块的技巧
  3. CentOS 6.5升级Python后yum不可用的解决方案
  4. hbase源码系列(一)Balancer 负载均衡
  5. 探索Julia(part1)--Julia初识
  6. how is SAP OData count implemented in the backend
  7. c#和c++的opencv位图数据参数互换问题解决方法
  8. web前端学习之ruby标记和rt/rp标记
  9. JDK源码解析之 java.lang.Class
  10. excel原来是门编程语言-使用公式拼接字符串
  11. g2是一种编程语言吗_我写了一种编程语言。 这也是您可以的方式。
  12. UI设计线框图可编辑模板,临摹学习设计要点
  13. Matlab常用快捷键
  14. Linux第十一周微职位
  15. FoneDog Toolkit iOS Data Recovery如何从iPhone恢复已删除的数据
  16. Microsoft Word 2010 - 清除格式
  17. 基于java的宠物管理系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
  18. python中的元组介绍
  19. ratingbar 的使用
  20. 推荐一款 Linux 上比较漂亮的字体(转)

热门文章

  1. 服务发现框架 —————— 开开开山怪
  2. word输入公式快捷键
  3. IP5389+BM3451双向100瓦快充移动电源方案
  4. Excel POI 导入导出(支持大数据量快速导出)
  5. 手机上怎么打开md格式的文件_手机解压专家app下载
  6. 数学建模Latex简易模板
  7. python动态调用函数
  8. Python基础-名片管理
  9. mysql生成随机中文名_MySQL-随机中文名
  10. java处理环比增长率