KalmanFilter.h
Go to the documentation of this file.
1
// *****************************************************************
2
// Filename: KalmanFilter.h
3
// Copyright: Kai Welke, Chair Prof. Dillmann (IAIM),
4
// Institute for Computer Science and Engineering (CSE),
5
// University of Karlsruhe. All rights reserved.
6
// Author: Kai Welke
7
// Date: 27.05.2009
8
// *****************************************************************
9
#pragma once
10
11
// *****************************************************************
12
// includes
13
// *****************************************************************
14
#include <math.h>
15
#include <Eigen/Eigen>
16
17
#include "
Gaussian.h
"
18
19
// Kalman filter for linear system with the following control model:
20
// xt = Axt-1 + But + d + gaussian error
21
// and following measurment model
22
// zt = Cx + e + gaussian error
23
24
// *****************************************************************
25
// declaration of KalmanFilter
26
// *****************************************************************
27
class
KalmanFilter
28
{
29
public
:
30
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
31
32
// construction / destruction
33
KalmanFilter
() {};
34
35
// setup system
36
/**
37
* @param motion_A nxn square matrix being the linear transformation of the state
38
* @param motion_B nxm matrix being the transformation from control to state
39
* @param motion_noise n dimensional gaussian being the motion noise
40
**/
41
void
setMotionModel
(
const
Eigen::MatrixXd& motion_A,
const
Eigen::MatrixXd& motion_B,
const
Gaussian
& motion_noise);
42
43
/**
44
* @param measurement_C transformation from state space to observation space
45
* @param measurement_noise gaussian encoding the observation noise
46
**/
47
void
setMeasurementModel
(
const
Eigen::MatrixXd& measurement_C,
const
Gaussian
& measurement_noise);
48
49
// filtering (if result == NULL, believe is updated)
50
Gaussian
filter
(
const
Gaussian
& believe,
const
Eigen::VectorXd& actionU,
const
Eigen::VectorXd& perceptZ);
51
Gaussian
predict
(
const
Gaussian
& believe,
const
Eigen::VectorXd& actionU);
52
Gaussian
update
(
const
Gaussian
& predicted_believe,
const
Eigen::VectorXd& perceptZ);
53
54
public
:
55
// system model
56
Eigen::MatrixXd
m_A
;
57
Eigen::MatrixXd
m_B
;
58
Eigen::MatrixXd
m_C
;
59
Eigen::MatrixXd
m_A_t
;
60
Eigen::MatrixXd
m_C_t
;
61
62
// noises
63
Gaussian
m_Q
;
64
Gaussian
m_R
;
65
};
66
KalmanFilter::KalmanFilter
EIGEN_MAKE_ALIGNED_OPERATOR_NEW KalmanFilter()
Definition:
KalmanFilter.h:33
KalmanFilter::setMotionModel
void setMotionModel(const Eigen::MatrixXd &motion_A, const Eigen::MatrixXd &motion_B, const Gaussian &motion_noise)
Definition:
KalmanFilter.cpp:19
KalmanFilter
Definition:
KalmanFilter.h:27
KalmanFilter::setMeasurementModel
void setMeasurementModel(const Eigen::MatrixXd &measurement_C, const Gaussian &measurement_noise)
Definition:
KalmanFilter.cpp:29
KalmanFilter::m_C
Eigen::MatrixXd m_C
Definition:
KalmanFilter.h:58
KalmanFilter::filter
Gaussian filter(const Gaussian &believe, const Eigen::VectorXd &actionU, const Eigen::VectorXd &perceptZ)
Definition:
KalmanFilter.cpp:41
KalmanFilter::m_B
Eigen::MatrixXd m_B
Definition:
KalmanFilter.h:57
KalmanFilter::m_C_t
Eigen::MatrixXd m_C_t
Definition:
KalmanFilter.h:60
Gaussian.h
KalmanFilter::predict
Gaussian predict(const Gaussian &believe, const Eigen::VectorXd &actionU)
Definition:
KalmanFilter.cpp:52
KalmanFilter::m_A
Eigen::MatrixXd m_A
Definition:
KalmanFilter.h:56
Gaussian
Definition:
Gaussian.h:46
KalmanFilter::m_Q
Gaussian m_Q
Definition:
KalmanFilter.h:63
KalmanFilter::m_R
Gaussian m_R
Definition:
KalmanFilter.h:64
KalmanFilter::update
Gaussian update(const Gaussian &predicted_believe, const Eigen::VectorXd &perceptZ)
Definition:
KalmanFilter.cpp:63
KalmanFilter::m_A_t
Eigen::MatrixXd m_A_t
Definition:
KalmanFilter.h:59
MemoryX
libraries
helpers
EarlyVisionHelpers
KalmanFilter.h
Generated on Sat Oct 12 2024 09:14:05 for armarx_documentation by
1.8.17