UnscentedTransform.h
Go to the documentation of this file.
1// *****************************************************************
2// Filename: UnscentedTransform.h
3// Copyright: Kai Welke, Chair Prof. Dillmann (IAIM),
4// Institute for Anthropomatics (IFA),
5// Humanoids and Intelligence Systems Lab,
6// Karlsruhe Institute of Technology. All rights reserved.
7// Author: Kai Welke
8// Date: 20.01.2010
9// *****************************************************************
10#pragma once
11
12#include <Eigen/Eigen>
13
14#include "Gaussian.h"
15
16// *****************************************************************
17// definition of class UnscenterTransform
18// *****************************************************************
20{
21public:
22 // construction / destruction
23 UnscentedTransform(float fAlpha = 0.1, float fKappa = 0.0f, float fBeta = 2.0f);
24
25 // retrieve sigmapoints in column order, if not diagonal has to be positive definite with eigenvalues >> 0
26 Eigen::MatrixXd getSigmaPoints(const Gaussian& gaussian);
27
28 // reassemble gaussian from sigmapoints
29 Gaussian extractGaussian(Eigen::MatrixXd processedSigmaPoints);
30
31private:
32 Eigen::MatrixXd squareRoot(Eigen::MatrixXd input);
33
34 float m_fAlpha;
35 float m_fKappa;
36 float m_fBeta;
37
38 Eigen::VectorXd m_weights_m;
39 Eigen::VectorXd m_weights_c;
40};
Gaussian extractGaussian(Eigen::MatrixXd processedSigmaPoints)
UnscentedTransform(float fAlpha=0.1, float fKappa=0.0f, float fBeta=2.0f)
Eigen::MatrixXd getSigmaPoints(const Gaussian &gaussian)