---
# System prepended metadata

title: 从零手写VIO第三周 -基于优化的IMU与视觉信息融合
tags: [从零手写VIO, VIO]

---

---
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`