39 #ifndef __usUnscentedKalmanFilter_h_
40 #define __usUnscentedKalmanFilter_h_
42 #include <visp3/core/vpConfig.h>
46 #include <visp3/core/vpColVector.h>
47 #include <visp3/core/vpMatrix.h>
95 int getStateDimension()
const;
96 void setStateDimension(
int dim);
98 int getMeasureDimension()
const;
99 void setMeasureDimension(
int dim);
102 void setProcessNoiseType(
NoiseType type);
103 int getProcessNoiseDimension()
const;
104 void setProcessNoiseDimension(
int dim);
107 void setMeasureNoiseType(
NoiseType type);
108 int getMeasureNoiseDimension()
const;
109 void setMeasureNoiseDimension(
int dim);
113 double getSigmaPointScalingFactor()
const;
114 void setSigmaPointScalingFactor(
double factor);
115 double getSigmaPointSpreadThreshold()
const;
116 void setSigmaPointSpreadThreshold(
double threshold);
118 vpColVector getState()
const;
119 void setState(
const vpColVector &state);
121 vpMatrix getStateCovarianceMatrix()
const;
122 void setStateCovarianceMatrix(
const vpMatrix &mat);
124 vpMatrix getProcessNoiseCovarianceMatrix()
const;
125 void setProcessNoiseCovarianceMatrix(
const vpMatrix &cov);
126 bool computeProcessNoiseCovarianceMatrixAutomatically()
const;
127 void computeProcessNoiseCovarianceMatrixAutomatically(
bool flag);
129 vpMatrix getMeasureNoiseCovarianceMatrix()
const;
130 void setMeasureNoiseCovarianceMatrix(
const vpMatrix &cov);
131 bool computeMeasureNoiseCovarianceMatrixAutomatically()
const;
132 void computeMeasureNoiseCovarianceMatrixAutomatically(
bool flag);
134 virtual bool checkConsistency(
const vpColVector &measure);
135 virtual void computeProcessNoiseCovarianceMatrix();
136 virtual void computeMeasureNoiseCovarianceMatrix();
137 bool generateSigmaPoints();
138 bool computePropagatedSigmaPoints();
139 bool computeSigmaMeasures();
140 void computeMeansAndCovarianceMatricesFromSigmaPoints();
143 bool filter(
const vpColVector &measure);
147 virtual double stateNorm(
const vpColVector &state)
const;
148 virtual vpColVector measureLog(
const vpColVector &measure,
const vpColVector &measureCenter)
const;
149 virtual vpColVector stateLog(
const vpColVector &state,
const vpColVector &stateCenter)
const;
150 virtual vpColVector stateExp(
const vpColVector &state,
const vpColVector &stateCenter)
const;
double m_sigmaPointsScalingFactor
vpMatrix m_sigmaPointsMeasure
vpMatrix m_stateCovarianceMatrix
vpColVector m_sigmaPointsCovarianceWeights
vpMatrix m_sigmaPointsInit
unsigned int m_measureNoiseDimension
bool m_computeMeasureNoiseCovarianceMatrixAutomatically
vpMatrix m_measureNoiseCovarianceMatrix
NoiseType m_measureNoiseType
unsigned int m_stateDimension
vpColVector m_sigmaPointsMeanWeights
NoiseType m_processNoiseType
unsigned int m_processNoiseDimension
bool m_computeProcessNoiseCovarianceMatrixAutomatically
vpMatrix m_measureSigmaCovarianceMatrix
vpMatrix m_stateMeasureSigmaCovarianceMatrix
virtual vpColVector computeMeasureFromSigmaPoint(const vpColVector &sigmaPoint)=0
vpColVector m_measureSigmaMean
vpMatrix m_stateSigmaCovarianceMatrix
virtual vpColVector propagateSigmaPoint(const vpColVector &sigmaPoint)=0
double m_sigmaPointsSpreadThreshold
vpMatrix m_sigmaPointsPropagated
unsigned int m_measureDimension
SigmaPointGenerationType m_sigmaPointsGenerationType
vpMatrix m_processNoiseCovarianceMatrix
vpColVector m_stateSigmaMean