[开源]超全ICP实现,g2o,ceres,G-N,SVD等

Posted chengwei0019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[开源]超全ICP实现,g2o,ceres,G-N,SVD等相关的知识,希望对你有一定的参考价值。

最近在看高博的《视觉SLAM十四讲》的第6章,就做了一些小测试,整理了一下各种ICP实现方式,包括高斯牛顿法求解,SVD求解,ceres求解,g2o求解,还包含了一些开源库的测试,如icp,ndt,sicp,ndt_cpu等方法;

代码已经上传到github,如需下载请戳这里:源码(记得给我点个Star哈,嘿嘿)

关于SVD的求解方法,可以参考我上一篇博客,这里就不展示了。

关于高斯牛顿法/ceres/g2o求解的方法,主要是扰动模型的求导,具体如下:

其中,x,y为两组最近邻点对,i为索引值;R,t为两组点云之间的旋转和平移;

将上述公式对t求导,

对R进行求导,这里使用扰动模型求解: 

 

则雅克比矩阵为

海森矩阵为 

求导出雅克比矩阵后,剩下的就直接套用第6章 非线性优化里的例子,写一下代码即可。

 测试:

输出:

以上是关于[开源]超全ICP实现,g2o,ceres,G-N,SVD等的主要内容,如果未能解决你的问题,请参考以下文章

[开源]超全ICP实现,g2o,ceres,G-N,SVD等

Ceres学习

graph slam tutorial :从推导到应用3(g2o+ceres实现)

graph slam tutorial : 从推导到应用1(g2o+ceres实现)

CMakeList.txt里添加OpenCV, Eigen, Ceres, G2O库

ubuntu上G2O库的安装