00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef CPOSEPDF_H
00029 #define CPOSEPDF_H
00030
00031 #include <mrpt/utils/CSerializable.h>
00032 #include <mrpt/poses/CPose2D.h>
00033
00034 namespace mrpt
00035 {
00036 namespace poses
00037 {
00038
00039 DEFINE_SERIALIZABLE_PRE( CPosePDF )
00040
00041
00052 class MRPTDLLIMPEXP CPosePDF : public mrpt::utils::CSerializable
00053 {
00054 DEFINE_VIRTUAL_SERIALIZABLE( CPosePDF )
00055
00056 public:
00059 double getEstimatedCovarianceEntropy();
00060
00063 virtual CPose2D getEstimatedPose() const = 0 ;
00064
00067 virtual math::CMatrixD getEstimatedCovariance() const = 0;
00068
00071 virtual void copyFrom(const CPosePDF &o) = 0;
00072
00075 virtual void saveToTextFile(const std::string &file) const = 0;
00076
00080 virtual void changeCoordinatesReference( const CPose2D &newReferenceBase ) = 0;
00081
00084 virtual void drawSingleSample( CPose2D &outPart ) const = 0;
00085
00088 virtual void drawManySamples( size_t N, std::vector<vector_double> & outSamples ) const = 0;
00089
00095 virtual void bayesianFusion( CPosePDF &p1, CPosePDF &p2, const double&minMahalanobisDistToDrop = 0) = 0 ;
00096
00099 virtual void inverse(CPosePDF &o) const = 0;
00100
00101
00102 };
00103
00104
00105 }
00106 }
00107
00108 #endif