传感器数据融合及姿态估计总结

陀螺仪传感器建模与卡尔曼姿态解算 陀螺仪传感器建模与卡尔曼姿态解算 说到姿态解算,目前用到最多的应该是“六轴加速度陀螺仪传感器+卡尔曼滤波算法”。网上的代码和卡尔曼滤波算法的教程很多,但大多数都是分开的两块,很少有将其结合在一起的。 本篇博客重点解释陀螺仪加速度计传感器在姿态解算方面如何建立模型,以及如何编写相应的代码。 一.模型建立 对于角度计算,我们有如下公式: 其中 为陀螺仪测得的角速度 由于现实中陀螺仪存在漂移,所以对上式进行修正如下 其中Gyro为陀螺仪静态漂移 由此我们建立状态方程: 状态量: 测量量: 二.卡尔曼5 阅读详情


本文主要介绍汇总了利用陀螺仪、加速度计和磁力计进行数据融合并由此实现姿态估算的一些方法,主要包括传感器直接结算、陀螺仪积分、互补滤波、Mahony滤波和EKF方法,每一部分的内容都是笔者亲自推导并且利用MATLAB编写代码实现过的,可以保证一定的准确性。在最后面笔者也都会附上自己参考的一些比较好的文章或者博客地址供大家学习,用来对传感器姿态估计入门大致是够用了,更深入的研究可以去翻看一些比较好的论文。本文仅做个人学习记录及分享用途,如果错误请您不吝赐教。

超长篇警告!

 

一、准备工作

该部分内容用于进行一些基本内容的普及以及标准统一。过于简单的内容此处不再涉及,直接给出一些参考的博文。

姿态旋转理论基础

陀螺仪、加速度计、磁力计的传感器介绍

接下来是将标准进行统一方便后续理解和表达(主要参考全权老师的《多旋翼飞行器设计与控制》)。

  • 规定NED坐标系简称n系,然后机体坐标系表示为b系。
  • 绕 X轴 进行的滚转运动,称为Roll ,角度符号用 ϕ 来表示。
  • 绕 Y轴 进行的俯仰运动,称为Pitch ,角度符号用 θ 来表示。
  • 绕 Z轴 进行的偏航运动,称为Yaw ,角度符号用 ψ 来表示。
  • 由此,n系向b系的旋转矩阵 R n b R_n^b Rnb​表示为
    在这里插入图片描述
  • 四元数规定用 q 0 , q 1 , q 2 , q 3 q_0,q_1,q_2,q_3 q0​,q1​,q2​,q3​表示。

 

二、原始数据

本文的原始数据来源:Open source IMU and AHRS algorithms

当然最好还是采用自己的实际数据,我这里图省事就直接用现成的。注意最好还是用的实际的飞控数据,尽管自己用手控制得到的IMU数据也可以用来测试数据融合的算法,但是实际的飞控数据会有很多人手调不出来的抖动及震荡,更利于你对算法的理解及实践。

用MATLAB先把原始数据画出来。
在这里插入图片描述
此处图片较小可能有点看不太出来。放大来说,加速度计和磁力计的数据在曲线细节方面显得更“毛糙”,也就是说临近点附近会有很多的抖动及噪声。

加速度数据细节:
在这里插入图片描述
磁力计数据细节:
在这里插入图片描述

但是陀螺仪对比之下,虽然曲线乍一看貌似有很多抖动的地方,因为陀螺仪还是比较灵敏的。但是你细看这些曲线的时候会发现陀螺仪的输出曲线还是比较平滑的,临近点附近都是很自然的过渡,对比加速度计和磁力计来说噪音会小很多。

在这里插入图片描述

此处我们先不展开细说,只需简单了解到陀螺仪和加速度计、磁力计的一个重要区别在于:

  • 加速度计和磁力计的数据是足够准确的,但是缺点在于容易受到干扰,数据噪声较大;
  • 陀螺仪陀螺仪基本不受外界干扰,并且对于线性加速度(振动)不敏感。

 

三、传感器直接估算姿态

由此我们能不能直接使用传感器的信息来估算姿态呢?答案当然是可以的。主要分为两种方法:(1)加速度计估算Roll和Pitch角,磁力计估算Yaw角;(2)陀螺仪积分得到欧拉角。

以下均假定传感器已经固定在机体上,并且X、Y、Z轴与机体的X、Y、Z轴完全对齐。

3.1 加速度计和磁力计解算姿态角

3.1.1 加速度计解算Roll和Pitch

在机体初始保持水平静止状态时,我们可以认为加速度计测得的加速度与重力加速度保持一致,即 a = g = ( 0 , 0 , 1 ) T a=g=(0,0,1)^T a=g=(0,0,1)T。假定机体在旋转过程中机体不出现剧烈运动的情况(加速度不发生剧烈变化),那么实际上在经过旋转 R n b R_n^b Rnb​之后得到的加速度计数据满足
a = R n b ∗ g a=R_n^b*g a=Rnb​∗g

R n b R_n^b Rnb​的形式在之前已经给出了,由此我们推算可知,最后得到的测量值 a a a实际上就是 R n b R_n^b Rnb​的第三列,即
a = [ a x , a y , a z ] T = [ − s i n θ , s i n ϕ c o s θ , c o s ϕ c o s θ ] T a=[a_x, a_y, a_z]^T=[-sinθ, sinϕcosθ, cosϕcosθ]^T a=[ax​,ay​,az​]T=[−sinθ,sinϕcosθ,cosϕcosθ]T

又由于 R n b = R ( − ϕ , − θ , − ψ ) R_n^b=R(-ϕ,-θ,-ψ) Rnb​=R(−ϕ,−θ,−ψ),那么可以得知Roll和Pitch的角度为
ϕ = a r c s i n ( a x ) ϕ=arcsin(a_x) ϕ=arcsin(ax​) θ = − a r c t a n ( a y a z ) θ=-arctan(\frac{ay}{az}) θ=−arctan(azay​)

3.1.2 磁力计估算Yaw角

通过加速度计我们解算得到了Roll角和Pitch角,剩余的Yaw角则是通过磁力计数据来进行解算。但是区别在于重力加速度在地球表面任何位置的方向始终都是不变的,因此可以直接从n系转换到b系中,但是地磁场方向和大小并非固定不变。

由于磁力计时固定在机体上的,此时测得的数据是以机体坐标系为基表示的,因此首先需要使用 R b n R_b^n Rbn​转换到n系下得到地理坐标的磁力向量,然后在用 R n b R_n^b Rnb​转换到b系得到最终值。由于此处笔者也尚未完全搞明白,就先把推导的公式放在这里,公式也已经验证过,大家直接使用即可。

当地磁坐标m系和机体坐标b系重合的时候,磁力计的输出假定为 M m = [ M N , 0 , M D ] T M^m=[M_N, 0, M_D]^T Mm=[MN​,0,MD​]T,在b系下磁力计的输出为 M b = [ M x b , M y b , M z b ] M^b=[M^b_x, M^b_y, M^b_z] Mb=[Mxb​,Myb​,Mzb​],由此有如下关系:
M b = R n b ∗ M m M^b=R_n^b*M^m Mb=Rnb​∗Mm ( M x b M y b M z b ) = ( M N c o s θ c o s ψ − M D s i n θ ( s i n ϕ s i n θ c o s ψ − c o s ϕ s i n ψ ) M N + s i n ϕ c o s θ M D ( c o s ϕ s i n θ c o s ψ + s i n ϕ s i n ψ ) M N + c o s ϕ c o s θ M D ) \begin{pmatrix} M^b_x\\M^b_y\\M^b_z \\ \end{pmatrix}=\begin{pmatrix} M_Ncosθcosψ-M_Dsinθ \\ (sinϕsinθcosψ-cosϕsinψ)M_N+sinϕcosθM_D \\ (cosϕsinθcosψ+sinϕsinψ)M_N+cosϕcosθM_D \end{pmatrix} ⎝⎛​Mxb​Myb​Mzb​​⎠⎞​=⎝⎛​MN​cosθcosψ−MD​sinθ(sinϕsinθcosψ−cosϕsinψ)MN​+sinϕcosθMD​(cosϕsinθcosψ+sinϕsinψ)MN​+cosϕcosθMD​​⎠⎞​

根据上述方程解算出以下内容:
M N c o s ψ = M x b c o s θ + M y b s i n θ s i n ψ + M z b c o s ϕ s i n θ M_Ncosψ=M^b_xcosθ+M^b_ysinθsinψ+M^b_zcosϕsinθ MN​cosψ=Mxb​cosθ+Myb​sinθsinψ+Mzb​cosϕsinθ − M N s i n ψ = M y b c o s ϕ − M z b s i n ϕ -M_Nsinψ=M^b_ycosϕ-M^b_zsinϕ −MN​sinψ=Myb​cosϕ−Mzb​sinϕ

最后可以得到:
ψ = − a r c t a n M y b c o s ϕ − M z b s i n ϕ M x b c o s θ + M y b s i n θ s i n ψ + M z b c o s ϕ s i n θ ψ=-arctan\frac{M^b_ycosϕ-M^b_zsinϕ}{M^b_xcosθ+M^b_ysinθsinψ+M^b_zcosϕsinθ} ψ=−arctanMxb​cosθ+Myb​sinθsinψ+Mzb​cosϕsinθMyb​cosϕ−Mzb​sinϕ​

根据原始数据编写MATLAB代码解算出欧拉角表示如下,可以看到估算曲线还是包含非常多的噪声的,整条曲线看上去也很“毛躁”,非常符合加速度计和磁力计自身噪音比较多的特征。除此之外,在5S~8S左右的时间Pitch和Yaw角跳变非常剧烈,此时正好是y轴和z轴加速度和磁力均发生剧烈变化的时候。
在这里插入图片描述

3.2 陀螺仪积分

之前的推算似乎表明光使用加速度计和磁力计似乎就能够完全得到欧拉角,但是最后解算得到的曲线告诉我们这种结果不太可靠。因此我们此处使用9轴IMU中的另一个传感器进行姿态的估计,陀螺仪的一个巨大优势就是它的精度相比于加速度计和磁力计要高很多,并且对于外界干扰不太敏感。

首先明确一点,陀螺仪输出的是角速度值,那么稍微回顾一下积分的知识,我们就可以确定如下的公式内容:
α ( t ) = α 0 + ∫ w ( t ) d t α(t)=α_0+\int{w(t)}dt α(t)=α0​+∫w(t)dt

其中, α ( t ) α(t) α(t)是当前时刻的角度, α 0 α_0 α0​是初始角度, w ( t ) w(t) w(t)则是当前角速度。当然,由于整个过程是离散的,因此,实际的当前t时刻的角度表示为,前一t-1时刻的角度加上此次陀螺仪测得的角速度乘以微小时间段。
α t = α t − 1 + w ∗ d t α_t=α_{t-1}+w*dt αt​=αt−1​+w∗dt

对于Roll、Pitch和Yaw角就可以通过陀螺仪测量值的积分得到,当然前提是对初始角度已知。
在这里插入图片描述

可以看到曲线相比于直接使用加速度和磁力计进行估计要来的平滑许多,并且在5s~8s时间内没有那么剧烈的变化,那么是否意味着我们可以直接使用陀螺仪而不需要其他传感器了呢?当然不是,如果仔细观察,你会发现陀螺仪积分得到的角度随着时间在不断地漂移,在到达最后时间段的时候整条曲线已经具备了非常大的误差。

这就是陀螺仪其中的一个缺陷,陀螺仪获取的数据实际上都带有一定的误差,使得在积分的过程中得到的角度不断飘移,随着时间的累加整个积分误差会变得非常大。

3.3 传感器总结

这里我们已经能够非常明显地看出陀螺仪、加速度计和磁力计这三种传感器的特点。依次来说一下。

首先是加速度计和磁力计,这两个传感器的显著特点就是足够准确,并且不具备任何的漂移误差,可以直接用于对姿态进行测量估计,但是缺点也十分明显,也就是自身的噪音非常大,只要一受到扰动,如机体的震动或者外界其他干扰因素,测量值就会发生剧烈变化,这一点对于磁力计来说更为明显,因此实际工程中会有很多人选择放弃磁力计,即不对Yaw角进行估计,直接开环控制,而重点处理Roll和Pitch这两个姿态角,对于Yaw角就进行速率控制即可。此外,这两个传感器需要在机体保持静止或者稳定运动过程中才能保持测量结果的精准。

然后是陀螺仪,该传感器是IMU中最重要的传感器,因此精度相比于其余两种会更高一些,此外,其对于一些干扰不会太敏感,也就是说能够较小程度地受到外界干扰。但是传感器自身存在一定的漂移,使得其使用时间越长,得到的误差也就会越大。此外,使用陀螺仪数据进行积分的时候必须得知道其初始姿态信息。

 

那么面对这两种类型的传感器,一种噪声较大,但是不存在漂移,另一种基本没有噪声,但是存在漂移,有没有办法能够将这两种结合起来估计机体的姿态呢?这就是我们接下来探讨的数据融合。

 

四、线性互补滤波

将2种传感器的数据进行融合,一种简单的方法就是将各个传感器的数据进行加权,也就是给每一个传感器数据分配一个确信度 k k k,当 k k k值较大的时候,表明我们更相信这个传感器的数据,反之,表示我们对于这个传感器数据的确信度较低。

由于我们此次只有2种传感器,因此可以得到一个最基本的线性互补滤波公式
α t + 1 = ( 1 − k ) ∗ ( α t + w t ∗ d t ) + k ∗ α m e a s u r e α_{t+1}=(1-k)*(α_{t}+w_t*dt)+k*α_{measure} αt+1​=(1−k)∗(αt​+wt​∗dt)+k∗αmeasure​

等式右边的左半部分的 α t + w t ∗ d t α_{t}+w_t*dt αt​+wt​∗dt即是当前时刻陀螺仪积分得到的角度值,右半部分的α_{measure}则是通过加速度计或磁力计数据解算出来的角度值,由于此时仅有2种传感器,因此 k k k表示对于加速度计/磁力计测量得到的值的确信度,那么 1 − k 1-k 1−k则表示对于陀螺仪积分得到的角度的确信度。

当然,如果有多个传感器,那么等式即可变为 α t + 1 = a ∗ α 1 + b ∗ α 2 + c ∗ α 3 + . . . + n ∗ α n α_{t+1}=a*α_{1}+b*α_{2}+c*α_{3}+...+n*α_{n} αt+1​=a∗α1​+b∗α2​+c∗α3​+...+n∗αn​,其中 a + b + c + . . . + n = 1 a+b+c+...+n=1 a+b+c+...+n=1。

此处我们将 k = 0.1 k=0.1 k=0.1,也就是说我们相信陀螺仪的积分结果,由此得到如下曲线
在这里插入图片描述
对比直接采用传感器的解算方式,线性互补滤波方式在结果上相比于加速度计和磁力计解算结果更为平滑,相比于陀螺仪积分则解决了漂移的问题。但是我们也可以看到在5~8s的时候仍然受到了非常大的干扰,应该是更多地来自于加速度计和磁力计数据方面的问题。尽管通过调节k值大小能够在一定程度上缓解这个问题,但是如果要真正解决这个问题,仍然需要更好的互补滤波算法。

线性滤波算法是在互补滤波中最为基础的,更深入的还有自适应互补滤波,基于模糊方法的互补滤波等等,这些算法会根据不同的情况,自动调节 k k k值的大小,来获得更好的姿态解算结果,更为详细的研究请大家再去细看一些论文,此处便不再不多展开。

 

五、Mahony

Mahony算法实际上是一种非线性互补滤波,其应该是在飞控姿态估算领域内部网上流传最多的一种方法了。在开始之前希望你对于姿态旋转、矩阵运算以及一阶龙格库塔法具备一定的了解。

它的基本思想如下:首先将加速度计和磁力计的的测量值与根据数学模型推导出来的理论值对比求得误差,然后利用这个误差进行PI运算更新到陀螺仪的数据上,最后利用一阶龙格库塔法对四元数进行更新。具体过程如下:

5.1 加速度计误差计算

该过程较为简单,跟之前通过加速度计数据推算Roll和Pitch角类似,首先已知在n系下重力加速度方向和大小基本固定不变,保持为 g = [ 0 , 0 , 1 ] T g=[0,0,1]^T g=[0,0,1]T,由n系向b系旋转的四元数矩阵 C n b C_n^b Cnb​表示为
C n b = ( 1 − 2 ( q 2 2 + q 3 2 ) 2 ( q 1 q 2 + q 0 q 3 ) 2 ( q 1 q 3 − q 0 q 2 ) 2 ( q 1 q 2 − q 0 q 3 ) 1 − 2 ( q 1 2 + q 3 2 ) 2 ( q 2 q 3 + q 0 q 1 ) 2 ( q 1 q 3 + q 0 q 2 ) 2 ( q 2 q 3 − q 0 q 1 ) 1 − 2 ( q 1 2 + q 2 2 ) ) C_n^b=\begin{pmatrix}1-2(q_2^2+q_3^2)\quad\quad 2(q_1q_2+q_0q_3)\quad\quad 2(q_1q_3-q_0q_2)\\2(q_1q_2-q_0q_3)\quad\quad 1-2(q_1^2+q_3^2)\quad\quad 2(q_2q_3+q_0q_1)\\2(q_1q_3+q_0q_2)\quad\quad 2(q_2q_3-q_0q_1)\quad\quad 1-2(q_1^2+q_2^2)\\ \end{pmatrix} Cnb​=⎝⎛​1−2(q22​+q32​)2(q1​q2​+q0​q3​)2(q1​q3​−q0​q2​)2(q1​q2​−q0​q3​)1−2(q12​+q32​)2(q2​q3​+q0​q1​)2(q1​q3​+q0​q2​)2(q2​q3​−q0​q1​)1−2(q12​+q22​)​⎠⎞​

那么由此推算得知在当前旋转角度下的理论机体重力为
v = ( v x v y v z ) = C n b ∗ g = ( 2 ( q 1 q 3 − q 0 q 2 ) 2 ( q 2 q 3 + q 0 q 1 ) 1 − 2 ( q 1 2 + q 2 2 ) ) v=\begin{pmatrix} v_x\\v_y\\v_z \end{pmatrix}=C_n^b*g=\begin{pmatrix} 2(q_1q_3-q_0q_2)\\2(q_2q_3+q_0q_1)\\ 1-2(q_1^2+q_2^2)\end{pmatrix} v=⎝⎛​vx​vy​vz​​⎠⎞​=Cnb​∗g=⎝⎛​2(q1​q3​−q0​q2​)2(q2​q3​+q0​q1​)1−2(q12​+q22​)​⎠⎞​

假定此时由加速度计测量得到的三轴上的加速度值为
a = ( a x a y a z ) a=\begin{pmatrix} a_x\\a_y\\a_z \end{pmatrix} a=⎝⎛​ax​ay​az​​⎠⎞​

向量之间的误差可以由外积得到,那么就有误差为

e a = ( e a x e a y e a z ) = ( a y ∗ v z − a z ∗ v y a z ∗ v x − a z ∗ v z a x ∗ v y − a y ∗ v x ) ea=\begin{pmatrix} ea_x\\ea_y\\ea_z \end{pmatrix}=\begin{pmatrix} a_y*v_z-a_z*v_y\\a_z*v_x-a_z*v_z\\a_x*v_y-a_y*v_x \end{pmatrix} ea=⎝⎛​eax​eay​eaz​​⎠⎞​=⎝⎛​ay​∗vz​−az​∗vy​az​∗vx​−az​∗vz​ax​∗vy​−ay​∗vx​​⎠⎞​

5.2 磁力计误差计算

磁力计误差计算对比之下会略显复杂一些。前面已经说过,地磁方向并非和重力一样是固定的,因此由于磁力计是固定在机体上的,此时测得的数据是以机体坐标系为基表示的,因此首先需要使用 C b n C_b^n Cbn​

姿态传感器MPU6050模块的姿态解算 对比DMP和自己进行姿态解算:使用DMP我们可以直接得到四元数,但是如果不用DMP的话,就得自己来进行解算,根据得到的各轴角速度以及加速度,再经过滤波,接着计算出四元数或者欧拉角,然后还得进行姿态融合。前者更便捷,但是灵活度差,精度不是特别高;后者麻烦,但是算法处理得当的话,就能有很高的精度。一般应用使用DMP即可。 阅读详情

相关推荐

读取传感器数据并通过画图实时动态展示数据变化

需求:读取传感器数据并通过画图实时展示出来 我用的是python2.7,传感器是Yost Labs的惯性导航传感器:3 space sensor Data Loging,读取传感器数据用的是Threespace包,因为threespace只能在python2.x下面使用(虽然threespace的文档中有说也支持python3.x,但是我试过,3.x版本是不行的),所以我使用了python2.7....

weixin_43365492的博客 6969

STM32与陀螺仪、加速度计传感器的数据融合与姿态估计

下面是一个简单的示例代码,演示了如何在STM32上实现对陀螺仪和加速度计数据的读取和融合,以实现姿态估计功能。本文将介绍如何将陀螺仪和加速度计传感器与STM32微控制器结合使用,通过数据融合算法实现对物体姿态的估计。提供稳定的电源以满足STM32、陀螺仪和加速度计的工作需求,建议采用稳压电源或者电池供电。将陀螺仪和加速度计的引脚连接到STM32的对应引脚,通常通过I2C或SPI接口进行通信。通过合理的硬件设计和软件编程,可以针对具体的应用和需求进行姿态估计算法的优化和定制。

weixin_66608063的博客 1649

【IMU Kalman滤波器】基于Matlab的9轴IMU传感器数据融合与姿态估计算法实战

本文详细介绍了基于Matlab的9轴IMU传感器数据融合与姿态估计算法实战,重点解析了卡尔曼滤波器在加速度计、陀螺仪和磁力计数据融合中的应用。通过传感器噪声建模、误差补偿和扩展卡尔曼滤波(EKF)实现,提供了从算法原理到Matlab代码实现的完整指南,并针对实际应用中的挑战给出了解决方案和性能优化技巧。

ansible6ops的博客 648

基于卡尔曼滤波器的传感器数据融合与姿态估计:从理论到实战

本文系统地介绍了基于卡尔曼滤波器的传感器数据融合与姿态估计,从基础原理到MATLAB实现,并探讨了创新应用。卡尔曼滤波的魅力在于其数学优雅与实用高效的完美结合——通过简单的五个公式,解决了复杂的状态估计问题。未来发展方向深度学习融合:结合神经网络自适应调整滤波器参数。多模态融合:集成视觉、LiDAR等新型传感器。边缘计算优化:面向物联网设备的轻量级实现。鲁棒性提升:针对传感器故障和异常值的容错设计。通过本文的代码和理论,读者可以快速入门卡尔曼滤波,并在此基础上开发自己的应用。

QQ_778132974的博客 323

多传感器数据融合:互补滤波器在姿态估计中的实现

摘要:在无人机飞控、机器人平衡系统和可穿戴设备中,单一惯性传感器无法提供可靠的姿态信息。本文从频域互补特性出发,深入推导互补滤波器的数学模型,对比卡尔曼滤波器的实现复杂度与精度差异,并以MPU6050六轴IMU为例,给出完整的STM32嵌入式代码实现与参数调优指南,实测姿态角估计精度可达±0.5°以内。MPU6050的坐标系遵循右手定则:X轴沿芯片长边向前,Y轴沿短边向左,Z轴垂直芯片向上。Roll(横滚角):绕X轴旋转,范围为−90°90°−90°90°Pitch(俯仰角)

从事移动开发八年,csdn博客专家,阿里云特邀专家,华为云云享专家,高级网络信息安全工程师,大数据工程师(高级),python技术开发(高级),HarmonyOS 应用开发者高级认证,现在某学校任教。 1万+

138、eIQ的传感器数据融合案例

去年做一款可穿戴跌倒检测设备,选了NXP i.MX RT1060跑eIQ,搭配BMI270六轴IMU。原型阶段一切顺利,直到某天把设备绑在跑步机上测试——波形图直接炸了。加速度计输出像被猫抓过的毛线球,陀螺仪漂移得比我的年终奖还快。更崩溃的是,eIQ推理结果在静止时输出“跌倒”,在真正跌倒时输出“静止”。当时第一反应是模型有问题,反复调参、换网络结构,折腾三天毫无进展。直到用逻辑分析仪抓了原始传感器数据,才发现问题根本不在模型——原始数据信噪比低到离谱,模型等于在垃圾堆里找黄金。

2401_88858637的博客 12

基于加速度传感器与陀螺仪的卡尔曼滤波姿态估计系统设计

本章从物理机制出发,系统性地介绍了陀螺仪的基本分类、输出特性及其在运动检测中的应用。通过对比不同类型的陀螺仪,我们理解了MEMS陀螺仪为何成为当前主流;通过分析零偏漂移、温度影响和噪声特性,我们掌握了陀螺仪误差的来源及其补偿方法;最后,通过角速度积分与姿态控制流程的讲解,我们深入理解了陀螺仪在无人机与机器人中的关键作用。下一章我们将深入探讨卡尔曼滤波算法,学习如何通过数据融合技术提升姿态估计的精度与稳定性。标准卡尔曼滤波仅适用于线性系统,而实际应用中系统模型和观测模型往往是非线性的。

weixin_42451850的博客 1158

Madgwick传感器融合算法MATLAB实现与应用实战

一个四元数 $ q $ 可表示为:其中 $ w, x, y, z \in \mathbb{R} $ 分别为其标量部分与三个虚部系数;$ i, j, k $ 是满足以下乘法规则的基本单位:这一非交换乘法结构构成了四元数代数的核心特征——它是实数域上的四维结合代数,记作 $ \mathbb{H} $。在姿态估计中,通常使用单位纯四元数来表示旋转。

weixin_35755188的博客 1191

[AHK] 自动化获取通达信股票代码:从消息钩子到数据提取

本文详细介绍了如何使用AHK(AutoHotkey)通过Windows消息钩子技术自动化获取通达信股票代码,实现高效数据提取和交易自动化。文章涵盖消息机制原理、AHK脚本开发、性能优化及安全注意事项,为股票交易者提供了一套完整的解决方案。

weixin_42614269的博客 612

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

Ollama安装教程

Ollama 是一个开源的大语言模型(LLM)部署工具,专为在本地机器部署和运行大模型而设计,通过简单的命令就可以在本地快速运行大模型(如DeepSeek、Llama、Gemma、QWQ等)。非常适合开发者、研究人员以及对数据安全和隐私有较高要求的企业和用户

学习AI应用开发,分享AI干货、获取最新AI咨询 3820

Vue3+Element Plus:构建现代化后台管理系统的核心布局实践

本文详细介绍了使用Vue3和Element Plus构建现代化后台管理系统的核心布局实践。从开发环境搭建到核心布局设计,再到动态菜单与路由集成,提供了完整的解决方案和优化技巧。特别适合需要快速开发高效、响应式后台系统的开发者,通过实战案例展示了如何提升开发效率和系统性能。

weixin_28309723的博客 452

BurpSuit在不同浏览器中配置代理

文章通过分享各大浏览器如何设置代理的知识,帮助初学者快速掌握代理配置相关技能。

北冥同学的成长记录笔记 1万+

EXCEL VBA从入门到精通 前言

本书通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程,同时也介绍了常用的工具、资源、社区和协作平台等,方便读者进行进一步的学习和开发。我强烈推荐这本书给所有希望学习和掌握Excel VBA编程的读者。多样化的资源和工具介绍:本书介绍了丰富的工具和资源,包括官方文档、在线教程、代码库、论坛、博客等,方便读者进行进一步的学习和开发。详细的讲解和丰富的示例:本书从语法和对象开始讲解,通过丰富的实例和案例,帮助读者更好地理解和应用Excel VBA编程。第一节:什么是VBA 5。

1698

MicroCap声学仿真介绍(四)-扬声器仿真

将“障板”模块放置到工作区,“Param:AREAm2=”是指的是障板孔的面积,一般可以输入喇叭的面积Sb;“Param:DISTm=”指的是测试麦克风与障板的距离,这里我们可以填入1米,小喇叭可以填入0.1m;此时工作区的电阻是竖直的,为了方便,我们需要将其变成水平的。其中,频率范围为20~20KHz,仿真点数为500个点,先仿真频响曲线和相位曲线,点击左上角的run,界面如下。鼠标单击工作区,弹出如下界面:在弹出的界面中输入“.define Re 3.82 “,点击”确定“按钮。

山无忧的博客 2981

【Segment Anything Model】十(1):利用SAM做分类任务,方法二,不放过SAM强大特征提取能力,将SAM提取到的ImageEmbedding插入到其他cnn网络中

直接黏贴复制就好'''该类定义了VGG-16的基本结构。features: 代表VGG网络的主体部分,即所有的卷积层和池化层。avgpool: 是自适应平均池化层,将特征图大小调整为7x7。classifier: 是VGG网络的分类部分,由全连接层组成。_initialize_weights(): 初始化权重的方法。

cvxiayixiao的博客 3558

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: Ardupilot姿态控制详解(完结篇)
下一篇: muduo网络库学习总结:基本架构及流程分析
moumde
博客等级 码龄10年 454粉丝 40原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值