slam 基本算法 --- 使用【Ceres】进行曲线拟合 (理论+实践)
注
之前整理过 slam 基本算法 — 分别使用 【高斯牛顿,g2o】进行曲线拟合 (理论+实践)
vins中使用的ceres进行非线性优化求解,所以这里再学习并整理一下 Ceres的使用,通过官方的曲线拟合的例子
Ceres可以解决以下形式的边界约束的鲁棒非线性最小二乘问题
min x 1 2 ∑ i ρ i ( ∥ f i ( x i 1 , … , x i k ) ∥ 2 ) s.t. l j ≤ x j ≤ u j \begin{array}{ll} \min _{\mathbf{x}} & \frac{1}{2} \sum_{i} \rho_{i}\left(\left\|f_{i}\left(x_{i_{1}}, \ldots, x_{i_{k}}\right)\right\|^{2}\right) \\ \text { s.t. } & l_{j} \leq x_{j} \leq u_{j} \end{array} minx s.t. 21∑iρi(∥fi(xi1,…,xik)∥2)lj≤xj≤uj
-
边界约束是指参数变量 x i x_i xi 有边界 l j l_{j} lj , u j u_{j} uj
-
鲁棒是指添加了 ρ i \rho_{i} ρi鲁棒核函数
-
在更多的情况下没有上面的边界约束
-
f i f_{i} f