Visual Servoing Platform
version 3.7.0
Toggle main menu visibility
Loading...
Searching...
No Matches
vpUKSigmaDrawerMerwe.h
1
/*
2
* ViSP, open source Visual Servoing Platform software.
3
* Copyright (C) 2005 - 202% by Inria. All rights reserved.
4
*
5
* This software is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation; either version 2 of the License, or
8
* (at your option) any later version.
9
* See the file LICENSE.txt at the root directory of this source
10
* distribution for additional information about the GNU GPL.
11
*
12
* For using ViSP with software that can not be combined with the GNU
13
* GPL, please contact Inria about acquiring a ViSP Professional
14
* Edition License.
15
*
16
* See https://visp.inria.fr for more information.
17
*
18
* This software was developed at:
19
* Inria Rennes - Bretagne Atlantique
20
* Campus Universitaire de Beaulieu
21
* 35042 Rennes Cedex
22
* France
23
*
24
* If you have questions regarding the use of this file, please contact
25
* Inria at visp@inria.fr
26
*
27
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29
*
30
* Description:
31
* Display a point cloud using PCL library.
32
*/
33
34
#ifndef VP_UK_SIGMA_DRAWER_MERWE_H
35
#define VP_UK_SIGMA_DRAWER_MERWE_H
36
37
#include <vector>
38
39
#include <visp3/core/vpConfig.h>
40
41
#include <visp3/core/vpUKSigmaDrawerAbstract.h>
42
#include <visp3/core/vpUnscentedKalman.h>
43
44
#if (VISP_CXX_STANDARD >= VISP_CXX_STANDARD_11)
45
BEGIN_VISP_NAMESPACE
96
class
VISP_EXPORT
vpUKSigmaDrawerMerwe
:
public
vpUKSigmaDrawerAbstract
97
{
98
public
:
99
typedef
vpUnscentedKalman::vpAddSubFunction
vpAddSubFunction
;
100
112
vpUKSigmaDrawerMerwe
(
const
unsigned
int
&n,
const
double
&alpha,
const
double
&beta,
const
double
&kappa,
113
const
vpAddSubFunction
&resFunc =
vpUnscentedKalman::simpleResidual
,
114
const
vpAddSubFunction
&addFunc =
vpUnscentedKalman::simpleAdd
);
115
124
virtual
std::vector<vpColVector>
drawSigmaPoints
(
const
vpColVector
&mean,
const
vpMatrix
&covariance) VP_OVERRIDE;
125
131
virtual
vpSigmaPointsWeights
computeWeights
() VP_OVERRIDE;
132
protected:
133
inline
void
computeLambda
()
134
{
135
m_lambda
=
m_alpha
*
m_alpha
* (
static_cast<
double
>
(
m_n
) +
m_kappa
) -
static_cast<
double
>
(
m_n
);
136
}
137
138
double
m_alpha
;
140
double
m_beta
;
141
double
m_kappa
;
142
double
m_lambda
;
143
vpAddSubFunction
m_resFunc
;
144
vpAddSubFunction
m_addFunc
;
145
};
146
END_VISP_NAMESPACE
147
#endif
148
#endif
vpColVector
Implementation of column vector and the associated operations.
Definition
vpColVector.h:191
vpMatrix
Implementation of a matrix and operations on matrices.
Definition
vpMatrix.h:175
vpUKSigmaDrawerAbstract::computeWeights
virtual vpSigmaPointsWeights computeWeights()=0
Computed the weights that correspond to the sigma points that have been drawn.
vpUKSigmaDrawerAbstract::drawSigmaPoints
virtual std::vector< vpColVector > drawSigmaPoints(const vpColVector &mean, const vpMatrix &covariance)=0
Draw the sigma points according to the current mean and covariance of the state of the Unscented Kalm...
vpUKSigmaDrawerAbstract::vpUKSigmaDrawerAbstract
vpUKSigmaDrawerAbstract(const unsigned int &n)
Definition
vpUKSigmaDrawerAbstract.h:62
vpUKSigmaDrawerAbstract::m_n
unsigned int m_n
Definition
vpUKSigmaDrawerAbstract.h:84
vpUKSigmaDrawerMerwe::vpUKSigmaDrawerMerwe
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.
Definition
vpUKSigmaDrawerMerwe.cpp:43
vpUKSigmaDrawerMerwe::m_resFunc
vpAddSubFunction m_resFunc
Definition
vpUKSigmaDrawerMerwe.h:143
vpUKSigmaDrawerMerwe::vpAddSubFunction
vpUnscentedKalman::vpAddSubFunction vpAddSubFunction
Definition
vpUKSigmaDrawerMerwe.h:99
vpUKSigmaDrawerMerwe::m_alpha
double m_alpha
Definition
vpUKSigmaDrawerMerwe.h:138
vpUKSigmaDrawerMerwe::m_lambda
double m_lambda
Definition
vpUKSigmaDrawerMerwe.h:142
vpUKSigmaDrawerMerwe::m_beta
double m_beta
Definition
vpUKSigmaDrawerMerwe.h:140
vpUKSigmaDrawerMerwe::m_kappa
double m_kappa
Definition
vpUKSigmaDrawerMerwe.h:141
vpUKSigmaDrawerMerwe::computeLambda
void computeLambda()
Definition
vpUKSigmaDrawerMerwe.h:133
vpUKSigmaDrawerMerwe::m_addFunc
vpAddSubFunction m_addFunc
Definition
vpUKSigmaDrawerMerwe.h:144
vpUnscentedKalman::simpleAdd
static vpColVector simpleAdd(const vpColVector &a, const vpColVector &toAdd)
Simple function to compute an addition, which just does .
Definition
vpUnscentedKalman.h:389
vpUnscentedKalman::simpleResidual
static vpColVector simpleResidual(const vpColVector &a, const vpColVector &toSubtract)
Simple function to compute a residual, which just does .
Definition
vpUnscentedKalman.h:402
vpUnscentedKalman::vpAddSubFunction
std::function< vpColVector(const vpColVector &, const vpColVector &)> vpAddSubFunction
Function that computes either the equivalent of an addition or the equivalent of a subtraction in the...
Definition
vpUnscentedKalman.h:192
BEGIN_VISP_NAMESPACE
Definition
vpMbtDistanceCircle.cpp:55
vpUKSigmaDrawerAbstract::vpSigmaPointsWeights
The weights corresponding to the sigma points drawing.
Definition
vpUKSigmaDrawerAbstract.h:57
modules
core
include
visp3
core
vpUKSigmaDrawerMerwe.h
Generated by
1.17.0