--- title: '从零手写VIO第三周 -基于优化的IMU与视觉信息融合' disqus: hackmd --- 从零手写VIO第三周 -基于优化的IMU与视觉信息融合 === ## Table of Contents [TOC] ## 作业1 ![](https://i.imgur.com/o00A0bF.png) ### lamda曲线 可以看出这种被g2o采用的LM下降策略,***确实没有出现zig-zag的现象***,一路都是增加会是减小lamda ![](https://i.imgur.com/lUmClkT.png) ### 替换残差&雅可比 #### 主要修改代码 * 边 计算残差 ```C++= virtual void ComputeResidual() override { Vec3 abc = verticies_[0]->Parameters(); // 估计的参数 // for problem 2 : y = abc(0)*x*x + abc(1)*x + abc(2) residual_(0) = ( abc(0) *x_ * x_ + abc(1) * x_ + abc(2) ) - y_; // 构建残差 } ``` * 边 计算雅可比 ```C++= virtual void ComputeJacobians() override { Eigen::Matrix<double, 1, 3> jaco_abc; // 误差为1维,状态量 3 个,所以是 1x3 的雅克比矩阵 jaco_abc << x_ * x_, x_, 1; jacobians_[0] = jaco_abc; } ``` #### 结果 * 若用原题,只用100个数据点,优化器只迭代两次就认为收敛了, 但是效果不佳 ![](https://i.imgur.com/IgXJs52.png) * 但若**提高数据点数量至1000个,则有较佳的结果** ![](https://i.imgur.com/oTQtpz4.png) ## 作业2 ![](https://i.imgur.com/TVXvXFL.png) #### f15 ![](https://i.imgur.com/NiA7VY2.jpg) #### g12 ![](https://i.imgur.com/8WgXiz5.jpg) ## 作业3 ![](https://i.imgur.com/HXzIp11.png) ![](https://i.imgur.com/AEpVeNB.png) ![](https://i.imgur.com/lNqEQ2x.jpg) ![](https://i.imgur.com/U9aFNgB.jpg) ###### tags: `VIO` `从零手写VIO`