Quaternion kinematics for the error-state Kalman filter论文阅读

文章目录

0. 参考文献

【1】Quaternion kinematics for the error-state Kalman filter

四元数基础参考之前的一片博文

1. 四元数的定义和属性

1.1 四元数的定义

1.1.1 四元数的表示方式

1.2 四元数的性质

1.2.1 加和

1.2.2 积

1.2.3 单位1

1.2.4 共轭

1.2.5 长度

1.2.6 逆

1.2.7 单位四元数

1.3 额外的性质

1.3.1 quaternion commutator

1.3.2 纯四元数的乘积

1.3.3 纯四元数的幂

1.3.4 纯四元数的指数

1.3.5 一般四元数的指数

1.3.6 单位四元数的对数

1.3.7 一般四元数的对数

1.3.8 四元数的幂的指数形式

2. 旋转和cross-relations

2.1 3维向量的旋转

如下图的旋转:
在这里插入图片描述
可以将x分解:
在这里插入图片描述
分解后各个成分的计算方法:
在这里插入图片描述
在旋转的过程中,和轴平行的部分不发生变化:
在这里插入图片描述
在垂直于旋转轴的平面上选择两个基向量:
在这里插入图片描述
在该平面内旋转 ϕ \phi ϕ角度后,有:
在这里插入图片描述
可以写做:
在这里插入图片描述
再加上平行的部分,可以得到旋转后的整体向量:
在这里插入图片描述
注意这里要区别上一篇博文中的一个公式:
在这里插入图片描述
仔细观察和计算可以发现两个式子其实是一样的,只不过表达的符号并不相同。

2.2 旋转群SO3

旋转变换会保持向量长度:
在这里插入图片描述
旋转变换会保持两线夹角:
在这里插入图片描述
旋转变换会保持向量间方向关系:
在这里插入图片描述
这一章就是要说明旋转群和四元数之间的关系?
首先有如下一个表:
在这里插入图片描述在这里插入图片描述

2.3 旋转群和旋转矩阵

将旋转变换写成一个矩阵形式:
在这里插入图片描述
旋转矩阵不改变向量长度,说明R是正交的:
在这里插入图片描述
进一步将正交性质写成 :
在这里插入图片描述
同时说明:
在这里插入图片描述
由于上面说过,R有保持向量方向的特性,因此有如下的关系,这个用来排除了反射这一类特殊矩阵:
在这里插入图片描述

2.3.1 指数映射

这里引出了李代数

2.3.2 大写的指数映射

在这里插入图片描述

这里是换一种表达方式
在这里插入图片描述

2.3.3 旋转矩阵和旋转向量:罗德里格斯公式

2.3.4 对数映射

又映射回去

2.3.5 旋转变换

在这里插入图片描述

2.4 旋转群和四元数

先做一个假设(后面会证明,其实上一篇博文对应的文献也有证明)
在这里插入图片描述
由于旋转保持了向量v的长度,并且根据四元数的性质,有:
在这里插入图片描述
为了满足上式成立,需要q的模等于1:
在这里插入图片描述
可以看到,这个条件,和前面在描述旋转矩阵时的条件,类似,就是下面这个:
在这里插入图片描述
下面证明四元数旋转能保持向量x乘方向,证明过程运用了两次1.3.1里面的性质
在这里插入图片描述

2.4.1

2.4.2 大写的指数映射

2.4.3 四元数和旋转向量

在这里插入图片描述

2.4.4 对数映射

2.4.5 旋转变换

在这里插入图片描述

2.4.6 The double cover of the manifold of SO3

2.5 旋转矩阵和四元数

在这里插入图片描述

2.6 组合多个旋转

在这里插入图片描述

2.7 球面线性插值(SLERP)

2.8 quaternion and isoclinic rotations:explaining the magic

3. Quaternion conventions. MY choice

4. Perturbations, derivatives and integrals

4.1 在SO3上的加法减法

4.2 the four possible derivative definitions

4.2.1 从向量空间到向量空间

这个是在向量空间上的求导数定义
在这里插入图片描述
一阶泰勒展开(或者看成欧拉积分):
在这里插入图片描述

4.2.2 从SO3到SO3

在这里插入图片描述

4.2.3 从向量空间到SO3

在这里插入图片描述

4.2.4 从SO3到向量空间

在这里插入图片描述

4.3 有用的旋转雅阁比

考虑要对一个向量 a \pmb{a} aaa进行旋转,旋转轴为 u \pmb{u} uuu,旋转角度 θ \theta θ,考虑三种不同形式的表达: θ = θ u \pmb{\theta}=\theta \pmb{u} θθθ=θuuu q = q { θ } \pmb{q=q\{\theta\}} q=q{θ}q=q{θ}q=q{θ} R = R { θ } \pmb{R=R\{\theta\}} R=R{θ}R=R{θ}R=R{θ}。我们关心的是旋转结果对于不同旋转度量的雅阁比

4.3.1 对于向量(vector)的雅阁比

在这里插入图片描述

4.3.2 对于四元数的雅阁比

在这里插入图片描述
在这里插入图片描述

4.3.3 SO3空间的右乘雅阁比

4.3.4 对于旋转向量的雅阁比

注意这一节和《slam十四讲》的内容进行对应,注意区别和联系
在这里插入图片描述
上面这一段和《十四讲》中下面这一段是一样的:
在这里插入图片描述

4.4 扰动,不确定性和噪声

4.4.1 local perturbations

在原先的四元数q上加一个微小的扰动量:
在这里插入图片描述
下面这一大段其实每太看懂,其中提到的泰勒展开,和《十四讲》里的扰动模型推导过程应该也有些关系
在这里插入图片描述

4.4.2 Global perturbations

完全看不懂要干啥

4.6 Time-integration of rotation rates

4.6.1 零阶积分

4.6.2 一阶积分

5. Error-state Kinematics for IMU-driven system

5.1 motivation

5.2 eskf 解释

我们考虑error因为它小,可以很容易线性化。那些较大的值就直接积分好了。

那些高频的IMU数据,被积分成状态,这些状态没考虑误差和模型的不确定性,因此,有较大的积累误差。这些误差会通过动态方程进行估计,然后去修正积分值。

5.3 连续时间的系统运动学

所有的定义变量:
在这里插入图片描述
在这里插入图片描述
注意:
(1)IMU直接读的角速度是local坐标系下的
(2)角度偏差也是local的

5.3.1 真实状态运动学

这里面包含了输入随机误差
真实状态运动学方程为:
在这里插入图片描述

5.3.2 名义状态运动学

这里面没有包含随机误差和扰动:
在这里插入图片描述

5.3.3 误差状态运动学

误差的状态变化方式
在这里插入图片描述
先看式(238a,238d,238e,238f),以(238a)为例展示推导过程:
根据上面的表,已知 p t = p + δ p p_t=p+\delta p pt=p+δp,两边求导得 p ˙ t = p ˙ + δ p ˙ \dot{p}_t=\dot{p}+\dot{\delta p} p˙t=p˙+δp˙,查上表,代入几个p的表达式,就可以得到 δ p ˙ \dot{\delta p} δp˙的表达式。

再看式(238b)线速度误差。我们要确定线速度误差的变化率 δ v ˙ \dot{\delta v} δv˙,从下面的关系开始:
在这里插入图片描述
在这里插入图片描述
然后开始处理 δ v ˙ t \dot{\delta v}_t δv˙t:
在这里插入图片描述
第一行式子展开了右侧,第二行把左侧展开了,左右对消,可以得到
在这里插入图片描述
删除高阶项:
在这里插入图片描述
将前面的式子带进来:
在这里插入图片描述
注意这里面的 a n a_n an项,这个是噪声,线加速度噪声和旋转无关,因此:
在这里插入图片描述
再看方向偏差变化率,我们要确定的是 δ θ ˙ \dot{\delta \theta} δθ˙,从下面的关系开始:
在这里插入图片描述
上面的分别真实状态,和名义状态。和线加速度一样,写成大信号和小信号的形式:
在这里插入图片描述
两个合起来就是:
在这里插入图片描述
进一步处理真实四元数的导数
在这里插入图片描述
移项并化简:
在这里插入图片描述
得到两个方程:
在这里插入图片描述
第一个不是很有用,主要看第二个,忽略高阶项后:
在这里插入图片描述
进一步化简:
在这里插入图片描述

5.4 离散时间的系统运动学

要将上面的微分方程离散化,有的可以直接离散,有的可能要用到数值积分方法。仅针对名义状态和误差状态进行离散化:

5.4.1 名义状态运动学

得到的离散运动方程如下,也可以用其他的积分方法?
在这里插入图片描述

5.4.2 误差状态运动学

需要回忆一下卡尔曼滤波
在这里插入图片描述

5.4.3 误差状态雅阁比和扰动

6. 融合其他的传感器信息

用IMU信息来预测,用其他的信息来矫正filter,进而观测到IMU的偏置误差,矫正过程如下:

  1. 通过滤波器矫正来观测到error-state
  2. 将观测到的error注入到名义状态
  3. 重置error-state

6.1 通过滤波器矫正来观测到error-state

假设有一个观测模型:
在这里插入图片描述
其中h是关于真实状态的非线性函数,v是一个高斯噪声
在这里插入图片描述

6.1.1 滤波器矫正的雅阁比计算

6.2 观测误差注入名义状态

在这里插入图片描述

6.3 ESKF 重置

6.3.1 重置操作中关于方向误差的雅阁比计算

  • 0
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
四元数运动学是错误状态卡尔曼滤波器中的一种重要方法。在四元数运动学中,我们使用四元数表示刚体的旋转姿态。错误状态卡尔曼滤波器是一种滤波算法,用于估计系统的状态,特别是旋转姿态的状态,并根据输入信号对估计的状态进行修正。 在错误状态卡尔曼滤波器中,我们通过使用四元数来表示旋转姿态的状态,并定义一个误差状态来描述实际姿态与估计姿态之间的差异。然后,我们使用卡尔曼滤波器的观测方程和状态方程,更新估计的状态,以减小误差状态。 四元数运动学提供了一种方便的方法来表示旋转姿态,它具有良好的数学特性和计算效率。通过使用四元数运动学,我们可以使用简洁的数学公式来描述旋转操作,避免了矩阵和欧拉角等其他旋转表示方法的复杂性。 在错误状态卡尔曼滤波器中,我们使用四元数运动学来更新估计的旋转姿态状态。通过将观测值与估计值之间的差异与卡尔曼增益相乘,我们可以得到一个修正项,用于更新估计的姿态状态。这种方式可以有效地融合观测数据和先验信息,提高对旋转姿态的估计精度。 总之,四元数运动学是错误状态卡尔曼滤波器中用于估计旋转姿态的一种重要方法。通过使用四元数来表示姿态状态,并结合卡尔曼滤波算法进行状态估计,我们可以实现更精确的姿态估计,并应用于各种导航和控制系统中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值