SourceLizi / sourcelizi.github.io

3 stars 0 forks source link

202304/imu-practice/ #5

Open utterances-bot opened 1 month ago

utterances-bot commented 1 month ago

IMU算法:破 | 算法设计实践:基于四元数的解算 | 搬砖笔记

基础知识回顾,在这篇文章中我提到了可以采用四元数作为EKF的状态量实现扩展Kalman滤波。借此机会动手编写完整的姿态解算,验证上述理论的实际效果 原理在如何理解Kalman滤波中已经指出过典型的Kalman滤波的过程如下 预测过程 更新过程

https://sourcelizi.github.io/202304/imu-practice/

Masterlaw commented 1 month ago

大佬你好,按你给的算式算IMU的方差与代码上的对不上,不应该是acc:(150ug/sqrt(hz)1e-6sqrt(2000hz))^2 = 4.51e-5与gyro:(15mdps/sqrt(hz)1e-3/180pisqrt(2000hz))^2 = 1.37*1e-4

SourceLizi commented 1 month ago

大佬你好,按你给的算式算IMU的方差与代码上的对不上,不应该是acc:(150ug/sqrt(hz)_1e-6_sqrt(2000hz))^2 = 4.5_1e-5与gyro:(15mdps/sqrt(hz)_1e-3/180_pi_sqrt(2000hz))^2 = 1.37*1e-4

@Masterlaw 首先根据写完这篇文章之后的验证,我的QMI8658C加速度计噪声应该是大于数据手册给出的值,另外加速度计三轴的噪声很明显是不一样的,这里你的计算值并不能作为我实际算法使用的参数。如果你要求完全按照理论去实现的话,那就要先对传感器的噪声进行标定。其次,我在代码里面用的就是试凑的方法,这里我没有用文中没有提到的其他方法调整参数,同时文中并也没有要求必须用理论值去计算。

Masterlaw commented 1 month ago

再请教下,这样去调整参数的话,怎么知道调整的参数比原来的好,我变化很大,但输出的结果变化不明显,而且也不清楚怎样的变化是好的变化。

SourceLizi commented 1 month ago

@Masterlaw 首先你要保证在静态的时候你用参数能收敛,其次是动态响应的问题。你说变化很大是指你的传感器实际姿态变化很大?如果是的话那应该要调节Q和R两个矩阵,参数的含义这里解释过。按照我的理解,你的变化不明显的话应该要降低Q的值提高R的值。要评估你的调节参数是否合理,最严谨的做法是找一个基准参考,例如将传感器放在三轴云台的末端,用其三轴角度传感器的值与你算法的估计值比较。