[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Paparazzi-devel] Error in Kalman Filter Implementation
From: |
Felix Ruess |
Subject: |
Re: [Paparazzi-devel] Error in Kalman Filter Implementation |
Date: |
Thu, 14 Jan 2010 10:02:48 +0100 |
Hi Gisela,
seems to me that you're right! Although I doubt the impact is huge.
I just committed the fix.
Cheers, Felix
On Mon, Oct 12, 2009 at 4:55 PM, gisela.noci
<address@hidden> wrote:
> Regarding the current implementation of the Kalman Filter, I believe that
> there is a bug in the last 4 lines. The purpose of these lines is to update
> the error covariance matrix P.
>
>
>
> The typical formula is Pk = Pk - K*H*Pk, where Pk, K and H are all matrices.
> The Pk on the right of the equation is the current value of the matrix,
> while the Pk on the left of the equation is the newly computed matrix.
>
>
>
> In the code, the computation has been simplified into the following lines of
> code. The problem here is that lines 3 and 4 are using the value of p[0][0]
> and p[0][1] computed in lines 1 and 2 (ie. elements of the new Pk matrix),
> instead of the values form the current Pk matrix.
>
>
>
> p[0][0] = p[0][0] * (1-k_0);
>
> p[0][1] = p[0][1] * (1-k_0);
>
> p[1][0] = -p[0][0]*k_1+p[1][0];
>
> p[1][1] = -p[0][1]*k_1+p[1][1];
>
>
>
> To be correct, the sequence of these lines of code should be as follows:
>
>
>
> p[1][0] = -p[0][0]*k_1+p[1][0];
>
> p[1][1] = -p[0][1]*k_1+p[1][1];
>
> p[0][0] = p[0][0] * (1-k_0);
>
> p[0][1] = p[0][1] * (1-k_0);
>
>
>
> I don’t think it will have a major impact on performance, but cannot be
> sure.
>
> Gisela
>
>
>
> _______________________________________________
> Paparazzi-devel mailing list
> address@hidden
> http://lists.nongnu.org/mailman/listinfo/paparazzi-devel
>
>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [Paparazzi-devel] Error in Kalman Filter Implementation,
Felix Ruess <=