发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种基于四元数的姿态估计方法,其能提升姿态估计的精准性。
本发明的目的之二在于提供一种电子设备,其能提升姿态估计的精准性。
本发明的目的之三在于提供一种计算机可读存储介质,其能提升姿态估计的精准性。
本发明的目的之一采用如下技术方案实现:
一种基于四元数的姿态估计方法,包括如下步骤:
模型构建步骤:根据四元数进行卡尔曼滤波器构建,确定载体坐标系和导航坐标系,根据已确定的坐标系确定姿态矩阵;所述卡尔曼滤波器中采用陀螺仪的角度随机游走系数ARW对四元数的过程噪声进行建模,且对陀螺仪的零偏噪声进行建模;
数据获取步骤:获取磁强计和加速度计的观测量;
更新步骤:判断加速度计的观测量是否超限,如果加速度计的观测量未超限,则对卡尔曼滤波器进行加速度计的观测值更新;如果磁强计的观测量未超限,则对卡尔曼滤波器进行磁强计的观测值更新以得更新后的四元数;
结果输出步骤:将更新后的四元数进行归一化以及协方差阵对称化处理后作为最终的姿态信息,并根据最终姿态信息输出姿态估计的观测值。
进一步地,所述卡尔曼滤波器通过如下步骤构建得到:
步骤1:对于任意四 维向量q,有运算符Ξ(q):q=[q0 q1 q2 q3]T
步骤2:四元数卡尔曼滤波的状态为四元数q
k和陀螺零偏ε
k组合,也即是
且四元数关于角增量的状态转移矩阵为:
步骤3:定义四元数卡尔曼滤波的状态协方差更新方程以及观测噪声矩阵
分别为:
且
其中ARW为陀螺仪的角度随机游走系数,σ为陀螺仪的测量噪声标准差,τ为陀螺仪的测量噪声相关时间;R
k是与传感器直接相关的观测噪声矩阵,
是这两个矩阵的Kronecker积;在步骤3中,由于
步骤4:记传感器三轴单位化的观测矢量为
对应的在参考矢量在导航系的投影为
可以得到四元数卡尔曼滤波的乘性观测矩阵:
最终得到四元数卡尔曼滤波的量测更新如下:
进一步地,所述更新步骤具体为:
如果加速度计未超限,对卡尔曼滤波器进行加速度计观测值
更新;
如果磁强计未超限,对滤波器进行磁强计观测值
更新,进而从
中得到
根据公式:
计算得到
其中*表示四元数乘法,
是
的共轭四元数,
包括横滚角和俯仰角信息;
计算TRIAD算法,并忽略时间下标k,
进一步地,在所述更新步骤中,若GNSS接收机地速大于设定阈值,采用给出的航向角ψ作为观测值代替不稳定的磁场观测量,具体实现过程如下:
b
r=[v
E v
N 0]
T同样的将b
r代入TRIAD 算法中进行量测更新。
进一步地,还包括自适应步骤,所述自适应步骤具体如下:
根据新息计算公式计算四元数卡尔曼滤波器的新息;所述新息计算公式为:
若陀螺仪稳定性低,将不含有角度随机游走系数的过程噪声项投影到观测空间得到L
1,且
根据如下计算公式计算得到自适应系数ηk;
β=0.9→0.99
对自适应系数ηk做下界约束得到如下公式:
若陀螺仪稳定性较高,计算得到不包括传感器观测噪声系数ρ的观测噪声协方差阵L
1,
根据如下计算公式计算得到自适应系数ηk;
β=0.9→0.99
需要对自适应系数ηk做下界约束:
进一步地,所述数据获取步骤之后还包括传感器补偿步骤:采用在线卡尔曼滤波并结合误差模型实现对观测矢量和参考矢量的校准。
本发明的目的之二采用如下技术方案实现:
一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明目之一中任意一项所述的一种基于四元数的姿态估计方法。
本发明的目的之三采用如下技术方案实现:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明目的之一中任意一项所述的一种基于四元数的姿态估计方法。
相比现有技术,本发明的有益效果在于:
本发明的基于四元数的姿态估计方法,可以进行全姿态估计,不必对四元数进行线性化,且对载体初始姿态不敏感;且本发明不单融合了多种传感器的观测结果,而且考虑了陀螺工况时存在的零偏,并对零偏的噪声进行建模,提高了姿态估计精度、准度和鲁棒性。
具体实施方式
下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。
实施例一
如图1和图2所示,本实施例提供了一种基于四元数的姿态估计方法,其特征在于,包括如下步骤:
S101:根据四元数进行卡尔曼滤波器构建,确定载体坐标系和导航坐标系,根据已确定的坐标系确定姿态矩阵;所述卡尔曼滤波器中采用陀螺仪的角度随机游走系数ARW对四元数的过程噪声进行建模,且对陀螺仪的零偏噪声进行建模;采用一阶高斯马尔科夫过程对陀螺零偏的过程噪声进行建模。
四元数描述姿态有自身的缺点,其四个参数物理意义不明确,与欧拉角的三个参数并非一一对应关系,无法独立估计各个欧拉角。利用四元数进行姿态估计的常见做法是使用四元数扩展卡尔曼滤波(QuaternionExtensionKalmanFilter, QEKF),QEKF是将四元数与欧拉角的关系进行线性化,得到近似的一一对应关系,再用四元数扩展卡尔曼滤波进行估计,但这存在一些问题,如初始条件敏感、非线性状态下误差较大、若观测量类型较多,还要求解繁琐高维雅可比矩阵等问题。故而在本实施例中采用基于Clifford代数的四元数卡尔曼滤波 (Quaternion Kalman Filter,QKF),可以不必求解四元数线性化的雅可比矩阵,且对初始条件不敏感;从而使得避免出现线性化问题。而现有技术中会采用非线性的反三角函数构造观测量,由于卡尔曼滤波是最优线性估计,只能接受线性化的方法,相比于使用非线性方法的线性化近似,使用直接的线性方法建模是更优的。
所述卡尔曼滤波器通过如下步骤构建得到:
步骤1:对于任意四 维向量q,有运算符Ξ(q):q=[q0 q1 q2 q3]T
步骤2:四元数卡尔曼滤波的状态为四元数q
k和陀螺零偏ε
k组合,也即是
且四元数关于角增量的状态转移矩阵为:
步骤3:定义四元数卡尔曼滤波的状态协方差更新方程以及观测噪声矩阵
分别为:
且
其中ARW为陀螺仪的角度随机游走系数,σ为陀螺仪的测量噪声标准差,τ为陀螺仪的测量噪声相关时间;R
k是与传感器直接相关的观测噪声矩阵,
是这两个矩阵的Kronecker积;在步骤3中,经验上来说,消费级陀螺一般取1000s,战术级陀螺一般取3000s 以上,一般认为三个轴在这三个参数上的差别可以忽略。由于
步骤4:记传感器三轴单位化的观测矢量为
对应的在参考矢量在导航系的投影为
可以得到四元数卡尔曼滤波的乘性观测矩阵:
最终得到四元数卡尔曼滤波的量测更新如下:
S102:获取磁强计和加速度计的观测量;有关传感器原始观测量的改正问题,需要依照传感器误差模型对b,r进行改正,才可以构建
用作四元数卡尔曼滤波的估计,改正参数由在线卡尔曼滤波估计给出。
加速度计观测矢量与参考矢量,记以下矢量的单位矢量为
在步骤S102之后包括传感器补偿步骤:采用在线卡尔曼滤波并结合误差模型实现对观测矢量和参考矢量的校准。实现了在线补偿外界线性加速度干扰,实现在线校正磁强计附近的软磁干扰,实现在线补偿磁强计附近硬磁干扰。
在加速度计,磁强计实际定姿过程中,载体自身的运动状态,所处环境难免会干扰它们运行,使之输出的观测值含有较大误差。本实施例实现了一个能够在线估计这些干扰的滤波器,可以实时估计出外部环境的干扰,使得算法对来自环境有较强的鲁棒性。
为了将各项潜在误差考虑进来,需要对传感器进行校准,以及动态地补偿干扰.改正观测量的误差分为三部分工作:第一、
改正:使用S
k-1,h
k-1,r
m,k-1, r
a,k-1,结合误差模型对b
k,r
k进行改正,单位化后得到
此步骤在观测值预处理时完成;第二、q
k改正:各项被考虑的误差会引起一个失准角矢量φ,使用φ改正q
k,此步骤在整合滤波内完成;第三、S
k-1,h
k-1,r
m,k-1,r
a,k-1改正:使用在线补偿卡尔曼滤波估计δS
k,δh
k,δr
m,k,δr
a,k,然后迭代改正,此步骤在在线补偿卡尔曼滤波内完成。
S103:判断加速度计的观测量是否超限,如果加速度计的观测量未超限,则对卡尔曼滤波器进行加速度计的观测值更新;如果磁强计的观测量未超限,则对卡尔曼滤波器进行磁强计的观测值更新以得更新后的四元数;
所述步骤S103具体为:
如果加速度计未超限,对卡尔曼滤波器进行加速度计观测值
更新;
如果磁强计未超限,对滤波器进行磁强计观测值
更新,进而从
中得到
根据公式:
计算得到
其中*表示四元数乘法,
是
的共轭四元数,
包括横滚角和俯仰角信息;
计算TRIAD算法,并忽略时间下标k,
若GNSS接收机地速大于设定阈值,采用给出的航向角ψ作为观测值代替不稳定的磁场观测量,具体实现过程如下:
b
r=[v
E v
N 0]
T;同样的将b
r代入 TRIAD算法中进行量测更新。
如果磁强计被充分校准,磁场干扰得到良好补偿,可以直接使用磁场原始观测量,如果载体处于低速或者静止状态,为了提高横滚角和俯仰角的估计精度,有必要实施TRIAD算法对观测量进行重新构建。
在使用多个传感器进行姿态估计时,我们希望有条件地组合来自不同传感器的观测量,如在静止或低速条件下,加速度计对横滚角和俯仰角的测量准度,要比无磁场干扰下的磁强计高,若此时引入磁强计观测量会对横滚角和俯仰角的估计结果造成偏差,即使对磁强计观测量进行降权可以提升估计结果精度,这种偏差仍然存在。另外,过度降低磁强计观测量的权,会造成航向角估计精度下降,使得算法整体稳定性下降。此时我们只想利用磁强计得到的航向角。
与此同时,输入给QKF的观测量不是以欧拉角形式,而是参考矢量在传感器上的投影矢量,因此不能简单地将磁强计得到航向角输入QKF。这使得我们需要额外构建一种算法,能够将磁强计得到矢量中所包含的横滚角和俯仰角信息,替换成QKF一步预测结果所包含的横滚角和俯仰角信息,再输入QKF。本实施例使用TRIAD算法完成这一过程。
S104:将更新后的四元数进行归一化以及协方差阵对称化处理后作为最终的姿态信息,并根据最终姿态信息输出姿态估计的观测值。
在本实施例中还包括自适应步骤,所述自适应步骤具体如下:
根据新息计算公式计算四元数卡尔曼滤波器的新息;所述新息计算公式为:
若陀螺仪稳定性低,将不含有角度随机游走系数的过程噪声项投影到观测空间得到L
1,且
根据如下计算公式计算得到自适应系数ηk;
β=0.9→0.99
对自适应系数ηk做下界约束得到如下公式:
若陀螺仪稳定性较高,计算得到不包括传感器观测噪声系数ρ的观测噪声协方差阵L
1,
根据如下计算公式计算得到自适应系数ηk;
β=0.9→0.99
需要对自适应系数ηk做下界约束:
基于新息-协方差最小化准则的观测噪声自适应算法,应对观测噪声统计特性可能发生的变化;传感器在工作时,环境变化是随机的,如器件温度升高会导致传感器的热噪声变大;载体发生震动时,加速度计的观测噪声也会变大等。为了应对这样的环境变化,我们需要自适应地调整观测噪声,以获得更好的估计结果,提高了算法的鲁棒性。
在线补偿卡尔曼滤波,变量定义,vec(m)运算符,对矩阵m进行阵列展开:
在线补偿卡尔曼滤波的状态为:
Xδ=[φ vec(δS) δh δrm δra]T
分别是:φ,1×3:状态中所考虑的误差项引起的失准角
οvec(δS),1×9:按照列向量展开的S,3×3矩阵,此矩阵综合描述了磁强计安装角误差,线性比例因子,交轴偏差变化
οδh,1×3:磁强计零偏变化
οδrm,1×3:参考磁场可能发生的变化(载体附近的磁场干扰)
οδra,1×3:参考重力可能发生的变化(载体线性加速度)。
且在线卡尔曼滤波的时间更新步骤:
量测更新,设传感器观测量和参考了的差异为δ,则有加速度的差异为δa和磁强计的差异δm,将这两个量考虑为在线卡尔曼滤波的观测量,且接下来考虑的均不为单位化向量,而是传感器给出的观测量。
记当前一步预测四元数对应的投影矩阵:
在线补偿卡尔曼滤波的观测量是传感器补偿后的观测矢量减去参考矢量:
利用四元数卡尔曼滤波观测噪声的自适应系数构造在线卡尔曼滤波的观测噪声:
和
的设定,分别是滤波器设计的磁强计停止更新阈值Tm的加速度计停止更新阈值Ta有关,一般设3倍的阈值T即是标准差σ
δ;
最终得到量测更新实施:
反馈后的改正量Sk,hk,rm,k,ra,k将在k+1时刻改正自来传感器的原始观测量。
本实施例基于四元数的姿态估计方法有如下几个亮点:1、基于四元数卡尔曼滤波,可以进行全姿态估计,不必对四元数进行线性化,对载体初始姿态不敏感;2、融合了多种传感器的观测结果,提高了姿态估计精度、准度和鲁棒性; 3、分离了磁强计的航向角观测量,使之不会对横滚角和俯仰角的估计造成影响4、在线自适应观测噪声的变化,可以应对传感器工况变化造成的观测噪声变化,提升了算法的鲁棒性。
实施例二
实施例二公开了一种电子设备,该电子设备包括处理器、存储器以及程序,其中处理器和存储器均可采用一个或多个,程序被存储在存储器中,并且被配置成由处理器执行,处理器执行该程序时,实现实施例一的一种基于四元数的姿态估计方法。该电子设备可以是手机、电脑、平板电脑等等一系列的电子设备。
实施例三
实施例三公开了一种计算机可读存储介质,该存储介质用于存储程序,并且该程序被处理器执行时,实现实施例一的一种基于四元数的姿态估计方法。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器 (Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于内容更新通知装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。