这部分跟前面学旋转矩阵和李代数一样,还是很抽象的那种,有种学完了写代码还是无从下手的感觉,但是理论基础还是要过的,后面再补充。
(1)本节内容
1、最小二乘 2、非线性最小二乘 3、解决误差的两个高阶办法(高斯牛顿法和列文伯格法)
(2)需要的基础知识
暂时不好描述
(3)开发环境
编译平台:ubuntu16.04,
编译软件:IDE:Clion 编译器:Cmake 语言标准:C++11
(4)学习内容
对于位姿X和路标Y进行观测和预估,预估的过程是个最小化误差的问题即:ek=预估模型-实际测量,最小的问题近似的看作求非线性最小二乘法的问题
首先来看最小化二乘法本质是什么:https://www.zhihu.com/question/37031188/answer/411760828
个人理解最小化二乘法就是在有限取值内让 |模型预测值-样本值| 插值最小的一种方法,
假设模型函数为Ax,样本为b,则问题变为
该方程转换成矩阵形式后通常可以通过正规方程、QR 分解、乔姆斯基分解(Cholesky decomposition)和奇异值分解(SVD)等方法求解。上述的几种方法都是针对线性最小二乘法的求解 ,
可以参考:https://www.cnblogs.com/leexiaoming/p/7224781.html
对于非线性最小二乘法参考:https://www.cnblogs.com/leexiaoming/p/7257198.html
使用高斯牛顿法和Levenberg-Marquardt(LM)算法进行优化
总体参考https://wenku.baidu.com/view/74f5f9f4fad6195f312ba6e9.html