可以先像一开始接触PID那样,先把整个系统跑通,感受一下它是咋用的。后面再回过头来研究原理。
学习OpenCV2——卡尔曼滤波(KalmanFilter)详解
上述的EKF本质上就是对加速度计、陀螺仪、磁力计的数据进行滤波。经过滤波的加速度和磁力计数据可以得到旋转矩阵,也就估计出了无人机的姿态。
Q和R选取不同参数,会有不同效果。
理解Kalman滤波的使用 里面这个误差矩阵H没搞懂是代表啥
关于卡尔曼滤波本质解释和公式推到 文章说法是,定义误差 e_t = x_t - x&_t ,P_t为此误差的协方差矩阵,目的是使这个误差协方差矩阵最小化,把(3)代过去,于是折腾来折腾去,再求个导数为0,解得K
这篇文章的语言是很有意思啊哈哈哈,好好看看能解答不少概念不清楚的地方。
首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
X(k)=A X(k-1)+B U(k)+W(k)
再加上系统的测量值:
Z(k)=H X(k)+V(k)
上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。
卡尔曼告诉我们一个灰常牛B的事情,一个相对准 确的系统值具有如下结构:
x&_t = x&-_t + K( z_t - H*x_(t-1) ); (3)
提 一下,这里" & "表示估计值," - "表示是用前面式子算出来的估计值,不带" - "表示是最后的估计值。
哦,对了,另外注意一点,从此以后,我们就都在估计上做文章了,你只要记得,咱永远看不到真实值就行了,于是我们的式子里不是带"&"就是带"-"。
结合 Kalman滤波器初步自行理解 中说的 典型的公式中,前两个是时间更新方程,后三个是状态更新方程(公式中( − 代表先验,ˆ代表估计) 大概知道 " - "表示是用前面式子算出来的估计值,也就是先验?
定义误差 e_t = x_t - x&_t ,P_t为此误差的协方差矩阵,目的是使这个误差协方差矩阵最小化。
而Q表示的是状态方程模型和实际模型之间的误差,包括模型失配和外界扰动等误差。
【工程师学算法】工程常用算法(二)—— 卡尔曼滤波(Kalman Filter) 这一篇也非常知得一看,很多概念都解释清楚了
Q代表本次估计产生的不确定性(比如无法预测的外部扰动以及模型自身的不确定性)
结尾提到的DR_CAN的B站视频,再看一遍感觉收获颇多