32 mrpt::math::TPose3D, mrpt::bayes::particle_storage_mode::VALUE>,
35 mrpt::bayes::CParticleFilterData<
37 mrpt::bayes::particle_storage_mode::VALUE>::CParticleList>
105 std::vector<mrpt::math::CVectorDouble>& outSamples)
const override;
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.
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")
std::tuple< cov_mat_t, type_value > getCovarianceAndMean() const override
Returns an estimate of the pose covariance matrix (6x6 cov matrix) and the mean, both at once...
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...
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.
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void resetUniform(const mrpt::math::TPose3D &corner_min, const mrpt::math::TPose3D &corner_max, const int particlesCount=-1)
Reset the PDF to an uniformly distributed one, inside of the defined "cube".
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...