>From 49ab2b8396dff5f0773e8b560297dae7037dc538 Mon Sep 17 00:00:00 2001
From: Ryan Pavlik
Date: Wed, 5 May 2010 18:10:51 -0500
Subject: [PATCH 1/3] Compile fixes to kalman filter
---
tag/kalmanfilter.h | 7 +++++--
1 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/tag/kalmanfilter.h b/tag/kalmanfilter.h
index 71bdc7d..1aeb62d 100644
--- a/tag/kalmanfilter.h
+++ b/tag/kalmanfilter.h
@@ -95,7 +95,8 @@ public:
/// predicts the state by applying the process model over the time interval dt
/// @param[in] dt time interval
void predict(double dt){
- TooN::transformCovariance(model.getJacobian( state, dt ), state.covariance, state.covariance);
+ TooN::Matrix origCov(state.covariance);
+ TooN::transformCovariance(model.getJacobian( state, dt ), origCov, state.covariance);
state.covariance += model.getNoiseCovariance( dt );
TooN::Symmetrize(state.covariance);
model.updateState( state, dt );
@@ -106,7 +107,9 @@ public:
template void filter(Measurement & m){
const TooN::Matrix & H = m.getMeasurementJacobian( state );
const TooN::Matrix & R = m.getMeasurementCovariance( state );
- TooN::Matrix I = TooN::transformCovariance(H, state.covariance) + R;
+ TooN::Matrix I = TooN::Zeros;
+ TooN::transformCovariance(H, state.covariance, I);
+ I += R;
TooN::LU lu(I);
TooN::Matrix K = state.covariance * H.T() * lu.get_inverse();
const TooN::Vector & innovation = m.getInnovation( state );
--
1.7.1