39#include <visp3/core/vpUKSigmaDrawerMerwe.h>
41#if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
57 const unsigned int nbSigmaPoints = 2 *
m_n + 1;
58 std::vector<vpColVector> sigmaPoints(nbSigmaPoints);
59 sigmaPoints[0] = mean;
62 for (
unsigned int i = 0; i <
m_n; ++i) {
71 const unsigned int nbSigmaPoints = 2 *
m_n + 1;
73 weights.
m_wm.resize(nbSigmaPoints);
74 weights.
m_wc.resize(nbSigmaPoints);
79 double cstWeight = 1. / (2. * (
static_cast<double>(
m_n) +
m_lambda));
80 for (
unsigned int i = 1; i < nbSigmaPoints; ++i) {
81 weights.
m_wm[i] = cstWeight;
82 weights.
m_wc[i] = cstWeight;
88void vpUKSigmaDrawerMerwe_dummy()
Implementation of column vector and the associated operations.
Implementation of a matrix and operations on matrices.
vpMatrix cholesky() const
vpRowVector getRow(unsigned int i) const
vpColVector transpose() const
vpUKSigmaDrawerAbstract(const unsigned int &n)
vpUKSigmaDrawerMerwe(const unsigned int &n, const double &alpha, const double &beta, const double &kappa, const vpAddSubFunction &resFunc=vpUnscentedKalman::simpleResidual, const vpAddSubFunction &addFunc=vpUnscentedKalman::simpleAdd)
Construct a new vpUKSigmaDrawerMerwe object.
virtual vpSigmaPointsWeights computeWeights() VP_OVERRIDE
Computed the weights that correspond to the sigma points that have been drawn.
vpAddSubFunction m_resFunc
vpUnscentedKalman::vpAddSubFunction vpAddSubFunction
virtual std::vector< vpColVector > drawSigmaPoints(const vpColVector &mean, const vpMatrix &covariance) VP_OVERRIDE
Draw the sigma points according to the current mean and covariance of the state of the Unscented Kalm...
vpAddSubFunction m_addFunc
The weights corresponding to the sigma points drawing.
std::vector< double > m_wm
std::vector< double > m_wc