欧拉角的求取与互补滤波器在姿态解算中的应用

合集下载

互补滤波算法姿态解算

互补滤波算法姿态解算

互补滤波算法姿态解算互补滤波算法是一种常用的姿态解算方法,广泛应用于飞行控制系统、惯性导航系统和姿态测量装置等领域。

该算法通过融合加速度计和陀螺仪的测量数据,实现对目标物体的姿态估计。

下面将详细介绍互补滤波算法的原理和应用。

一、互补滤波算法原理互补滤波算法主要基于两个观察结果:加速度计测量的重力矢量与陀螺仪测量的角速度。

加速度计测量的重力矢量可以提供一个参考方向,而陀螺仪测量的角速度可以提供连续更新的姿态角度信息。

互补滤波算法通过将这两个信息进行互补,实现对目标物体的姿态解算。

互补滤波算法的核心思想是将陀螺仪测量的角速度逐步累加,计算出目标物体的旋转角度,并将该角度作为姿态角。

由于陀螺仪的测量存在漂移等误差,随着时间的增加,角度积分的误差会越来越大。

为了避免这个问题,互补滤波算法通过加速度计测量的重力矢量进行补偿。

具体地,互补滤波算法使用一个权衡参数α(取值范围为0到1)来控制加速度计和陀螺仪的权重。

在每次更新姿态角时,新的姿态角为上一次的角度加上陀螺仪积分得到的角度乘以α,再加上加速度计测量的角度乘以1-α。

姿态角更新公式如下:θ(n) = α * (θ(n-1) + Δθ(n)) + (1-α) * θ_acc(n)其中,θ(n)为当前的姿态角,θ(n-1)为上一次的姿态角,Δθ(n)为陀螺仪积分得到的角度变化,θ_acc(n)为加速度计测量的角度。

二、互补滤波算法应用飞行器的姿态控制需要实时获取飞行器的姿态信息,并根据预设的姿态稳定控制侧滑、上升/下降等动作。

互补滤波算法可以通过融合加速度计和陀螺仪的测量数据,快速准确地获取飞行器的姿态信息。

在飞行器的姿态控制中,将陀螺仪测量的角速度作为连续更新的角度信息,用于控制飞行器的姿态稳定。

同时,通过加速度计测量的重力矢量可以提供一个参考方向,以补偿陀螺仪测量的角速度的误差。

1.初始化姿态角为加速度计测量的角度。

2.按照一定的时间间隔,读取加速度计和陀螺仪的测量数据。

欧拉角法在扑翼飞行器姿态解算中需要经过的旋转和平移

欧拉角法在扑翼飞行器姿态解算中需要经过的旋转和平移

欧拉角法在扑翼飞行器姿态解算中需
要经过的旋转和平移
欧拉角法是一种在三维空间中描述物体旋转的方法,它在扑翼飞行器姿态解算中起着至关重要的作用。

扑翼飞行器,作为一种特殊的飞行器,其姿态解算需要精确考虑飞行器的每一个细微动作,以确保其能够稳定飞行。

在扑翼飞行器的姿态解算中,欧拉角法需要经过的旋转主要包括绕X轴、Y轴和Z轴的旋转。

这些旋转是相互独立的,但在实际飞行中,它们会组合在一起,形成复杂的旋转动作。

绕X轴的旋转称为俯仰角,它决定了飞行器的前后倾斜程度;绕Y轴的旋转称为偏航角,它决定了飞行器的左右倾斜程度;绕Z轴的旋转称为滚动角,它决定了飞行器的左右翻滚程度。

除了旋转之外,平移也是扑翼飞行器姿态解算中需要考虑的因素。

平移是指飞行器在三维空间中的位置变化,通常由三个坐标轴上的位移来表示。

这些位移可以通过传感器数据来测量,并与旋转数据一起用于计算飞行器的当前姿态。

在欧拉角法中,旋转和平移是通过一系列的数学运算来实现的。

首先,需要获取飞行器的传感器数据,包括加速度计、陀螺仪等。

然后,通过这些数据计算出飞行器的旋转角度和平移距离。

最后,将这些数据结合起来,形成飞行器的完整姿态信息。

总之,欧拉角法在扑翼飞行器姿态解算中需要经过的旋转和平移是一个复杂而精细的过程。

通过精确的旋转和平移计算,可以确保扑翼飞行器在各种飞行状态下都能够保持稳定和准确的姿态,从而实现高效、安全的飞行。

imu数据处理公式

imu数据处理公式

IMU(惯性测量单元)数据处理通常包括数据预处理、姿态解算和融合算法等步骤。

以下是一些常用的数据处理公式和方法:
1. 数据预处理:
零偏校正:将加速度计和陀螺仪的偏移量进行修正,常用的方法包括零偏校正和尺度因子校正。

2. 姿态解算:
四元数法:将IMU的测量值进行积分,得到姿态四元数,通过四元数来计算姿态角。

欧拉角法:将IMU的测量值进行积分,得到欧拉角,通过欧拉角来计算姿态角。

卡尔曼滤波法:将IMU的测量值和加速度计数据融合,通过卡尔曼滤波算法来估计姿态角。

3. 融合算法:
互补滤波器:将加速度计和陀螺仪数据按照一定的权重进行融合,得到姿态角。

常用的权重方法包括一阶互补滤波和二阶互补滤波等。

卡尔曼滤波器:将加速度计和陀螺仪数据融合,通过卡尔曼滤波算法来估计姿态角。

卡尔曼滤波器可以处理噪声和误差,提高数据精度。

4. 速度和位置计算:
基于IMU的数据,可以通过积分和滤波算法计算速度和位置信息。

常用的方法包括基于加速度计的积分、基于陀螺仪的积分、融合算法等。

以上是一些常见的IMU数据处理公式和方法,具体的实现方式可能因应用场景、传感器型号和数据处理需求而有所不同。

姿态解算方法(1)_一种互补滤波方法

姿态解算方法(1)_一种互补滤波方法

姿态解算⽅法(1)_⼀种互补滤波⽅法姿态解算⽅法(1)_ ⼀种互补滤波⽅法本⽂内容主要是参考《An efficient orientation filter for inertial and inertial/magnetic sensor arrays 》此篇论⽂,由于其在普通飞控中的⼴泛运⽤,所以这⾥简单记录学习感受以期后续详细思索。

当然也是因为这篇⽐较易懂,正好可以锻炼⼀下我捉襟见肘的表述能⼒。

写到这⾥可能已经开始被骂了。

⼏个较好的博⽂链接如下:(1)(2)这是在博客园的第⼀篇博⽂,想来⾃⼰⼀直攒在电脑⾥的东西,不仅容易被弄没了,也没办法被⼤家纠错批评,故也就不在乎好坏把想到的都写下来。

⾔归正传,⾸先,需要了解下四元数的知识,这在维基(3)和(1)中都有很好的解释了,这⾥为了争取篇幅讲述算法核⼼部分就不再赘述。

(3)⾓加速度的事那么进⼊关于姿态确定的部分。

三轴陀螺仪模块可以测量传感器所在平⾯的⾓加速度,⼀般来说MPU6050模块返回的是三个⾓速度值。

如果初始姿态是已知的,时间的计量⼜是准确的,那么就可以积分出姿态了。

可惜的是⾓速度的测量准确度实在是不能积分出⼀个准确的位置值。

不过这⾥还是说⼀下这个积分过程。

sω=0ωxωyωzS E ˙q=12SEˆq⊗Sωsω为传感器获得的⾓速度值,再次提醒这⾥的值可能是不准确的。

SEˆq是表⽰传感器相对于地⾯坐标系的SO(3)变换四元数的估计,这⾥⽤于表⽰传感器姿态的估计。

⊗是四元数的⼀种运算⽅式,在上⽂的参考⽂献中可以找得到的。

差分的形式可以表⽰为:δS E qω,t=12SEˆqt−1⊗SωtSE qω,t=S E ˆqt−1+δSE qω,tΔtΔt是两次预测之间的时间差,准确的说是传感器上⼀次数据和这⼀次数据获取时间差。

其他的部分和连续的形式对应就不多说了。

基于场⽅向观测的姿态求解⾸先把姿态观测问题看做是⼀个求尽可能满⾜观测结果的姿态的优化问题。

EKF和互补滤波器在飞行姿态确定中的应用

EKF和互补滤波器在飞行姿态确定中的应用

2 1 陀螺数 学模 型 .
ME MS陀螺仪的漂 移误 差 由常值 漂移 、 时变 漂移 以及
随机 漂移 组成 。可采用 A l l n方 差分 析法 对其 进行分 析 。 a
从 图 1与 图 2可知 , 随着 电机 转速 增加 , 动频 率加 振
Aln 差是一种基 于时域的分 析方法 , l 方 a 能够容 易地对各种 类型误差源和整个 噪声统 计特性 进行 细致 的表征 与辨识 ,
0 O1
00 .0 0 1 0 2 0 3 O
声 等影响使以上姿态解算 方法 失效 , 了在各种 飞行 状态 为
OO .0 0
1 0
2 0
3 O
频率 / z H
频率 /z H () b 滤波后
() f rftrn b a e i eig t l
获得准确的姿态信息 , 可将上述 2 种姿态估计信息相融合 。
与实现的基 础上 , 行飞行器平台实验验证。研究结果表 明 2种算法均有效 , 进 且互 补滤波器相对经典 K — l a
m n滤波器更为简单 、 效。 a 有
关键词 :姿态测量 ; 展 K l a 扩 a n滤波器 ;互补滤波器 ; ln方差 m Al a 中图分类号 :V 4 . ;T 3 18 2 7 1 P 9 . 文献标 识码 :A 文章编号 :10 —7 7 2 1 ) 104 -4 0 0 98 ( 0 1 1- 190
at u e d tr n t n fr a h l o tr T e meh d l ge n i lme tt n o h t o ag r h a e w l t t d ee miai ei pe . h to oo is a d mp e n ai f t e w lo t ms r e l i o o c o i

欧拉角的求取与互补滤波器在姿态解算中的应用

欧拉角的求取与互补滤波器在姿态解算中的应用

欧拉角的求取与互补滤波器在姿态解算中的应用李天助(1)根据欧拉定理:刚体绕固定点的位移也町以是绕该点若干次有限转动的合成。

(2)在欧拉转动中,将参考坐标系(绝对坐标系,实验室参考系,是静止不动的,地理坐标系,也是就是正北正东和垂直地面,由于相对很小的四轴飞行器而言,地球可以看成是一个无限大的平面。

其原点是飞行器的旋转中心,也就是说E彳J : &次进行欧拉转动时:个旋转轴的交点就是其原点?如果是的话,那么这两个原点就是重合的了。

)转动三次得到載体坐标系(也称为机坐标系,其原点是飞行器載体的中心)。

图参考坐标系与我体坐标系的关系图如何通过三次绕载体坐标系三个轴来进行参考坐标系到载体坐标系的转换(此图中的旋转过程好似与绕分立的三个柚旋转的过程有点不一样)欧拉角确定的姿态矩阵是三次坐标转换矩阵的乘积。

(将英分解为三次绕以载体坐标轴的二个轴为旋转轴的旋转,总旋转的介成就是三次分立旋转矩阵的乘积。

通过阅读以卜的分析也就可以知道这是合理的,因为这是一个分步的过程,所以使用相乘。

)这些坐标转换矩阵都有如下标准形式:'10 ocos 8 0 一 C0S0 Sill# 0" &(©) = 0COS0 sin0 &(0)= W 0 1 0 & (以_S1I10 cos?/ 0 0 ■ 一sin© cos 。

SLI10 ■ 0 cos 8 ■ 0 ■ 0 1 ■公式⑴上而的三个旋转矩阵分别是绕x 、y 、z 轴旋转得到的,其代体的推算过程是通过投影和 来实现的。

(具体推导过程可以参见周建龙等人编写的《几何与代数》中P118页例3.19)。

显然,我们知道矩阵的乘法是不满足交换律的,所以轴旋转的H 宇不凤比如x->y->z, 与x->z->y 是完全不一样的。

通过以上的分析,就可以知道姿态矩阵还有三次转动的顺序有关。

为了避免万向节锁(Gimbal Lock ),选择介适的转动顾序是十分关键的。

自适应显式互补滤波在六旋翼飞行器中的应用

自适应显式互补滤波在六旋翼飞行器中的应用

自适应显式互补滤波在六旋翼飞行器中的应用刘洲;单修洋;谭芳【摘要】针对六旋翼飞行器的惯性传感器在测量过程中存在漂移的问题,提出了基于自适应显式互补滤波的姿态解算算法,并对该算法的原理和稳定性进行分析;搭建了六旋翼飞行器的实验测试装置,并进行机体的动、静态测试实验.在实验中,对自适应显式互补滤波算法、显式互补滤波算法以及陀螺仪传感器测量方法进行比较.实验结果表明:自适应显式互补滤波算法能够实现惯性传感器的解算姿态角误差收敛,且动态误差最小.%To solve the drift problem of inertial sensor of six-rotor aircraft during the measurement process,a attitude estimation algorithm based on adaptive explicit complementary filtering(AECF) is proposed.The principle and stability of the proposed algorithm are analyzed.A six-rotor aircraft experimental test device is set up to carry out static and dynamic experiment of the aircraft.Adaptive explicit complementary filtering algorithm,explicit complementary filtering algorithm and gyroscope sensor measurement are compared in the experiment.The experimental results show that the adaptive explicit complementary filtering algorithm can make the solution attitude error of sensor gradually converge and its dynamic error is the smallest.【期刊名称】《传感器与微系统》【年(卷),期】2017(036)005【总页数】4页(P157-160)【关键词】自适应显式互补滤波;六旋翼飞行器;姿态解算;惯性传感器;陀螺仪【作者】刘洲;单修洋;谭芳【作者单位】中南大学机电工程学院,湖南长沙410083;中南大学机电工程学院,湖南长沙410083;中南大学机电工程学院,湖南长沙410083【正文语种】中文【中图分类】V249六旋翼飞行器惯性测量单元IMU使用的是微机电系统(micro-electro-mechanical system,MEMS)类型传感器。

二阶互补滤波姿态求解器的设计

二阶互补滤波姿态求解器的设计

二阶互补滤波姿态求解器的设计南余荣;宛冬晴;潘帅;姚亚楠【摘要】为了降低小型四旋翼姿态解算的成本和提高姿态输出精度,采用了低成本MPU-9250作为IMU,设计了一种二阶互补滤波姿态求解器.二阶互补滤波算法所产生的计算量不大并且对处理芯片的性能要求不高,从而达到降低成本的目的.通过实际测试,以成品AHRS100作为航姿参考系统,得出姿态角度动态误差在3°以内.实验结果表明:所设计的姿态求解器能较精确地解算出四旋翼的姿态角度,满足了小型四旋翼对输出姿态精度的要求.%A second order complementary filter solver is designed in order to reduce the cost and improve the output precision of small quad-rotors in attitude calculation process.The Low-cost MPU-9250 is adopted as IMU in this paper.The second-order complementary filtering algorithm produces little computation and the performance requirement of the processing chip isn`t high.It will achieve the purpose of reducing cost.Through the practical test, using AHRS100 as attitude reference system, and the dynamic error of the attitude angl e is less than 3°.The experimental result show that the solver designed in this paper can calculate the attitude angle fairly accurately and meet the requirement of output precision of small quad-rotors.【期刊名称】《浙江工业大学学报》【年(卷),期】2017(045)004【总页数】5页(P416-420)【关键词】四旋翼;二阶互补滤波;姿态角度【作者】南余荣;宛冬晴;潘帅;姚亚楠【作者单位】浙江工业大学信息工程学院,浙江杭州 310023;浙江工业大学信息工程学院,浙江杭州 310023;浙江工业大学信息工程学院,浙江杭州 310023;浙江工业大学信息工程学院,浙江杭州 310023【正文语种】中文【中图分类】TP273随着科技的进步和时代的发展,无人机凭借自身特有的优势,在民用军事和农业中得到了广泛的应用[1],例如可以用无人机进行航拍摄影,电力巡检,新闻报告,喷洒农药,侦查敌情,还可以用无人机来送快递,在这些方面无人机有着人工所不具备的特有优势,无人机成为当下科技行业研究的热点.一直以来,在诸多研究问题中,飞行器的姿态解算问题都是研究的重点[2-3].在小型四旋翼姿态解算中一般采用低成本捷联惯性导航测量单元,主要由陀螺仪,磁力计和加速度计组成,陀螺仪具有很好的动态跟踪特性[4-5],在飞行器飞行过程中测得的角速度会比较准确,实际上单独用陀螺仪也能解算出四旋翼的姿态,但是由陀螺仪测量得到的积分角度会产生误差的累积,如果不加以补偿,长时间可能引起严重的偏差,所以笔者利用加速度计和磁力计对陀螺仪解算的角度进行误差补偿[6-7].计算四旋翼在三维空间的旋转有很多种等价的表示方法,常见的有方向余弦、四元数和欧拉角[8].欧拉角虽然简单易于表示和理解,但是由于其自身的姿态表示特点导致万向节死锁,不能全方位地解算出四旋翼的姿态方位,方向余弦法虽然能满足四旋翼全方位姿态解算的要求,但是需要的运算量太大[9-10],在采用低成本处理芯片的平台中,导致姿态不能实时输出.故笔者采用四元数来表示姿态变化,四元数有一些其他角位移表示方法所没有的优点如平滑插值,能和矩阵形式快速转换等[11-12].融合加速度计,陀螺仪和磁力计测得数据的方法有一阶互补滤波,二阶互补滤波和扩展卡尔曼滤波等[13],扩展卡尔曼算法虽然比较先进,解算出来的角度能很好地跟踪飞行器真实的角度,但其设计复杂,计算量大,在小型四旋翼中普遍使用的低成本惯性测量单元不满足其对IMU性能的要求[14].一阶互补滤波算法虽然设计简单,易于调试,只需调节一个参数,但解算精确度差.故笔者采用了二阶互补滤波算法,以STM32F103C8T6为CPU,IMU采用MPU-9250,这两个模块累计成本在30元左右,而卡尔曼滤波算法采用的CPU和IMU模块累计成本普遍在80~120元之间,加入PI环节补偿单独用陀螺仪测量所产生的误差,通过调节两个参数KP和Ki最终解算出了较精确的姿态[15-16],满足了小型低成本四旋翼飞行器求解姿态过程中对成本和精度的综合要求.对四旋翼进行姿态解算前首先要建立导航坐标系n系和机体坐标系b系,建立的导航坐标系坐标原点位于四旋翼的质心,xn轴指向北,yn指向东,zn指向地即东北地坐标系,三条轴之间都是俩俩垂直的,同理建立四旋翼的机体坐标系,机体坐标系和四旋翼固联,随着四旋翼的旋转而旋转,坐标系如图1所示.绕机体坐标系三条轴的任意旋转序列都可以确定四旋翼的方位,设横滚角α,俯仰角β,偏航角γ分别为绕xb轴,yb轴,zb轴旋转得到的角度值,一组角度值一共可表示12种不同的旋转方式.欧拉角与方向余弦矩阵之间的关系为四元数是一种高阶复数,能很方便地刻画飞行器绕任意轴的旋转,且计算量小.四元数q的表达式为其中四元数q和方向余弦矩阵之间的关系式为陀螺仪动态响应好,积分后可测倾角,但在解算姿态的过程中,会产生累积误差和零漂等,在低频段信号不好.磁力计和加速度在低频段表现优秀,但是瞬时特性很差,当四旋翼姿态剧烈变化时,不能满足四旋翼实时解算的要求.因此可以结合它们分别在高频段和低频段的优势,利用互补滤波原理对陀螺仪测得的姿态角度进行高通滤波,对磁力计和加速度计测得的姿态角度进行低通滤波,得到在高频段和低频段都较好的信号,滤波原理如图2所示.由图(2)可以进一步得到二阶互补滤波公式为式中:GH(s)=s2/(s2+Kps+Ki)为二阶高通滤波器;GL(s)=Kps+Ki/(s2+Kps+Ki)为二阶低通滤波器,GL(s)+GH(s)=1;wg为陀螺仪测量的角速度;为最终得到的姿态角度值;θa为将磁力计和加速度计测量值进行处理得到的角度值.选择适当的KP,Ki,利用式(4)即可得到较为精确的姿态数据.在解算过程中,传感器测得的原始数据是姿态角,因此先将姿态角转换为四元数,然后利用四元数进行姿态更新,最后还是要将四元数转换为姿态角.可求出四旋翼在初始时候的四元数,即在载体坐标系下,设加速度计测得的值为ab,磁力计测得的值为mb,将加速度和磁力计测得的值做归一化处理,方向不变,分别得到b和b,可将n系下的重力向量转到b系下,即总的误差向量e为式中:e1为加速度计测得的单位向量与从四元数那里获得的重力向量之间的误差向量;e2为磁力计测得的单位向量与从四元数那里得到的单位向量之间的误差向量.令δ=(Kp+Ki/s)·e,陀螺仪测得的角速度为wg,将δ与wg进行叠加得到修正后的角速度w,最后来更新四元数,得式中w=0+wxi+wyj+wzk,由式(8)可以得到四元数的迭代方程式为由式(9)可知:只需传入角速度在三个轴的分量和周期T即可求得下一周期的四元数值,将求得的四元数进行单位化,得到最终表示四旋翼姿态的欧拉角为详细的姿态解算过程,如图3所示.3.1 实验平台我们选用STM32F103C8T6为CPU,IMU采用MPU-9250,MPU-9250是一个QFN封装的复合芯片,它由两部分组成,一组是3轴加速度计和3轴陀螺仪,另一组则是AKM公司的AK896 3轴磁力计.采用AHRS100成品航姿系统作为参考系统进行对比,AHRS100在各种恶劣条件下均能精确解算出四旋翼的姿态.3.2 测试结果和分析将一阶互补滤波算法和二阶互补滤波算法的廉价IMU单元与AHRS100固定在四旋翼上并在实际场景下飞行,通过计算机串口同时读取3个测量单元的数据进行实时姿态解算,采样时间为60 s,以AHRS100成品航姿系统测得的姿态数据为参考标准进行MATLAB绘图.图4为一阶互补滤波姿态求解器、二阶互补滤波姿态求解器和参考航姿系统所测得的俯仰角输出对比情况,进一步利用MATLAB内置的计算工具,求出俯仰角误差,如图5所示,可以很明显看到大部分时间里一阶解算角度误差都是大于二阶解算角度误差,二阶解算角度误差第4 s和第6 s左右达到最大,接近2°.而一阶解算角度最大误差在第25 s达到了3.2°.图6为测得的横滚角输出对比情况,进一步绘制出横滚角误差(图7),可以很明显看到大部分时间里一阶解算角度误差都是大于二阶解算角度误差.在几个特殊的时间点由于飞行器姿态变化剧烈导致姿态求解角度和真实角度偏差较大,在第18 s左右二阶解算角度误差达到最大,达到2.3°.而一阶解算角度最大误差在第39 s左右达到了4.3°.图8为测得的偏航角输出对比情况,进一步绘制出偏航角误差,如图9所示,可以很明显看到大部分时间里一阶解算角度误差都是大于二阶解算角度误差.二阶解算角度误差大多在1.5°以内.而一阶解算角度误差在很多时刻都超过了1.5°,解算精度明显低于二阶解算精度.可以得到四旋翼在飞行过程中,无论是俯仰角,横滚角还是偏航角,一阶解算的精确度都是明显低于二阶解算的精确度.大多数时间内二阶解算俯仰角误差,横滚角误差和偏航角误差分别控制在2°,1.5°,1.5°以内,姿态角最大动态误差小于2.5°,满足小型低成本四旋翼飞行器对输出姿态精度的要求.针对小型四旋翼姿态解算这一问题进行了详细的分析,通过对比一阶互补滤波算法,卡尔曼滤波算法,二阶互补滤波算法最后设计了一种基于四元数的二阶互补滤波姿态求解器,并对解算的原理和流程做了详细介绍.以四旋翼飞行器为实验平台,通过实际飞行测试,对比二阶互补滤波姿态求解器和一阶互补滤波姿态求解器解算出的角度误差,得出了二阶解算精度明显高于一阶解算精度的结论,验证了笔者所设计的二阶互补滤波算法在提升输出姿态精度上的有效性.【相关文献】[1] 郭晓鸿,杨忠,陈喆,等.EKF和互补滤波在飞行姿态确定中的应用[J].传感器与微系统,2011,30(11):56-58.[2] 王立波.捷联惯导系统设计与数据处理技术研究[M].北京:科学出版社,2006.[3] 史智宁,韩波,徐玉,等.基于重力场自适应互补滤波的无人直升机水平姿态估计方法[J].传感技术学报,2009,22(7):993-996.[4] 方路平,高坤,潘清,等.基于陀螺仪的穿刺手术导航系统设计[J].浙江工业大学学报,2016,44(2):129-133.[5] 王宇,董辉,徐建明,等.一种新的智能小车控制策略[J].浙江工业大学学报,2012,40(2):217-221.[6] 胥芳,倪紫京,占红武.自平衡小车的模型分析与数据处理[J].浙江工业大学学报,2016,44(3):288-291.[7] 张荣辉,贾宏光,陈涛,等.基于四元数法的捷联惯性导航系统的姿态解算[J].光学精密工程.2008,16(10):1963-1970.[8] 张承岫,李铁鹰,王耀力.基于MPU6050和互补滤波的四旋翼飞控系统设计[J].传感技术学报,2016,29(7):1011-1015.[9] 蔡磊,牛小骥,张提升,等.MEMS惯导在四旋翼飞行器中导航性能的实验分析[J].传感技术学报,2016,29(5):711-715.[10] 彭孝东,张铁民,李继宇,等.基于传感器校正与融合的农用小型无人机姿态估计算法[J].自动化学报,2015,41(4):854-860.[11] 王延东,贾宏光.组合导航系统滤波器截断误差抑制方法[J].传感技术学报,2014,27(5):616-621.[12] 郑君里,杨为理,应启珩.信号与系统[M].北京:高等教育出版社,2000.[13] 文常保,高丽红,方吉善,等.基于改进型限幅平均滤波法的高精度称重系统研究[J].传感技术学报,2014,27(5):649-653.[14] 张洪涛.四旋翼微型飞行器位姿及控制策略的研究[D].哈尔滨:哈尔滨工业大学,2014.[15] 傅忠云,刘文波,孙金秋,等.自适应混合滤波算法在微型飞行器姿态估计中的应用[J].传感技术学报,2014,27(5):698-703.[16] 彭孝东,张铁民,李继宇,等.基于传感器校正与融合的农用小型无人机姿态估计算法[J].自动化学报,2015,41(4):854-860.。

基于互补滤波的飞行器姿态解算之欧阳育创编

基于互补滤波的飞行器姿态解算之欧阳育创编

姿态解算一、主线姿态暗示方法:矩阵暗示,轴角暗示,欧拉角暗示,四元数暗示。

惯性丈量单位IMU(Inertial Measurement Unit):MPU6050芯片,包含陀螺仪和加速度计,辨别丈量三轴加速度和三轴角速度。

注意,传感器所测数据是原始数据,包含了噪声,无法直接用于遨游翱翔器的姿态解算,因此需要对数据进行滤波。

滤波算法:非线性互补滤波算法,卡尔曼滤波算法,Mahony 互补滤波算法。

二、知识点弥补加速度计和陀螺仪加速度计:加速度计,可以丈量加速度,包含外力加速度和重力加速度,因此,当被测物体在静止或匀速运动(匀速直线运动)的时候,加速度计仅仅丈量的是重力加速度,而重力加速度与R坐标系(绝对坐标系)是固连的,通过这种关系,可以获得加速度计所在平面与空中的角度关系也就是横滚角和俯仰角。

把加速度传感器水平静止放在桌子上,它的Z轴输出的是1g的加速度。

因为它Z轴标的目的被重力向下拉出了一个形变。

可惜的是,加速度传感器不会区分重力加速度与外力加速度。

所以,当系统在三维空间做变速运动时,它的输出就不正确了,或者说它的输出不克不及标明物体的姿态和运动状态。

陀螺仪:陀螺仪丈量角速度。

陀螺仪模型如图1所示,陀螺仪的每个通道检测一个轴的旋转。

图1[引自网络]上图中,Rxz是R在XZ面上的投影,与Z轴的夹角为Axz。

Ryz是R在ZY面上的投影,与Z轴的夹角为Ayz。

陀螺仪就是丈量上面界说角度的变更率,换句话说,它会输出一个与上面这些角度变更率线性相关的值。

加速度计工作原理介绍(摘自网络)年夜大都加速度计可归为两类:数字和模拟。

数字加速度计可通过I2C,SPI或USART方法获取信息,而模拟加速度计的输出是一个在预定规模内的电压值,你需要用ADC(模拟量转数字量)模块将其转换为数字值。

不管使用什么类型的ADC模块,城市获得一个在一定规模内的数值。

例如一个10位ADC模块的输出值规模在01023间。

假设我们从10位ADC模块获得了以下的三个轴的数据:每个ADC模块都有一个参考电压,假设在我们的例子中,它是3.3V。

互补滤波器在四元数法姿态解算中的应用

互补滤波器在四元数法姿态解算中的应用
栽体指向上方。
航 坐标 系为 地 理 坐 标 系。坐标 系 变换 以 刚 体 定 点 转 动 为基 础 ,
载 体 坐标 系转 换 到 导 航 坐标 系的过 程 可 以 分 解 为 绕 三 个 轴 的
三 次旋 转 。
2 四元数姿态算 法
2 . 1 四元 数
四 元 数 是 最 简单 的超 复数 ,能 够 非 常 方 便 的表 示 坐标 系
出载 体 坐标 系相 对 于 导航 坐 标 系的旋 转 。
P x Q( p 0 + p 1 i + p 2 j + P 3 k ) x ( q o + q 1 i + q 2 j + q 3 k )

( p 0 q o - P 1 q l — P 2 q 2 - P 3 q 3 ) + ( p 0 q l + p l q o + p 2 q 3 - P 3 q 2 ) i
+ ( p 0 q 2 + p 2 q o + P 3 q 1 一 P l q 3 ) j + ( p 0 q 3 + p 3 q o + P 1 q 2 - P 2 q 1 ) k( 4 )
2 . 2 四元数 姿态 算法
四 元 数 算 法 的 实质 是 用 四元 数 运 算表 示 载体 坐 标 系 b向
导 航 坐标 系 n的 旋 转 。载 体 坐 标 系 由导航 平 台机体 轴确 定 , 导
( 1 ) 地 理 坐标 系: 地 理 坐 标 系 的 原 点 选 在 导 航 平 台 的 质 心. Z轴 沿 当地 参 考 椭球 的 法 线指 向 天 顶 , X 轴 在 当地 水 平 面 且 沿 当地 纬 度 指 向 东 . Y 轴 沿 当地 子 午 线指 向北 。 ( 2 ) 栽 体 坐标 系 : 对 于栽 体 而 言 , 原 点在 栽 体 质 心 , X 轴 指 向栽体右方 , Y 轴指 向 栽 体前 方 , 并在载体对称面 内, Z轴垂 直

基于改进互补滤波算法的姿态解算

基于改进互补滤波算法的姿态解算

基于改进互补滤波算法的姿态解算摘要:本文主要是将可穿戴设备分别佩戴于运动员不同的部位,对由三个传感器采集的数据进行融合处理,求解高山滑雪运动员的动作姿态角变化。

由于每种仪器都有自己的优缺点,通过调整加速度计、磁力计采样得到的姿态角和陀螺仪采样得到的姿态角之间的权重,通过改进的互补滤波算法进行数据融合,求解出最终的姿态角,姿态角包含横滚角、俯仰角、偏航角三个角度,可以为我国高山滑雪运动员训练提供参考。

关键字:互补滤波算法;姿态解算;数据融合;姿态角。

1引言可穿戴设备由加速度计、陀螺仪、磁力计组成,分别配戴于运动员的胸部、腰部、右大腿、左大腿、右足、左足6个部位,便可测得运动员这6个部位的三维九轴数据[1]。

各个传感器有着自己的优缺点,存在误差,利用比较合适的算法将多个传感器采集到的数据进行数据融合,是目前研究工作的重点[2]。

在目前的研究中,主要是采用陀螺仪为主体,对陀螺仪求解的姿态角“信任度”比较高[3]。

但是在求解过程中,陀螺仪在短时间内十分精准,但长期积分求解过程只出现积分累计误差,导致精度变差[4]。

在姿态解算的过程中,利用三个传感器之间的性质互补性,为了提高解算精度将数据进行融合,这也就成为姿态解算的研究的主要方向[5]。

2基于互补滤波算法的姿态解算通过加速度计求解横滚角、俯仰角,通过磁力计求解出偏航角,通过陀螺仪求解出横滚角、俯仰角、偏航角。

利用互补滤波算法将加速度计、磁力计、陀螺仪求解的姿态角进行数据融合,求解出最终的姿态角。

2.1利用加速度计得到横滚角与俯仰角当运动员处于静止时期,根据第二牛顿定律,运动员只受重力,加速度计测得的是重力加速度,设静止状态下加速度计测量到的加速度向量为,对做归一化处理,有。

是重力加速度向量,对做归一化处理,有,可得:(1)可得到横滚角与俯仰角:(2)可以求解出横滚角和俯仰角,为了方便区分和经陀螺仪得到的横滚角、俯仰角,将由加速度计计算得到的横滚角记作,将由加速度计计算得到的俯仰角记作。

mpu6050姿态解算与卡尔曼滤波(1)数学

mpu6050姿态解算与卡尔曼滤波(1)数学

一、mpu6050姿态解算与卡尔曼滤波的数学原理mpu6050是一款常用的惯性测量单元(IMU),其内部集成了三轴加速度计和三轴陀螺仪,可以用来获取物体的加速度和角速度信息。

在实际应用中,我们常常需要通过这些原始数据来解算物体的姿态,即确定物体的倾斜角和旋转角。

姿态解算的计算通常基于四元数或欧拉角。

在利用加速度计和陀螺仪数据进行姿态解算时,需要考虑到加速度计的重力分量和陀螺仪的漂移问题。

而卡尔曼滤波则是一种常用的状态估计方法,可以综合考虑多个传感器数据,减小测量误差。

二、mpu6050姿态解算的数学模型我们需要进行加速度计数据的预处理,将原始的加速度计数据转换成物体坐标系下的加速度值。

通过反正切函数计算出与地面平行的加速度的倾斜角。

接下来,我们可以利用陀螺仪数据积分得到姿态的旋转角速度,再根据时间积分得到姿态的旋转角度。

在这一过程中,陀螺仪存在着漂移问题,需要通过卡尔曼滤波进行修正。

在卡尔曼滤波中,我们需要建立状态方程和观测方程。

状态方程描述了系统的动态演化规律,观测方程描述了系统的输出与状态之间的关系。

通过不断的观测和修正,可以逐渐收敛到系统的真实状态,从而实现姿态的精确解算。

三、mpu6050姿态解算与卡尔曼滤波的数学实现在实际实现中,我们可以使用C语言或者MATLAB等工具进行数学模型的实现。

以C语言为例,我们可以利用内置的数学函数库对加速度计和陀螺仪的原始数据进行处理,然后通过数学计算得到姿态的角度。

在卡尔曼滤波的实现中,我们需要定义状态方程和观测方程,并利用矩阵运算等数学方法进行状态估计和修正。

四、mpu6050姿态解算与卡尔曼滤波的数学应用mpu6050姿态解算与卡尔曼滤波在机器人、航空航天、无人机等领域有着广泛的应用。

无人机需要准确地获取自身的姿态信息,才能实现稳定的飞行和精准的航向控制。

而卡尔曼滤波则可以在传感器数据受到干扰或者噪声时,提供更加可靠的姿态估计结果。

总结:mpu6050姿态解算与卡尔曼滤波涉及到了传感器数据处理、数学模型建立和状态估计等多个方面的知识。

互补滤波算法姿态解算

互补滤波算法姿态解算
(ex,ey,ez)T = (vx,vy,vz)T 叉乘(ax,ay,az)T
地磁场向量 可不可以采用和加速度计一样的修正方法来修正? 加速度计在静止时测量的是重力加速度(0,0,1)T ,是有大小和方向的; 同理,地磁计同样测量的是地球磁场的大小和方向,只不过这个方向不再是竖直向下 而是与x轴(或者y轴)呈一个角度,与z轴呈一个角度。记作(bx,by,bz)T ,这里我 们让x轴对准北边,所以by=0,即 (bx,0,bz)T 倘若我们知道bx和bz的精确值,那么我们就可以采用和加速度计一样的修正方法来)
23
01
q q q q 2
2
2
2
0
1
2
3
这样,四元数可以用方向余弦、欧拉角表示,同样,欧拉角也可以用 方向余弦和四元数表示。
用方向余弦表示四元数
对于小角度位移,四元数参数可以用表示为
q 0
1 2
1
(1c11c22c33) 2
q 1
1
4q
c c (
)
32
23
0
三、姿态表示方法
三、姿态表示方法
C 3.1 方向余弦矩阵 方向余弦矩阵用符号
n
b 表示,是一个3*3阶的矩阵,矩阵的列表示
载体坐标系中的单位矢量在参考坐标系中的投影。
三、姿态表示方法
C 3.1 方向余弦矩阵 方向余弦矩阵用符号
n
b 表示,是一个3*3阶的矩阵,矩阵的列表示
载体坐标系中的单位矢量在参考坐标系中的投影。
q 2
1
4q
c c (
)
13
31
0
q 3
1
4q
c c (
)
21
12

基于四元数互补滤波的无人机姿态解算

基于四元数互补滤波的无人机姿态解算

基于四元数互补滤波的无人机姿态解算本文提出了一种基于四元数互补滤波的无人机姿态解算方法。

该方法通过对四元数的互补滤波来对无人机的姿态进行估计,实现了对无人机运动状态的实时监测和控制。

同时,本文还对该方法进行了实验验证,结果表明该方法具有较高的精度和实用性。

关键词:四元数;互补滤波;无人机姿态解算;估计;监测一、引言随着无人机技术的飞速发展,无人机在军事、民用等领域的应用越来越广泛。

然而,无人机的飞行控制与稳定性问题一直是无人机技术的瓶颈之一。

其中,无人机姿态解算技术是实现无人机飞行控制的关键技术之一。

无人机姿态解算指的是通过传感器采集的数据,对无人机的姿态进行估计和推算,以实现对无人机运动状态的实时监测和控制。

传统的无人机姿态解算方法主要基于欧拉角和旋转矩阵等数学模型,但这些方法存在着欧拉角奇异性和旋转矩阵计算复杂等问题,导致无法满足实际应用需求。

因此,近年来,越来越多的研究者开始探索基于四元数的无人机姿态解算方法。

四元数是一种具有四个实数分量的数学对象,可以用来表示旋转、姿态等信息。

相比于欧拉角和旋转矩阵等传统数学模型,四元数具有计算简单、不存在奇异性等优点,因此在无人机姿态解算领域得到了广泛应用。

而互补滤波是一种常用的信号处理方法,可以对多个信号进行加权平均,从而得到更加准确的结果。

因此,本文提出了一种基于四元数互补滤波的无人机姿态解算方法,以解决传统方法存在的问题。

二、基于四元数互补滤波的无人机姿态解算方法1.四元数表示姿态四元数可以用来表示旋转、姿态等信息,其具有简单的计算方式和不存在奇异性等优点。

因此,本文采用四元数来表示无人机的姿态信息。

四元数可以表示为:q = a + bi + cj + dk其中,a、b、c、d为实数分量,i、j、k为三个虚数分量,满足: i = j = k = ijk = -1四元数可以表示旋转、姿态等信息,其中,a为实部,b、c、d为虚部,表示旋转轴和旋转角度。

【CN109674480A】一种基于改进互补滤波的人体运动姿态解算方法【专利】

【CN109674480A】一种基于改进互补滤波的人体运动姿态解算方法【专利】

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号 (43)申请公布日 (21)申请号 201910107785.5(22)申请日 2019.02.02(71)申请人 北京理工大学地址 100081 北京市海淀区中关村南大街5号(72)发明人 邓志红 严丹 尚克军 韩奋凯 王鹏宇 (74)专利代理机构 北京理工大学专利中心11120代理人 李爱英 仇蕾安(51)Int.Cl.A61B 5/11(2006.01)(54)发明名称一种基于改进互补滤波的人体运动姿态解算方法(57)摘要本发明公开一种基于改进互补滤波的人体运动姿态解算方法,1:分别建立陀螺仪和加速度计的量测模型,将MIMU固定在人体上,采集人体运动的加速度和角速率;2:利用MIMU所采集的角速率求解姿态四元数微分方程,获得人体先验姿态;3:将人体先验姿态代入加速度计的量测模型计算当前时刻加速度估计值,利用当前时刻加速度与所求得的加速度估计值计算出姿态误差角速率;4:判断此时人体运动状态,若静止,则直接使用姿态误差角速率对角速率进行补偿;若运动,则将姿态误差角速率经PI控制器处理后获得补偿信息,再对角速率进行补偿;5:利用补偿后的角速率更新姿态四元数微分方程,获得人体后验姿态,本发明能够高效地补偿角速率误差,提高解算精度。

权利要求书1页 说明书5页 附图1页CN 109674480 A 2019.04.26C N 109674480A1.一种基于改进互补滤波的人体运动姿态解算方法,其特征在于,包括以下步骤:步骤1:分别建立陀螺仪和加速度计的量测模型,将MIMU固定在人体上,采集人体运动的加速度和角速率;步骤2:利用MIMU所采集的角速率y G,t 求解姿态四元数微分方程,获得人体先验姿态步骤3:将人体先验姿态代入加速度计的量测模型计算当前时刻加速度估计值利用当前时刻加速度y A,t 与所求得的加速度估计值计算出姿态误差角速率e t ;步骤4:判断此时人体运动状态,如果处于静止状态,则直接使用姿态误差角速率e t 对角速率y G,t 进行补偿;如果处于运动状态,则将姿态误差角速率e t 经PI控制器的比例运算和积分运算后获得补偿信息,再对角速率y G,t 进行补偿;步骤5:利用补偿后的角速率更新姿态四元数微分方程,获得人体后验姿态2.如权利要求1所述的一种基于改进互补滤波的人体运动姿态解算方法,其特征在于,其中,T为MIMU中陀螺仪的采样周期,3.如权利要求1所述的一种基于改进互补滤波的人体运动姿态解算方法,其特征在于,步骤四中,利用y A,t 与之差的幅值判断当前人体是否处于静止状态。

mpu6050姿态解算原始数据

mpu6050姿态解算原始数据

Mpu6050姿态解算原始数据Mpu6050是一种六轴惯性测量单元(imu),可用于测量物体的姿态、加速度和角速度。

姿态解算是利用imu采集的原始数据,通过算法计算出物体的姿态信息,包括滚转角、俯仰角和偏航角。

在实际应用中,姿态解算可以用于飞行器、机器人、虚拟现实等领域。

Mpu6050姿态解算原始数据是实现姿态解算的基础,本文将介绍如何获取Mpu6050的原始数据,并简要说明姿态解算的算法原理。

一、Mpu6050原始数据获取1. 硬件连接Mpu6050可以通过i2c或spi接口与微控制器进行通信。

一般来说,通过i2c接口连接更为常见。

接线时需注意电源、地线、时钟和数据线的连接正确性。

2. 寄存器配置Mpu6050内部有多个寄存器,其中包括原始数据的存储寄存器和配置寄存器。

在读取原始数据之前,需要对寄存器进行相应的配置,包括选择量程、设置采样率、使能加速度计和陀螺仪等。

3. 数据读取完成寄存器配置后,就可以通过i2c或spi接口读取Mpu6050的原始数据。

包括加速度计的三轴加速度值和陀螺仪的三轴角速度值。

读取的数据为16位的有符号整数,需进行转换和处理才能得到具体的物理量值。

二、Mpu6050姿态解算算法1. 姿态解算算法原理Mpu6050姿态解算算法主要基于互补滤波原理。

通过将加速度计和陀螺仪的原始数据进行滤波和融合,得到较为稳定和准确的姿态信息。

具体而言,加速度计可用于测量物体的倾斜角度,但对于快速旋转的运动无法提供准确的角速度信息;而陀螺仪能够提供精确的角速度信息,但会受到积分漂移等影响。

结合两者的优势,可以得到更准确的姿态信息。

2. 算法实现姿态解算算法的实现一般有两种方式,一种是基于互补滤波的欧拉角解算,另一种是基于四元数的姿态解算。

前者简单易懂,适合入门者学习,但对于快速旋转的情况效果不佳;后者则更为复杂,但能够有效克服欧拉角解算的局限性。

三、Mpu6050姿态解算原始数据的应用1. 飞行器在飞行器的姿态控制中,姿态解算可以用于测量飞行器相对于水平面的姿态角,从而实现稳定飞行和精确操控。

陀螺仪姿态解算 c语言

陀螺仪姿态解算 c语言

陀螺仪姿态解算 c语言陀螺仪姿态解算通常涉及使用陀螺仪数据(通常是角速度数据)来估计或计算设备的当前姿态。

姿态通常表示为欧拉角(俯仰、偏航和滚动角)或四元数。

以下是一个简单的C语言示例,展示了如何使用陀螺仪的角速度数据来计算设备的姿态。

这个示例使用欧拉角(俯仰、偏航和滚动角)来表示姿态。

c复制代码#include<stdio.h>#include<math.h>// 定义时间步长,例如每10毫秒更新一次#define TIME_STEP 0.01// 陀螺仪数据结构体typedef struct {float gx; // x轴角速度(弧度/秒)float gy; // y轴角速度(弧度/秒)float gz; // z轴角速度(弧度/秒)} GyroData;// 姿态结构体typedef struct {float roll; // 滚动角(弧度)float pitch; // 俯仰角(弧度)float yaw; // 偏航角(弧度)} Attitude;// 姿态解算函数void attitudeUpdate(Attitude* attitude, const GyroData* gyroData) {// 使用角速度数据来更新姿态// 这里使用了简单的积分方法,实际应用中可能需要更复杂的算法以提高精度和稳定性attitude->roll += gyroData->gx * TIME_STEP;attitude->pitch += gyroData->gy * TIME_STEP;attitude->yaw += gyroData->gz * TIME_STEP;}int main() {// 初始化姿态和陀螺仪数据Attitude attitude = {0.0f, 0.0f, 0.0f};GyroData gyroData;// 模拟陀螺仪数据读取(这里只是示例数据,实际应用中需要从陀螺仪传感器读取数据)for (int i = 0; i < 100; i++) {gyroData.gx = 0.01f; // x轴角速度示例数据gyroData.gy = 0.02f; // y轴角速度示例数据gyroData.gz = 0.03f; // z轴角速度示例数据// 更新姿态attitudeUpdate(&attitude, &gyroData);// 打印姿态printf("Roll: %f, Pitch: %f, Yaw: %f\n", attitude.roll, attitude.pitch,attitude.yaw);}return0;}这个示例中的attitudeUpdate函数使用陀螺仪的角速度数据来更新设备的姿态。

互补滤波算法姿态解算

互补滤波算法姿态解算

互补滤波算法姿态解算在互补滤波算法中,陀螺仪测量的角速度用来估算物体的角度变化,而加速度计测量的重力向量用来估算物体的倾斜角。

具体的姿态解算过程如下:1.陀螺仪数据积分:陀螺仪输出的角速度可以表示物体在各个轴上的角度变化率。

通过对陀螺仪数据进行积分,可以得到物体在各个轴上的角度变化。

积分的结果是一个连续的角度变化量。

2.加速度计估算倾斜角:加速度计可以测量物体的三个轴上的加速度向量,其中包含了重力向量的信息。

通过将加速度计输出的加速度向量进行归一化,可以得到重力向量的估算值。

进而可以根据重力向量的估算值计算物体在三个轴上的倾斜角。

3.互补滤波:将陀螺仪测量的角度变化量和加速度计估算的倾斜角进行互补,得到最终的姿态估算值。

互补滤波的思想是将陀螺仪测量的角度变化量和加速度计估算的倾斜角按照一定的比例相加(或相减),以得到更加准确的姿态估算值。

互补滤波算法的核心思想是结合陀螺仪和加速度计的测量结果,利用它们的优点来消除彼此的缺点。

陀螺仪测量的角速度具有高频噪声和漂移误差,而加速度计只能提供倾斜角度且响应较慢。

通过将二者相结合,可以得到相对准确且响应较快的姿态估算结果。

互补滤波算法的参数设置对于姿态解算的准确性和响应速度至关重要。

一般来说,参数的选择是通过实验和调试得到的。

在选择参数的过程中,需要综合考虑姿态解算的准确性、响应速度和稳定性。

如果参数选择不合适,可能会导致姿态解算结果不准确或者出现不稳定的情况。

总结起来,互补滤波算法是一种常用的姿态解算算法,通过结合陀螺仪和加速度计的输出数据来估算物体的姿态。

它能够有效地解决姿态解算的问题,具有计算量小、算法简单等优点。

在应用中,需要选择合适的参数来得到准确且稳定的姿态解算结果。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

公式(5) 当然也有形如以下的表达方式:
公式(6) 当 dt 趋近于 0 时,由公式(6)可以得到旋转矩阵的导数: 其中:
k 上式中的������������ ,������������ ,������������ 分别为 IMU(惯性测量单元)的陀螺仪测得的载体坐标系下 的机体的 x,y,z 轴的角速度。比较短的时间内间隔读取陀螺仪的数据,通过上述公式就可以 实现方向余弦矩阵随时间的传递,然而,MEMS(MEMS, Micro-Electro-Mechanical System, 微机电系统)陀螺仪会发生温度漂移,同时积分去处有累积误差(积分运算的误差从哪里体 现出来?) 。如果不加以补偿,在短时间内就会积累很大的姿态误差,导致四轴飞行器控制 失效。所以必须采用一定的姿态解算算法,融合各种传感器的数据,进行误差补偿以实现精 确的姿态解算。 (3)基于互补滤波器的姿态求解器设计 陀螺仪动态响应好,但计算姿态时,会产生累积误差(积分体现在哪里,通过积分得到 欧拉角?) 。数字罗盘(也叫做电子罗盘或是三轴磁感传场感器) ,和加速度传感器测量姿态 没有累积误差,但动态响应较差。因些,它们在频域上特性互补,可以采用互补滤波器材融 合这三种传感器的数据, 提高测量精度和系统的动态性能。 也就是即不会产生积分上的累积 误差导致偏差太大, 也不会因为动态特性太差而不会丢失了实时的特性, 无法做到实时的控 制。 R— — 真实姿态方向余弦矩阵 ������ — — 表示互补滤波器计算输出的姿态方向余弦矩阵 ������0 — — 代表由加速度传感器和数字罗盘观测到的姿态方向余弦矩阵 ������������ — — 表示������0 的高频观测噪声,则������0 = R + ������������ (动态特性太差,就是高频噪声被保留了下来,导致曲线的不平滑,从信号与系统的分析角 度上来看,动态变化太大,也就是信号变化速度快,这就是信号与系统中的高频分量过多) ������������ — — 代表陀螺仪数据计算得到的姿态 ������������ — — 表示������������ 的低频累积误差,则������������ = R + ������������ (低频太差,也就是信号中的低频分量太多) 由上面的分析可以知道,要得到好的,精确度高的 R 信号,要滤除加速度计和数字罗盘 中的高频分量,还有就是陀螺仪上的低频分量。 取������������
欧拉角的求取与互补滤波器在姿态解算中的应用 李天助 (1)根据欧拉定理:刚体绕固定点的位移也可以是绕该点若干次有限转动的合成。 (2)在欧拉转动中,将参考坐标系(绝对坐标系,实验室参考系,是静止不动的,地理坐 标系,也是就是正北正东和垂直地面,由于相对很小的四轴飞行器而言,地球可以看成是一 个无限大的平面。 其原点是飞行器的旋转中心, 也就是说飞行器每次进行欧拉转动时三个旋 转轴的交点就是其原点?如果是的话,那么这两个原点就是重合的了。 )转动三次得到载体 坐标系(也称为机坐标系,其原点是飞行器载体的中心) 。
������ 2������

在大于������������ 的高频段内,陀螺仪对解算结果起主要作用;在小于������������ 低频段,数字罗盘和加速计 对解算的结果起主要作用。此时对公式(8)进行 Laplace 反变换可得其在时域中的表达式:
公式(9) 为了消除静态偏差,取
kP 的大小决定互补滤波器的截止频率,kI 的大小决定了消除静态误差的时间,通常 kI 的大 小为 kP 的 0.01~0.1 倍。 加速度传感器测量载体坐标系下重力加速度矢量 g 的方向, 以校正横滚和俯仰的姿态角; 数字罗盘测量在参考坐标系 (也就是绝对坐标系) 下的航向角, 以校正飞行器的偏航姿态角。 通过分析可以知道, 通过分解重力加速度矢量到那个载体坐标系的三个轴上, 是完全可以确 定翻滚和俯仰的, 但是偏航是没有办法确定的, 这是因为偏航实质上就是绕着绝对坐标系的 z 轴在旋转,这样的话,不管偏航如何,那个重力加速度矢量到机体坐标系上的分量大小是 不会有任何的改变的。所以,引入电子罗盘的关键作用就是在于其能通过感知地磁场,来确 认绝对坐标系,通过与载机坐标系的比较,自然可以轻松的知道飞行器的偏航角。 (现在感觉以上所讨论的种种其实都是为了从传感器上获取精确的欧拉角的值, 而方向余弦 变换矩阵, 主要的目的似乎研究的是载体坐标系与绝对坐标系之间的变换关系, 而其中含有
公式(1) 上面的三个旋转矩阵分别是绕 x、y、z 轴旋转得到的,其具体的推算过程是通过投影和 来实现的。 (具体推导过程可以参见周建龙等人编写的《几何与代数》中 P118 页例 3.19) 。 显然,我们知道矩阵的乘法是不满足交换律的, 所以轴旋转的顺序不同, 比如 x->y->z, 与 x->z->y 是完全不一样的。 通过以上的分析,就可以知道姿态矩阵还有三次转动的顺序有关。为了避免万向节锁 (Gimbal Lock) ,选择合适的转动顺序是十分关键的。具体如何实现可以参考路洋学长的个 人网站——巧匠的四轴飞行器教程部分(/919/) ,其中有一个视 频谈论到了此问题。 若按 z->y->x 顺序来转动的话,其最终的姿态矩阵显然就是:
图参考坐标系与载体坐标系的关系
图如何通过三次绕载体坐标系三个轴来进行参考坐标系到载体坐标系的转换 (此图中的旋转过程好似与绕分立的三个轴旋转的过程有点不一样) 欧拉角确定的姿态矩阵是三次坐标转换矩阵的乘积。 (将其分解为三次绕以载体坐标轴 的三个轴为旋转轴的旋转, 总旋转的合成就是三次分立旋转矩阵的乘积。 通过阅读以下的分 析也就可以知道这是合理的,因为这是一个分步的过程,所以使用相乘。 ) 这些坐标转换矩阵都有如下标准形式:
其中,向量 g 就是加速度传感器测量的重力加速度矢量。 飞行器的航向是定义在参考坐标系的 x-y 平面内的, 所以偏航误差������������ 近似为数字罗盘测 量的航向矢量与互补滤波器估计的航向矢量,投影到参考坐标系 x-y 平面形成的 2 个单位矢 量的叉乘 c,再转换到载体坐标系下的向量:
公式(3) (3)方向余弦矩阵随时间的传递 在时间 t 内,当 t 为极小值的时候,姿态角的变化量dφ、dϕ、dθ皆趋近于 0,将这三 个值代入公式(2)中,并通过sinθ ≈ θ,cosθ ≈ 1,可以将旋转矩阵简化:
公式(4) 其实这个矩阵不是公式(3)真正退化的结果,但其实本质上是一样的。如果二阶无穷 小量再进一步简化就可以得到:
公式(7) 互补滤波器的优点就在于它同时滤除了低频和高频的干扰,方便实现传感器数据融合。 由
可以得到
(这一过程是怎么来的,我也搞不清楚,应该是信号与系统很相关。 ) 将此式代入公式(7)当中,就可以得到
ห้องสมุดไป่ตู้
公式(8) 根据这一式子,很容易通过直接模拟框图,得到互补滤波器的模型:
C(s)如果取固定常数 k,则设计的低通滤波器和高能滤波器的截止频率������������ =
的关键量就是欧拉角, 欧拉角其实就包含在了方向余弦变换矩阵当中, 而从方向余弦矩阵中 求解得到欧拉角也是可以完成的。 ) 由于加速度传感器和数字罗盘的响应时间是不相同的 kP 和 kI,最终设计的互补滤波器 的姿态求解器的结构如图:
飞行器的偏航不会影响重力加速度矢量的方向, 而且横滚角和俯仰角也不会影响飞行器 的航向,所以,两路校正之间是解耦的,不会相互干扰,分为两路是合理的。 (说的就是姿 态求解器中的那两路。 ) 四旋翼飞行器大部分时间处于悬停、 匀速飞行阶段, 此时加速度传感器只会机体高频振 荡的干扰,而且在起飞、降落和加减速阶段,其加速度相对重力加速度较小,而且持续时间 很短,最终会被互补滤波器滤除(毛刺可能会产生的地方) 。因此可以将加速度传感器的数 据作为机体重力加速度的测量结果。互补滤波器(通过加速度计和数字罗盘,配合陀螺仪计 ������ 算出来的旋转姿态矩阵)估计的重力加速度矢量为旋转矩阵������������ 的第 3 行,其与加速度传感 器测量的重力加速度矢量的偏差,即为俯仰和横滚角误差,其值为两个矢量的叉乘。 (这话 说的是毛线意思?)
������ =
������ (������ ) ������ +������ (������ )
,������������ ������ = 1 − ������������ ������ =
������
������ +������ (������ )
,如果 C(s)具有全通特性(你怎
么知道它有全通特性呢?) 。������������ ������ 具有低通滤波特性,������������ ������ 具有高通滤波特性。 则两者进行互补就可以得到
其中,������������ 为陀螺仪测量的角速度矢量。将ω代入公式(6) ,就可以得到随时间传送的准 确的旋转矩阵,进而由公式(3)求得各个姿态角。如此一来,姿态解算就算是结束了。通 过以上分析, 发现些姿态解算方法并没有使用到四元数, 而只用到了方向余弦矩阵与欧拉角 之间的转换关系。比较的简单易懂。其过程就是大概可以概括为: 1. 通过方向余弦可以进行参考坐标系与机体坐标系之间的变换,而方向余弦矩阵中又可以 求解出欧拉角,而欧拉角就是控制函数的输入变量。 2. 通过互补滤波器,感觉上就是对陀螺仪进行滤波,因为从方向余弦旋转矩阵角度而言, 如果说陀螺仪测得的数据是准确的话,那其实问题就解决了,但是事实是残酷的,所以 互补滤波器,就是通过数字罗盘和加速度计来补偿陀螺仪测量是所会产生的累积误差。 而通过互补滤波器之后,把得到的,新的,经过修正过的陀螺仪的值(此时的值是准确 可信的)送到方向余弦转换矩阵中去求得欧拉角。这样问题就得以解决了。 (顺便再说一个,通过设计的互补滤波器来等到融合的式子,这一个过程感觉是超过所 学的知识范畴了。但可以知道,要想得到互补之后的陀螺仪的结果,就必须经过这一个 过程。 ) 接下来就可以讨论一下 PID 的值的问题,如果说上面的互补滤波器得到的是传感器测量 并计算得到的一个可靠的实时的飞行器的姿态的话,那么就可以通过遥控器来给出一个 目标的姿态。其实这个目标的姿态就会决定飞行器的飞行轨迹了。而如何更加快速地到 达目标姿态,这个就是在自动控制领域中经常使用到的 PID 控制方式了。达到响应快的 目的。而在智能车的控制过程中,PID 的作用就是使智能车通过快速地启动,灵敏的过 弯以及减速。 罗鸿飞学长:陀螺仪部分相当于一个积分器加上高通滤波器,加速度计就是个低通滤波 器,然后两个合起来。 但是加权的意思是你一共只有两个输入,一个是根据陀螺仪和上次状态估算出的值,一 个加速度计的值,你肯定相信它们的比重不一样,如果完全相信加速度计它的权重就是 1,陀螺仪的权重就是 0,反之也一样。实际上两个东西的权重由它们信号的质量决定, 所以两个都有权重。
相关文档
最新文档