我正在尝试使用Indirect Kalman Filter实现惯性导航系统。我发现了很多关于这个主题的出版物和论文,但没有太多的代码作为例子。对于我的实施,我正在使用以下链接中提供的硕士论文:
https://fenix.tecnico.ulisboa.pt/downloadFile/395137332405/dissertacao.pdf
如第 47 页所述,来自惯性传感器的测量值等于真实值加上一系列其他项(偏差、比例因子……)。对于我的问题,让我们只考虑偏见。
所以:
Wmeas = Wtrue + BiasW (Gyro meas)
Ameas = Atrue + BiasA. (Accelerometer meas)
所以,
当我传播机械化方程(方程 3-29、3-37 和 3-41)时,我应该使用“真实”值,或者更好:
Wmeas - BiasW
Ameas - BiasA
其中 BiasW 和 BiasA 是最后可用的偏差估计。对?
关于 EKF 的更新阶段,如果测量方程是
dzV = VelGPS_est - VelGPS_meas
H 矩阵应该有一个单位矩阵,对应于速度误差状态变量 dx(VEL) 和其他地方的 0。对?
说我不确定如何在更新阶段之后传播状态变量。状态变量的传播应该是(在我看来):
POSk|k = POSk|k-1 + dx(POS);
VELk|k = VELk|k-1 + dx(VEL);
...
但这没有用。因此我尝试过:
POSk|k = POSk|k-1 - dx(POS);
VELk|k = VELk|k-1 - dx(VEL);
那也没有用...我尝试了两种解决方案,即使我认为应该使用“+”。但是由于两者都不起作用(我在其他地方还有其他错误),所以我会问您是否有任何建议。
您可以在以下链接中看到一段代码:http: //pastebin.com/aGhKh2ck。
谢谢。