From b34c559ba7219e19c246b5ccb53d320b70b34b68 Mon Sep 17 00:00:00 2001 From: "kaz@capsellab" Date: Sun, 29 Sep 2019 09:45:02 +0900 Subject: [PATCH] =?UTF-8?q?You=20should=20factorize=20=E2=80=9Cthe=20estim?= =?UTF-8?q?ated=20predicted=20error=20covariance=E2=80=9D=20=20on=20formul?= =?UTF-8?q?a=20(43)=20in=20Measurement=20Update=20section.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- filterpy/kalman/CubatureKalmanFilter.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/filterpy/kalman/CubatureKalmanFilter.py b/filterpy/kalman/CubatureKalmanFilter.py index 74018763..d36eb911 100644 --- a/filterpy/kalman/CubatureKalmanFilter.py +++ b/filterpy/kalman/CubatureKalmanFilter.py @@ -318,9 +318,9 @@ def predict(self, dt=None, fx_args=()): # evaluate cubature points for k in range(self._num_sigmas): - self.sigmas_f[k] = self.fx(sigmas[k], dt, *fx_args) + sigmas_f[k] = self.fx(sigmas[k], dt, *fx_args) - self.x, self.P = ckf_transform(self.sigmas_f, self.Q) + self.x, self.P = ckf_transform(sigmas_f, self.Q) # save prior self.x_prior = self.x.copy() @@ -359,6 +359,8 @@ def update(self, z, R=None, hx_args=()): elif isscalar(R): R = eye(self.dim_z) * R + self.sigmas_f = spherical_radial_sigmas(self.x, self.P) + for k in range(self._num_sigmas): self.sigmas_h[k] = self.hx(self.sigmas_f[k], *hx_args)