13 #include <gtest/gtest.h> 37 for (
int i=0;i<3;i++)
cov(i,i)+=1e-7;
47 for (
int i=0;i<3;i++) Y[i]=p1_inv[i];
51 double x,
double y,
double phi,
double std_scale)
63 for (
int i=0;i<3;i++) x_mean[i]=pdf1.
mean[i];
73 EXPECT_NEAR(0, (y_cov-pdf1_inv.
cov).array().abs().mean(), 1e-5 )
74 <<
"pdf1 mean: " << pdf1.
mean << endl
75 <<
"Numeric approximation of covariance: " << endl << y_cov << endl
76 <<
"Returned covariance: " << endl << pdf1_inv.
cov << endl;
84 testPoseInverse(0,0,0, 0.01);
85 testPoseInverse(0,0,0, 0.1);
87 testPoseInverse(1,0,0, 0.1);
88 testPoseInverse(0,1,0, 0.1);
89 testPoseInverse(0,0,1, 0.1);
91 testPoseInverse(-5,0,0, 0.1);
92 testPoseInverse(0,-5,0, 0.1);
93 testPoseInverse(0,0,-5, 0.1);
95 testPoseInverse(4,6,
DEG2RAD(10), 0.1);
96 testPoseInverse(4,6,
DEG2RAD(-10), 0.1);
98 testPoseInverse(-7,2,
DEG2RAD(30), 0.1);
99 testPoseInverse(-7,2,
DEG2RAD(-30), 0.1);
Classes for serialization, sockets, ini-file manipulation, streams, list of properties-values, timewatch, extensions to STL.
CPose2D mean
The mean value.
BASE_IMPEXP CRandomGenerator randomGenerator
A static instance of a CRandomGenerator class, for use in single-thread applications.
void drawGaussian1DMatrix(MAT &matrix, const double mean=0, const double std=1)
Fills the given matrix with independent, 1D-normally distributed samples.
mrpt::math::CMatrixDouble33 cov
The 3x3 covariance matrix.
A numeric matrix of compile-time fixed size.
This base provides a set of functions for maths stuff.
static void func_inverse(const CArrayDouble< 3 > &x, const double &dummy, CArrayDouble< 3 > &Y)
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
Eigen::Matrix< typename MATRIX::Scalar, MATRIX::ColsAtCompileTime, MATRIX::ColsAtCompileTime > cov(const MATRIX &v)
Computes the covariance matrix from a list of samples in an NxM matrix, where each row is a sample...
void inverse(CPosePDF &o) const MRPT_OVERRIDE
Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF.
void testPoseInverse(double x, double y, double phi, double std_scale)
static CPosePDFGaussian generateRandomPose2DPDF(double x, double y, double phi, double std_scale)
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
TEST_F(PosePDFGaussTests, Inverse)
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLdouble GLdouble GLdouble r
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...