#include <StateEstimator/Kalman.hh>


Public Member Functions | |
| void | AddDebugLevel (const std::string &name) |
| void | AddDebugLevel (const long int lv) |
| bool | DebugLevelIsSet (const std::string &name) const |
| bool | DebugLevelIsSet (const long int lv) const |
| void | GetCovariance (Matrix< double > &cov) const |
| Returns the system state covariance. | |
| int | GetDebugLevel () const |
| void | GetDebugStream (std::ostream &os) const |
| std::ostream & | GetDebugStream () const |
| void | GetState (Vector< double > &state) const |
| Returns the system state. | |
| void | Init (const Matrix< double > &SystemMatrix, const Matrix< double > &MeasurementMatrix, const Vector< double > &InitialSystemState, const Matrix< double > &InitialSystemCovariance) |
| Kalman (const Matrix< double > &SystemMatrix, const Matrix< double > &MeasurementMatrix, const Vector< double > &InitialSystemState, const Matrix< double > &InitialSystemCovariance) | |
| Kalman () | |
| long int | Name2DebugLevel (const std::string &name) const |
| looks up a debuglevel in the internal map, returns 0 if not found | |
| long int | NewDebugLevel (const std::string &name) |
| creates a new debuglevel | |
| void | Predict (const Matrix< double > &SystemMatrix, const Matrix< double > &ProcessCovariance) |
| Use this prediction function system in case of varying system matrix A. | |
| void | Predict (const Matrix< double > &ProcessCovariance) |
| Calculates the prediction using the system matrix A. | |
| void | PrintDebugLevel (std::ostream &os=std::cout) const |
| void | RemoveDebugLevel (const std::string &name) |
| void | RemoveDebugLevel (const long int lv) |
| void | SetDebugLevel (const std::string &name) |
| void | SetDebugLevel (const long int lv) |
| void | SetDebugStream (const std::ostream &os) |
| void | ShowDebugLevel (std::ostream &os=std::cout) const |
| prints all internally known debuglevels | |
| void | Update (const Vector< double > &Measurement, const Matrix< double > &MeasurementCovariance) |
| Calculates the update step. | |
| ~Kalman () | |
Static Public Member Functions | |
| static long int | GetGlobalDebugLevel () |
| static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
| long | ConsumeNextFreeDebuglevel_ () |
| returns the next available debuglevel | |
Protected Attributes | |
| long int | _liDebugLevel |
| long int | _liNextDebugLevel |
| new concept, debuglevel are managed here in the debug class | |
| std::map< std::string, long int > | _String2Debuglevel |
| Matrix< double > | A_ |
| measurement matrix and transposed | |
| Matrix< double > | AT_ |
| Matrix< double > | Covariance_ |
| The covariance matrix corresponding to State_. | |
| Matrix< double > | H_ |
| measurement matrix and transposed | |
| Matrix< double > | HT_ |
| Matrix< double > | Identity_ |
| identity matrix | |
| int | MeasurementDim_ |
| Vector< double > | State_ |
| Contains either the prediction (prior) or Bayes optimal system estimate (posterior) depending what function (Predict()/Update()) wascalled last. | |
| SVD | svd_ |
| needed for matrix inversion | |
| int | SystemStateDim_ |
| dimensions of system space and measurement space | |
Static Protected Attributes | |
| static std::ostream | _zDebugStream |
| static long int | GlobalDebugLevel = 0 |
See http://www.cs.unc.edu/~welch/kalman/ for details.
Initialize it by either
Use it by consecutively call
Extract the prediction (prior) by calling GetState() and GetCovariance() after the Predict() step.
Extract the estimated system state by calling GetState() and GetCovariance() after the Update() step.
Definition at line 54 of file Kalman.hh.
| Kalman::Kalman | ( | ) |
| Kalman::~Kalman | ( | ) |
Definition at line 24 of file Kalman.cpp.
| void BIAS::Debug::AddDebugLevel | ( | const std::string & | name | ) | [inline, inherited] |
| void BIAS::Debug::AddDebugLevel | ( | const long int | lv | ) | [inline, inherited] |
Reimplemented in BIAS::GLProjectionParametersBase.
Definition at line 356 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::RANSAC< SolutionType >::RANSAC(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
| long BIAS::Debug::ConsumeNextFreeDebuglevel_ | ( | ) | [inline, protected, inherited] |
| bool BIAS::Debug::DebugLevelIsSet | ( | const std::string & | name | ) | const [inline, inherited] |
| bool BIAS::Debug::DebugLevelIsSet | ( | const long int | lv | ) | const [inline, inherited] |
Definition at line 342 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::Rescale< InputStorageType, OutputStorageType >::_ApplyMeanFilter(), BIAS::CornerDetectorGradient< StorageType, CalculationType >::_CalcCornerness(), BIAS::GaussThreshold< InputStorageType, OutputStorageType >::_CalculateKernels(), BIAS::Gauss< InputStorageType, OutputStorageType >::_CalculateKernels(), BIAS::LinearRegionDetector< StorageType, CalculationType >::_ComputeCornerness(), BIAS::CornerDetectorKLT< StorageType, CalculationType >::_ComputeCornerness(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), BIAS::Rescale< InputStorageType, OutputStorageType >::_FillInterpolated(), BIAS::Rescale< InputStorageType, OutputStorageType >::_FillInterpolatedColor(), BIAS::Rescale< InputStorageType, OutputStorageType >::_FillInterpolatedGrey(), BIAS::ImageBlender::BlendImages(), BIAS::StructureTensor< InputStorageType, OutputStorageType >::CalcStructureTensor(), BIAS::StructureTensor< InputStorageType, OutputStorageType >::CalcStructureTensor3x3(), BIAS::StructureTensor< InputStorageType, OutputStorageType >::CalcStructureTensor5x5(), BIAS::StructureTensor< InputStorageType, OutputStorageType >::CalcStructureTensor7x7(), BIAS::StructureTensor< InputStorageType, OutputStorageType >::CalcStructureTensorValid(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::CornerDetectorGradient< StorageType, CalculationType >::Detect(), BIAS::Rescale< InputStorageType, OutputStorageType >::DownsampleBy2Color(), BIAS::Binomial< InputStorageType, OutputStorageType >::Filter3x3ValidGreyFloat(), BIAS::Binomial< InputStorageType, OutputStorageType >::Filter5x5ValidGreyFloat(), BIAS::Convolution< InputStorageType, OutputStorageType >::FilterFloat(), BIAS::Convolution< InputStorageType, OutputStorageType >::FilterInt(), BIAS::RANSAC< SolutionType >::GenerateSamplesRandom(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::Tracker< StorageType, CalculationType >::PreparePyramide(), and BIAS::MonteCarloTransform::Transform().
| void BIAS::Kalman::GetCovariance | ( | Matrix< double > & | cov | ) | const [inline] |
Returns the system state covariance.
It could be the covariance of the prediction, if called after the predict step or the covariance of the posterior, if GetState is called after the update step.
| int BIAS::Debug::GetDebugLevel | ( | ) | const [inline, inherited] |
Definition at line 333 of file Debug.hh.
Referenced by BIAS::MSAC< SolutionType >::_GenerateSamplesRandom(), BIAS::ImageAlignment::Align(), BIAS::ExampleDebug::func(), BIAS::FMatrix::GetEpipoles(), BIAS::GuiGTK::MouseMotionCallback_(), BIAS::Image< StorageType >::operator=(), BIAS::ImageBase::operator=(), BIAS::ExampleDebug::ResetDebugLevelFromGlobal(), BIAS::TrackerBaseAffine2< StorageType >::TrackAffine_(), and BIAS::TrackerBaseAffine< StorageType >::TrackAffine_().
| void BIAS::Debug::GetDebugStream | ( | std::ostream & | os | ) | const [inline, inherited] |
| std::ostream& BIAS::Debug::GetDebugStream | ( | ) | const [inline, inherited] |
Definition at line 406 of file Debug.hh.
Referenced by BIAS::MSAC< SolutionType >::_GenerateSamplesRandom(), BIAS::RANSAC< SolutionType >::GenerateSamplesRandom(), and BIAS::GuiGTK::MouseMotionCallback_().
| static long int BIAS::Debug::GetGlobalDebugLevel | ( | ) | [inline, static, inherited] |
Definition at line 432 of file Debug.hh.
Referenced by BIAS::ExampleDebug::func(), and BIAS::ExampleDebug::ResetDebugLevelFromGlobal().
| void BIAS::Kalman::GetState | ( | Vector< double > & | state | ) | const [inline] |
Returns the system state.
It could be the prediction, if called after the predict step or the posterior, if GetState is called after the update step.
| void Kalman::Init | ( | const Matrix< double > & | SystemMatrix, | |
| const Matrix< double > & | MeasurementMatrix, | |||
| const Vector< double > & | InitialSystemState, | |||
| const Matrix< double > & | InitialSystemCovariance | |||
| ) |
Definition at line 27 of file Kalman.cpp.
References A_, AT_, Covariance_, H_, HT_, Identity_, MeasurementDim_, TNT::Matrix< T >::newsize(), TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), BIAS::Matrix< T >::SetIdentity(), TNT::Vector< T >::size(), State_, SystemStateDim_, and BIAS::Matrix< T >::Transpose().
Referenced by Kalman().
| long int BIAS::Debug::Name2DebugLevel | ( | const std::string & | name | ) | const [inline, inherited] |
| long int BIAS::Debug::NewDebugLevel | ( | const std::string & | name | ) | [inline, inherited] |
creates a new debuglevel
Definition at line 475 of file Debug.hh.
Referenced by BIAS::Condensation::Condensation(), BIAS::COSAC< SolutionType >::COSAC(), BIAS::Histogram::Histogram(), BIAS::MonteCarloTransform::MonteCarloTransform(), myclass::myclass(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PMatrixLinear::PMatrixLinear(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSAC< SolutionType >::RANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and BIAS::UnscentedTransform::UnscentedTransform().
| void Kalman::Predict | ( | const Matrix< double > & | SystemMatrix, | |
| const Matrix< double > & | ProcessCovariance | |||
| ) |
Use this prediction function system in case of varying system matrix A.
Definition at line 59 of file Kalman.cpp.
References A_, AT_, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), Predict(), SystemStateDim_, and BIAS::Matrix< T >::Transpose().
| void Kalman::Predict | ( | const Matrix< double > & | ProcessCovariance | ) |
Calculates the prediction using the system matrix A.
Definition at line 51 of file Kalman.cpp.
References A_, AT_, Covariance_, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), and State_.
Referenced by Predict().
| void BIAS::Debug::PrintDebugLevel | ( | std::ostream & | os = std::cout |
) | const [inline, inherited] |
| void BIAS::Debug::RemoveDebugLevel | ( | const std::string & | name | ) | [inline, inherited] |
| void BIAS::Debug::RemoveDebugLevel | ( | const long int | lv | ) | [inline, inherited] |
| void BIAS::Debug::SetDebugLevel | ( | const std::string & | name | ) | [inline, inherited] |
| void BIAS::Debug::SetDebugLevel | ( | const long int | lv | ) | [inline, inherited] |
Reimplemented in BIAS::GLProjectionParametersBase.
Definition at line 319 of file Debug.hh.
Referenced by BIAS::Interpolator::Interpolator(), BIAS::ExampleDebug::ResetDebugLevelFromGlobal(), BIAS::MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::MDcam::SetDebugLevelDcam(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
| void BIAS::Debug::SetDebugStream | ( | const std::ostream & | os | ) | [inline, inherited] |
| static void BIAS::Debug::SetGlobalDebugLevel | ( | long int | lev | ) | [inline, static, inherited] |
| void BIAS::Debug::ShowDebugLevel | ( | std::ostream & | os = std::cout |
) | const [inline, inherited] |
| void Kalman::Update | ( | const Vector< double > & | Measurement, | |
| const Matrix< double > & | MeasurementCovariance | |||
| ) |
Calculates the update step.
Definition at line 72 of file Kalman.cpp.
References Covariance_, H_, HT_, Identity_, BIAS::SVD::Invert(), MeasurementDim_, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), TNT::Vector< T >::size(), State_, and svd_.
long int BIAS::Debug::_liDebugLevel [protected, inherited] |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::GuiGTK::DeleteEvent_(), BIAS::GuiGTK::Destroy_(), BIAS::GuiGTK::DrawingAreaExposeCallback_(), BIAS::GuiGTK::GtkMain(), BIAS::GuiGTK::KeyPressEventCallback_(), BIAS::GuiGTK::LabelExposeCallback_(), BIAS::GuiGTK::MouseButtonPressCallback_(), BIAS::GuiGTK::MouseButtonReleaseCallback_(), BIAS::GuiGTK::MouseMotionCallback_(), BIAS::Image< StorageType >::operator=(), BIAS::ImageBase::operator=(), and BIAS::Debug::operator=().
long int BIAS::Debug::_liNextDebugLevel [protected, inherited] |
new concept, debuglevel are managed here in the debug class
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
std::map<std::string, long int> BIAS::Debug::_String2Debuglevel [protected, inherited] |
std::ostream BIAS::Debug::_zDebugStream [static, protected, inherited] |
Definition at line 512 of file Debug.hh.
Referenced by BIAS::GuiGTK::DeleteEvent_(), BIAS::GuiGTK::Destroy_(), BIAS::GuiGTK::DrawingAreaExposeCallback_(), BIAS::GuiGTK::GtkMain(), BIAS::GuiGTK::KeyPressEventCallback_(), BIAS::GuiGTK::LabelExposeCallback_(), BIAS::GuiGTK::MouseButtonPressCallback_(), BIAS::GuiGTK::MouseButtonReleaseCallback_(), BIAS::GuiGTK::MouseMotionCallback_(), and BIAS::Debug::operator=().
Matrix<double> BIAS::Kalman::A_ [protected] |
Matrix<double> BIAS::Kalman::AT_ [protected] |
Matrix<double> BIAS::Kalman::Covariance_ [protected] |
long int BIAS::Debug::GlobalDebugLevel = 0 [static, protected, inherited] |
Matrix<double> BIAS::Kalman::H_ [protected] |
Matrix<double> BIAS::Kalman::HT_ [protected] |
Matrix<double> BIAS::Kalman::Identity_ [protected] |
int BIAS::Kalman::MeasurementDim_ [protected] |
Vector<double> BIAS::Kalman::State_ [protected] |
SVD BIAS::Kalman::svd_ [protected] |
int BIAS::Kalman::SystemStateDim_ [protected] |
1.5.6