9 #ifndef CPose3DPDFParticles_H 10 #define CPose3DPDFParticles_H 32 mrpt::math::TPose3D, mrpt::bayes::particle_storage_mode::VALUE>,
35 mrpt::bayes::CParticleFilterData<
37 mrpt::bayes::particle_storage_mode::VALUE>::CParticleList>
90 std::vector<mrpt::math::CVectorDouble>& outSamples)
const override;
void getCovarianceAndMean(mrpt::math::CMatrixDouble66 &cov, CPose3D &mean_point) const override
Returns an estimate of the pose covariance matrix (6x6 cov matrix) and the mean, both at once...
bool saveToTextFile(const std::string &file) const override
Save PDF's m_particles to a text file.
mrpt::math::TPose3D getMostLikelyParticle() const
Returns the particle with the highest weight.
CParticleList m_particles
The array of particles.
void drawManySamples(size_t N, std::vector< mrpt::math::CVectorDouble > &outSamples) const override
Draws a number of samples from the distribution, and saves as a list of 1x6 vectors, where each row contains a (x,y,phi) datum.
size_t particlesCount() const override
void append(CPose3DPDFParticles &o)
Appends (add to the list) a set of m_particles to the existing ones, and then normalize weights...
void getMean(CPose3D &mean_pose) const override
Returns an estimate of the pose, (the mean, or mathematical expectation of the PDF), computed as a weighted average over all m_particles.
A numeric matrix of compile-time fixed size.
void operator+=(const CPose3D &Ap)
Appends (pose-composition) a given pose "p" to each particle.
CPose3DPDFParticles(size_t M=1)
Constructor.
size_t size() const
Get the m_particles count (equivalent to "particlesCount")
GLsizei const GLchar ** string
This template class declares the array of particles and its internal data, managing some memory-relat...
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
void copyFrom(const CPose3DPDF &o) override
Copy operator, translating if necesary (for example, between m_particles and gaussian representations...
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void drawSingleSample(CPose3D &outPart) const override
Draws a single sample from the distribution (WARNING: weights are assumed to be normalized!) ...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
void bayesianFusion(const CPose3DPDF &p1, const CPose3DPDF &p2) override
Bayesian fusion.
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).
void changeCoordinatesReference(const CPose3D &newReferenceBase) override
this = p (+) this.
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 resetDeterministic(const mrpt::math::TPose3D &location, size_t particlesCount=0)
Reset the PDF to a single point: All m_particles will be set exactly to the supplied pose...
void inverse(CPose3DPDF &o) const override
Returns a new PDF such as: NEW_PDF = (0,0,0) - THIS_PDF.
mrpt::math::TPose3D getParticlePose(int i) const
Returns the pose of the i'th particle.
Declares a class that represents a Probability Density Function (PDF) of a 3D pose (6D actually)...
Declares a class that represents a Probability Density function (PDF) of a 3D pose.
A curiously recurring template pattern (CRTP) approach to providing the basic functionality of any CP...