1.简介卡尔曼滤波(Kalmanfiltering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。详情见:卡尔曼滤波简介MPU6050的解算主要有三种姿态融合算法:四元数法、一阶互补算法和卡尔曼滤波算法。我们常用的DMP库使用的是四元数法,本文采用卡尔曼滤波算法,使用RT-Thread国产操作系统,利用env工具进行串口、模拟IIC环境配置,使用10ms的线程进行卡尔曼滤波解算。2.设计思想因为MPU6050没有包含磁力计,故无法对yaw轴运用卡尔曼滤波算法。利用MPU6050中加
1.简介卡尔曼滤波(Kalmanfiltering)是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。详情见:卡尔曼滤波简介MPU6050的解算主要有三种姿态融合算法:四元数法、一阶互补算法和卡尔曼滤波算法。我们常用的DMP库使用的是四元数法,本文采用卡尔曼滤波算法,使用RT-Thread国产操作系统,利用env工具进行串口、模拟IIC环境配置,使用10ms的线程进行卡尔曼滤波解算。2.设计思想因为MPU6050没有包含磁力计,故无法对yaw轴运用卡尔曼滤波算法。利用MPU6050中加
本文参考:从放弃到精通!卡尔曼滤波从理论到实践~_哔哩哔哩_bilibili目录1.卡尔曼滤波入门2.学卡尔曼滤波的必备知识2.1.状态空间表达式2.2.高斯分布2.3.方差2.4.超参数2.5.卡尔曼直观图解3.卡尔曼滤波3.1.卡尔曼公式理解3.2.调节超参数3.2.1.Q和R的取值3.2.2.P0和X0的取值3.2.3.卡尔曼滤波的使用1.卡尔曼滤波入门卡尔曼滤波的引入:滤波就是将测量得到的波形中的的噪声过滤掉,使得到的数据更趋于真实情况,也更加平滑,方便使用。如下图所示(红色曲线是测量直接得到的波形,紫色曲线是滤波后得到的平滑曲线)卡尔曼滤波适用的系统:卡尔曼滤波适用线性高斯系统1.线
本文参考:从放弃到精通!卡尔曼滤波从理论到实践~_哔哩哔哩_bilibili目录1.卡尔曼滤波入门2.学卡尔曼滤波的必备知识2.1.状态空间表达式2.2.高斯分布2.3.方差2.4.超参数2.5.卡尔曼直观图解3.卡尔曼滤波3.1.卡尔曼公式理解3.2.调节超参数3.2.1.Q和R的取值3.2.2.P0和X0的取值3.2.3.卡尔曼滤波的使用1.卡尔曼滤波入门卡尔曼滤波的引入:滤波就是将测量得到的波形中的的噪声过滤掉,使得到的数据更趋于真实情况,也更加平滑,方便使用。如下图所示(红色曲线是测量直接得到的波形,紫色曲线是滤波后得到的平滑曲线)卡尔曼滤波适用的系统:卡尔曼滤波适用线性高斯系统1.线
1、在MATLABC具箱里,有特别提供的函数reg()来求解LQGR优控制。函数的调用格式为:rsys=reg(sysK,L)其中,输入参量sys为系统的状态空间模型;K为由函数lqr()求得的最优状态反馈增益矩阵;L为函数lqe()求得的Kalman滤波器状态估计增益矩阵。2、函数lqr()K=lqr(A,B,Q,R)%状态反馈控制增益矩阵%新的状态空间模型Ac=[(A-BK)]Bc=[B]Cc=[C]Dc=[D]sys_cl=ss(Ac,Bc,Cc,Dc)%系统函数建立%常用的响应输出格式%t=0:0.01:5;%r=0.2ones(size(t));%[y,t,x]=lsim(sys_c
1、在MATLABC具箱里,有特别提供的函数reg()来求解LQGR优控制。函数的调用格式为:rsys=reg(sysK,L)其中,输入参量sys为系统的状态空间模型;K为由函数lqr()求得的最优状态反馈增益矩阵;L为函数lqe()求得的Kalman滤波器状态估计增益矩阵。2、函数lqr()K=lqr(A,B,Q,R)%状态反馈控制增益矩阵%新的状态空间模型Ac=[(A-BK)]Bc=[B]Cc=[C]Dc=[D]sys_cl=ss(Ac,Bc,Cc,Dc)%系统函数建立%常用的响应输出格式%t=0:0.01:5;%r=0.2ones(size(t));%[y,t,x]=lsim(sys_c
三次多项式轨迹规划:三次多项式轨迹规划就是s(t)相对于时间t的变化满足三次多项式变化,其表达式如下: 如前文所述:t的取值范围是[0,T],s(t)的取值范围是[0,1],又因为初始速度和末速度都为0,所以:S(t)的一阶导数表达式为:从而可以计算出对应的系数:将系数带入到上面的三次多项式,可得到再将上式代入到路径表达式,即可得到完整的轨迹规划表达式,如下所示:其中,最大的关节速度在时刻到达,其数值为:最大的关节加速度和关节减速度在和,其中:关节空间三次多项式轨迹规划:TH1=[30,60,2,5,50,70,80];%定义关节空间中的两个点TH1,TH
三次多项式轨迹规划:三次多项式轨迹规划就是s(t)相对于时间t的变化满足三次多项式变化,其表达式如下: 如前文所述:t的取值范围是[0,T],s(t)的取值范围是[0,1],又因为初始速度和末速度都为0,所以:S(t)的一阶导数表达式为:从而可以计算出对应的系数:将系数带入到上面的三次多项式,可得到再将上式代入到路径表达式,即可得到完整的轨迹规划表达式,如下所示:其中,最大的关节速度在时刻到达,其数值为:最大的关节加速度和关节减速度在和,其中:关节空间三次多项式轨迹规划:TH1=[30,60,2,5,50,70,80];%定义关节空间中的两个点TH1,TH
目录1.引言2.理解与demo2.1二阶低通滤波2.1.1 LP_2Order的个人理解2.1.2refer2.1.3demo2.2 卡尔曼滤波2.2.1理解2.2.2refer 2.2.3 卡尔曼滤波的几个tips2.2.4demo3.其它1.引言相比于上一篇,这篇会写的简单很多,可能因为难度略低吧。还是工程化,不大篇幅抄理论,直接上可落地的干货。2.理解与demo2.1二阶低通滤波2.1.1 LP_2Order的个人理解低通滤波比较常用,原理不甚了了,至于为什么用二阶而不用一阶三阶一百阶,你懂的。很容易理解也很容易做,照着公式写就行,下一节会给出参考链接。要实现二阶低通滤波器,有几个很重要
目录1.引言2.理解与demo2.1二阶低通滤波2.1.1 LP_2Order的个人理解2.1.2refer2.1.3demo2.2 卡尔曼滤波2.2.1理解2.2.2refer 2.2.3 卡尔曼滤波的几个tips2.2.4demo3.其它1.引言相比于上一篇,这篇会写的简单很多,可能因为难度略低吧。还是工程化,不大篇幅抄理论,直接上可落地的干货。2.理解与demo2.1二阶低通滤波2.1.1 LP_2Order的个人理解低通滤波比较常用,原理不甚了了,至于为什么用二阶而不用一阶三阶一百阶,你懂的。很容易理解也很容易做,照着公式写就行,下一节会给出参考链接。要实现二阶低通滤波器,有几个很重要