MRPT
2.0.1
|
Functions | |
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 > | |
void | mrpt::math::transform_gaussian_unscented (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const bool *elem_do_wrap2pi=nullptr, const double alpha=1e-3, const double K=0, const double beta=2.0) |
Scaled unscented transformation (SUT) for estimating the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More... | |
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 > | |
void | mrpt::math::transform_gaussian_montecarlo (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const size_t num_samples=1000, std::vector< VECTORLIKE3 > *out_samples_y=nullptr) |
Simple Montecarlo-base estimation of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More... | |
template<class VECTORLIKE1 , class MATLIKE1 , class USERPARAM , class VECTORLIKE2 , class VECTORLIKE3 , class MATLIKE2 > | |
void | mrpt::math::transform_gaussian_linear (const VECTORLIKE1 &x_mean, const MATLIKE1 &x_cov, void(*functor)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y), const USERPARAM &fixed_param, VECTORLIKE2 &y_mean, MATLIKE2 &y_cov, const VECTORLIKE1 &x_increments) |
First order uncertainty propagation estimator of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user. More... | |
void mrpt::math::transform_gaussian_linear | ( | const VECTORLIKE1 & | x_mean, |
const MATLIKE1 & | x_cov, | ||
void(*)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y) | functor, | ||
const USERPARAM & | fixed_param, | ||
VECTORLIKE2 & | y_mean, | ||
MATLIKE2 & | y_cov, | ||
const VECTORLIKE1 & | x_increments | ||
) |
First order uncertainty propagation estimator of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user.
The user must supply the function in "functor" which takes points in the X space and returns the mapped point in Y, optionally using an extra, constant parameter ("fixed_param") which remains constant. The Jacobians are estimated numerically using the vector of small increments "x_increments".
#include <Eigen/Dense>
Definition at line 152 of file transform_gaussian.h.
References mrpt::math::estimateJacobian(), MRPT_END, MRPT_START, and mrpt::math::multiply_HCHt().
Referenced by Pose3DQuatPDFGaussTests::testInverse(), Pose3DPDFGaussTests::testPoseComposition(), Pose3DQuatPDFGaussTests::testPoseComposition(), PosePDFGaussTests::testPoseInverse(), Pose3DPDFGaussTests::testPoseInverseComposition(), and Pose3DQuatPDFGaussTests::testPoseInverseComposition().
void mrpt::math::transform_gaussian_montecarlo | ( | const VECTORLIKE1 & | x_mean, |
const MATLIKE1 & | x_cov, | ||
void(*)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y) | functor, | ||
const USERPARAM & | fixed_param, | ||
VECTORLIKE2 & | y_mean, | ||
MATLIKE2 & | y_cov, | ||
const size_t | num_samples = 1000 , |
||
std::vector< VECTORLIKE3 > * | out_samples_y = nullptr |
||
) |
Simple Montecarlo-base estimation of the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user.
The user must supply the function in "functor" which takes points in the X space and returns the mapped point in Y, optionally using an extra, constant parameter ("fixed_param") which remains constant.
out_samples_y | If !=nullptr, this vector will contain, upon return, the sequence of random samples generated and propagated through the functor(). |
Definition at line 114 of file transform_gaussian.h.
References mrpt::math::covariancesAndMean(), mrpt::random::CRandomGenerator::drawGaussianMultivariateMany(), mrpt::random::getRandomGenerator(), MRPT_END, and MRPT_START.
Referenced by mrpt::maps::COccupancyGridMap2D::laserScanSimulatorWithUncertainty().
void mrpt::math::transform_gaussian_unscented | ( | const VECTORLIKE1 & | x_mean, |
const MATLIKE1 & | x_cov, | ||
void(*)(const VECTORLIKE1 &x, const USERPARAM &fixed_param, VECTORLIKE3 &y) | functor, | ||
const USERPARAM & | fixed_param, | ||
VECTORLIKE2 & | y_mean, | ||
MATLIKE2 & | y_cov, | ||
const bool * | elem_do_wrap2pi = nullptr , |
||
const double | alpha = 1e-3 , |
||
const double | K = 0 , |
||
const double | beta = 2.0 |
||
) |
Scaled unscented transformation (SUT) for estimating the Gaussian distribution of a variable Y=f(X) for an arbitrary function f() provided by the user.
The user must supply the function in "functor" which takes points in the X space and returns the mapped point in Y, optionally using an extra, constant parameter ("fixed_param") which remains constant.
The parameters alpha, K and beta are the common names of the SUT method, and the default values are those recommended in most papers.
elem_do_wrap2pi | If !=nullptr; it must point to an array of "bool" of size()==dimension of each element, stating if it's needed to do a wrap to [-pi,pi] to each dimension. |
Definition at line 46 of file transform_gaussian.h.
References mrpt::math::covariancesAndMeanWeighted(), MRPT_END, and MRPT_START.
Referenced by mrpt::poses::CPose3DQuatPDFGaussian::copyFrom(), mrpt::poses::CPose3DPDFGaussian::copyFrom(), and mrpt::maps::COccupancyGridMap2D::laserScanSimulatorWithUncertainty().
Page generated by Doxygen 1.8.14 for MRPT 2.0.1 Git: 0fef1a6d7 Fri Apr 3 23:00:21 2020 +0200 at vie abr 3 23:20:28 CEST 2020 |