一 VIO简介
VIO(Visual-Ineritial Odemetry)是以视觉和IMU融合的里程计。
IMU(Inertial Meaurement Unit),惯性测量单元
- 典型6轴IMU以较高频率(

讯享网 100Hz)返回被测量物体的角速度和加速度 - 受自身温度,零飘,振动等因素干扰,积分得到的平移和旋转容易漂移

视觉里程计Visual Odometry
- 以图像的形式记录数据,频率较低(15-60Hz)
- 通过图像特征点或像素推测相机运动
IMU与视觉历程计的优缺点如下:

可以看出视觉和IMU在定位方面各有优缺点,但他们的优缺点又是可以互补的:
- IMU适合计算短时间,快速运动
- 视觉适合计算长时间,慢速运动
同时可以利用视觉定位来估计IMU的零偏,减少IMU由零偏导致的发散和累积误差;反之,IMU可以为视觉提供快速运动时的定位。
融合方案分为松耦合和紧耦合:


紧耦合是直接使用图像特征和IMU的位置信息来尽心优化定位结果,而松耦合则融合视觉里程计以及IMU的结果来给出最优的定位结果。
主流落地的项目基本都是使用的紧耦合的融合方法,因为:
- 单凭(单目)视觉或则IMU都不具备估计Pose的能力:视觉存在尺度不确定性,IMU存在零偏导致漂移
- 松耦合中,视觉内部BA没有IMU的信息,在整体层面来看不是最优的
- 紧耦合可以一次性建模所有的运动和测量信息,更容易的达到最优
二 基础知识
2.1 三维刚体运动
首先是定义各个坐标系的名称:
- 世界坐标系 W;
- IMU坐标系 I;
- 相机坐标系 C;
坐标系之间的变换关系由一个SE(3)给出,如从I变换到W的变换矩阵记作:
;

其中
是一个3*3的旋转矩阵,而
则是3*1的平移向量。
右乘一个IMU坐标系下的(其次)坐标,就可以得到该点在世界坐标系下的坐标。

2.2 四元数
知乎上大神放在Github上对于四元数介绍,详细地说明了四元数怎么来的,还有各种动图来解释。
https://github.com/Krasjet/quaternion/tree/master/demo/slerp_cube
https://krasjet.github.io/quaternion/quaternion.pdf
四元数是表示旋转向量的另一种形式,可以用四个数来同时表达旋转轴和旋转角度。可以将旋转矩阵R用四元数q来描述。四元数有一个实部和三个虚部,一般会把虚部写在前面,记为:

或![q = [w ,x, y, z]](https://51itzy.com/uploads/202412/23/d8d6e00325d3a7fb.jpg)
其中第一个元素为实部,后面三个为虚部。实部是标量,而虚部为矢量,所以也可以记作
![q = [s, v] ^T](https://51itzy.com/uploads/202412/23/d8d6e00325d3a7fb.jpg)
同时类似于旋转矩阵的乘法,四元数同样也定义了乘法运算:
考虑某一个绕旋转轴为单位向量
旋转
的旋转运动,它对应的四元数q可以表示为

当旋转为微小量时,这时候的四元数的变化为:

那么四元数对于时间的导数就是

2.3 旋转矩阵求导
对于旋转矩阵R,他的角速度矩阵记作w,那么它的导数可以表示为

这个公式称为泊松公式(Possion‘s equation),其中
称为反对称矩阵算子:

同样也可以记作
或则![[w_ {\times}]](https://51itzy.com/uploads/202412/23/d8d6e00325d3a7fb.jpg)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122005.html