toon-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Toon-members] tag/tag kalmanfilter.h


From: Gerhard Reitmayr
Subject: [Toon-members] tag/tag kalmanfilter.h
Date: Mon, 05 Jun 2006 18:04:57 +0000

CVSROOT:        /cvsroot/toon
Module name:    tag
Changes by:     Gerhard Reitmayr <gerhard>      06/06/05 18:04:57

Modified files:
        tag            : kalmanfilter.h 

Log message:
        using optimized transformCovariance from TooN

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/tag/tag/kalmanfilter.h?cvsroot=toon&r1=1.4&r2=1.5

Patches:
Index: kalmanfilter.h
===================================================================
RCS file: /cvsroot/toon/tag/tag/kalmanfilter.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- kalmanfilter.h      5 Jun 2006 15:19:30 -0000       1.4
+++ kalmanfilter.h      5 Jun 2006 18:04:57 -0000       1.5
@@ -90,7 +90,7 @@
     void predict(double dt){
         TooN::Matrix<State::STATE_DIMENSION> A = model.getJacobian( state, dt 
);
         model.updateState( state, dt );
-        state.covariance = A * state.covariance * A.T() + 
model.getNoiseCovariance( dt );
+        state.covariance = TooN::transformCovariance(A, state.covariance) + 
model.getNoiseCovariance( dt );
         TooN::Symmetrize(state.covariance);
     }
 
@@ -99,7 +99,7 @@
     template<class Measurement> void filter(Measurement & m){
         TooN::Matrix<Measurement::M_DIMENSION,State::STATE_DIMENSION> H = 
m.getMeasurementJacobian( state );
         TooN::Matrix<Measurement::M_DIMENSION> R = m.getMeasurementCovariance( 
state );
-        TooN::Matrix<Measurement::M_DIMENSION> I = H * state.covariance * 
H.T() + R;
+        TooN::Matrix<Measurement::M_DIMENSION> I = 
TooN::transformCovariance(H, state.covariance) + R;
         TooN::LU<Measurement::M_DIMENSION> lu(I);
         TooN::Matrix<State::STATE_DIMENSION, Measurement::M_DIMENSION> K = 
state.covariance * H.T() * lu.get_inverse();
         TooN::Vector<Measurement::M_DIMENSION> innovation = m.getInnovation( 
state );




reply via email to

[Prev in Thread] Current Thread [Next in Thread]