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
16
#include <Eigen/Eigen>
17
18
#include "
Gaussian.h
"
19
20
// Kalman filter for linear system with the following control model:
21
// xt = Axt-1 + But + d + gaussian error
22
// and following measurment model
23
// zt = Cx + e + gaussian error
24
25
// *****************************************************************
26
// declaration of KalmanFilter
27
// *****************************************************************
28
class
KalmanFilter
29
{
30
public
:
31
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
32
33
// construction / destruction
34
KalmanFilter
(){};
35
36
// setup system
37
/**
38
* @param motion_A nxn square matrix being the linear transformation of the state
39
* @param motion_B nxm matrix being the transformation from control to state
40
* @param motion_noise n dimensional gaussian being the motion noise
41
**/
42
void
setMotionModel
(
const
Eigen::MatrixXd& motion_A,
43
const
Eigen::MatrixXd& motion_B,
44
const
Gaussian
& motion_noise);
45
46
/**
47
* @param measurement_C transformation from state space to observation space
48
* @param measurement_noise gaussian encoding the observation noise
49
**/
50
void
setMeasurementModel
(
const
Eigen::MatrixXd& measurement_C,
51
const
Gaussian
& measurement_noise);
52
53
// filtering (if result == NULL, believe is updated)
54
Gaussian
filter
(
const
Gaussian
& believe,
55
const
Eigen::VectorXd& actionU,
56
const
Eigen::VectorXd& perceptZ);
57
Gaussian
predict
(
const
Gaussian
& believe,
const
Eigen::VectorXd& actionU);
58
Gaussian
update
(
const
Gaussian
& predicted_believe,
const
Eigen::VectorXd& perceptZ);
59
60
public
:
61
// system model
62
Eigen::MatrixXd
m_A
;
63
Eigen::MatrixXd
m_B
;
64
Eigen::MatrixXd
m_C
;
65
Eigen::MatrixXd
m_A_t
;
66
Eigen::MatrixXd
m_C_t
;
67
68
// noises
69
Gaussian
m_Q
;
70
Gaussian
m_R
;
71
};
KalmanFilter::KalmanFilter
EIGEN_MAKE_ALIGNED_OPERATOR_NEW KalmanFilter()
Definition:
KalmanFilter.h:34
KalmanFilter::setMotionModel
void setMotionModel(const Eigen::MatrixXd &motion_A, const Eigen::MatrixXd &motion_B, const Gaussian &motion_noise)
Definition:
KalmanFilter.cpp:21
KalmanFilter
Definition:
KalmanFilter.h:28
KalmanFilter::setMeasurementModel
void setMeasurementModel(const Eigen::MatrixXd &measurement_C, const Gaussian &measurement_noise)
Definition:
KalmanFilter.cpp:34
KalmanFilter::m_C
Eigen::MatrixXd m_C
Definition:
KalmanFilter.h:64
KalmanFilter::filter
Gaussian filter(const Gaussian &believe, const Eigen::VectorXd &actionU, const Eigen::VectorXd &perceptZ)
Definition:
KalmanFilter.cpp:48
KalmanFilter::m_B
Eigen::MatrixXd m_B
Definition:
KalmanFilter.h:63
KalmanFilter::m_C_t
Eigen::MatrixXd m_C_t
Definition:
KalmanFilter.h:66
Gaussian.h
KalmanFilter::predict
Gaussian predict(const Gaussian &believe, const Eigen::VectorXd &actionU)
Definition:
KalmanFilter.cpp:62
KalmanFilter::m_A
Eigen::MatrixXd m_A
Definition:
KalmanFilter.h:62
Gaussian
Definition:
Gaussian.h:50
KalmanFilter::m_Q
Gaussian m_Q
Definition:
KalmanFilter.h:69
KalmanFilter::m_R
Gaussian m_R
Definition:
KalmanFilter.h:70
KalmanFilter::update
Gaussian update(const Gaussian &predicted_believe, const Eigen::VectorXd &perceptZ)
Definition:
KalmanFilter.cpp:74
KalmanFilter::m_A_t
Eigen::MatrixXd m_A_t
Definition:
KalmanFilter.h:65
MemoryX
libraries
helpers
EarlyVisionHelpers
KalmanFilter.h
Generated on Sat Mar 29 2025 09:17:24 for armarx_documentation by
1.8.17