28 #ifndef CLocalMetricHypothesis_H
29 #define CLocalMetricHypothesis_H
47 struct CSetOfObjectsPtr;
51 class CPose3DPDFParticles;
56 using namespace mrpt::slam;
74 metricMaps( mapsInitializers ),
111 synch::CCriticalSection m_lock;
123 std::vector<std::map<TPoseID,
double> > m_log_w_metric_history;
127 bool m_accumRobotMovementIsValid;
136 unsigned int pose2idx(
const TPoseID &
id)
const;
149 void getMeans( std::map< TPoseID, CPose3D > &outList )
const;
154 void getPathParticles( std::map< TPoseID, CPose3DPDFParticles > &outList )
const;
164 void getRelativePose(
175 void changeCoordinateOrigin(
const TPoseID &newOrigin );
178 void rebuildMetricMaps();
185 void clearRobotPoses();
188 const CPose3D * getCurrentPose(
const size_t &particleIdx)
const;
191 CPose3D * getCurrentPose(
const size_t &particleIdx);
211 void updateAreaFromLMH(
213 bool eraseSFsFromLMH =
false );
224 void prediction_and_update_pfAuxiliaryPFOptimal(
230 void prediction_and_update_pfOptimalProposal(
244 mutable std::vector<double> m_maxLikelihood;
248 mutable std::vector<CPose2D,Eigen::aligned_allocator<CPose2D> > m_movementDraws;
252 mutable unsigned int m_movementDrawsIdx;