Open aipiano opened 5 years ago
你好,在"不变扩展卡尔曼滤波(三):一个更通用的框架"博文中,在系统状态模型公式中,当位置参数和速度参数比较大时(在实际应用中,完全有这种可能,比如车载场景下),系统的噪声矩阵Qt会很大,而一般来说,系统的噪声矩阵Qt是一个数值较小的矩阵,即IEKF的系统模型中的噪声传播感觉与实际情况是出入的.请问这是为什么?
补充:IEKF的系统噪声为Qt=AdxCov (wt)Adx^T. 其中,Adx= [R 0 0 0] [(vt)xR R 0 0] [(pt)xR 0 R 0] [(dt)xR 0 0 R] 当vt和pt很大时,即IMU载体运行时间较久,与初始位置距离较远,或载体的运动速度较大,则Qt的值会很大的,假设pt=[1000,1000,1000],vt=[100,100,100],wt=dialog[1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6],则Qt的值便会很大,而系统噪声的值一般是很小的,两者矛盾.
@JimnSu 补充:IEKF的系统噪声为Qt=AdxCov (wt)Adx^T. 其中,Adx= [R 0 0 0] [(vt)xR R 0 0] [(pt)xR 0 R 0] [(dt)xR 0 0 R] 当vt和pt很大时,即IMU载体运行时间较久,与初始位置距离较远,或载体的运动速度较大,则Qt的值会很大的,假设pt=[1000,1000,1000],vt=[100,100,100],wt=dialog[1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6],则Qt的值便会很大,而系统噪声的值一般是很小的,两者矛盾.
我尝试回答一下,都是个人看法。 其实谈不上矛盾,因为在InEKF下,噪声前面的这个矩阵已经不是原来的雅克比矩阵了,自然不能用普通EKF的形式来要求它。 关于传递矩阵数值很大的问题,是由于InEKF定义的误差导致的。InEKF使用的不再是线性误差,而是高阶的非线性误差,存在两个或多个待估计状态量的积。对于长时间运行的系统,这是否会构成问题,我没有实验过,无法确定。至少在数学推导上是没有问题的,而且在一些已有的开源项目中,也没有发现太大问题。
另外~~以后尽量在博文下面评论哈~,谢谢!
@Erensu 补充:IEKF的系统噪声为Qt=AdxCov (wt)Adx^T. 其中,Adx= [R 0 0 0] [(vt)xR R 0 0] [(pt)xR 0 R 0] [(dt)xR 0 0 R] 当vt和pt很大时,即IMU载体运行时间较久,与初始位置距离较远,或载体的运动速度较大,则Qt的值会很大的,假设pt=[1000,1000,1000],vt=[100,100,100],wt=dialog[1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6,1E-6],则Qt的值便会很大,而系统噪声的值一般是很小的,两者矛盾.
我也有类似的疑问,我认为事实上InEKF所观测的状态量是在SE(2)下的误差, 这里的P矩阵(15x15)即为5个误差的协方差矩阵,在我实际运行中一旦速度v和位置p运行到比较远的地方,按照论文里的方式进行P的传播会导致P快速发散 不知道你们有没有好的见解
https://aipiano.github.io/about/
A place to share science, ideas and life.