10 #ifndef CINCREMENTALMAPPARTITIONER_H
11 #define CINCREMENTALMAPPARTITIONER_H
45 virtual ~CIncrementalMapPartitioner();
61 void loadFromConfigFile(
63 const std::string §ion);
105 unsigned int addMapFrame(
const mrpt::obs::CSensoryFramePtr &frame,
const mrpt::poses::CPosePDFPtr &robotPose2D );
114 unsigned int addMapFrame(
const mrpt::obs::CSensoryFramePtr &frame,
const mrpt::poses::CPose3DPDFPtr &robotPose3D );
129 void updatePartitions( std::vector<vector_uint> &partitions );
133 unsigned int getNodesCount();
138 void removeSetOfNodes(
vector_uint indexesToRemove,
bool changeCoordsRef =
true);
141 template <
class MATRIX>
151 return &m_individualFrames;
158 return &m_individualFrames;
163 void markAllNodesForReconsideration();
169 void changeCoordinatesOriginPoseIndex(
const unsigned &newOriginPose );
175 mrpt::opengl::CSetOfObjectsPtr &objs,
176 const std::map< uint32_t, int64_t > *renameIndexes = NULL
float partitionThreshold
The partition threshold for bisection in range [0,2], default=1.0.
bool forceBisectionOnly
If set to true (default), 1 or 2 clusters will be returned.
std::deque< mrpt::maps::CMultiMetricMap > m_individualMaps
mrpt::maps::CSimpleMap m_individualFrames
This class is a "CSerializable" wrapper for "CMatrixTemplateNumeric".
std::vector< uint32_t > vector_uint
mrpt::math::CMatrixD m_A
Adjacency matrix.
const mrpt::maps::CSimpleMap * getSequenceOfFrames() const
Read-only access to the sequence of Sensory Frames.
This class stores a sequence of
pairs, thus a "metric map" can be t...
The virtual base class which provides a unified interface for all persistent objects in MRPT...
bool useMapMatching
If set to true (default), adjacency matrix is computed from maps matching; otherwise, the method CObservation::likelihoodWith will be called directly from the SFs.
void getAdjacencyMatrix(MATRIX &outMatrix) const
Returns a copy of the internal adjacency matrix.
float gridResolution
For the occupancy grid maps of each node, default=0.10.
const mrpt::math::CMatrixDouble & getAdjacencyMatrix() const
Returns a const ref to the internal adjacency matrix.
Configuration of the algorithm:
This class allows loading and storing values and vectors of different types from a configuration text...
mrpt::maps::CSimpleMap * getSequenceOfFrames()
Access to the sequence of Sensory Frames.
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
class BASE_IMPEXP CSerializable
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
std::vector< vector_uint > m_last_partition
The last partition.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
This class can be used to make partitions on a map/graph build from observations taken at some poses/...
int minimumNumberElementsEachCluster
If a partition leads to a cluster with less elements than this, it will be rejected even if had a goo...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
float minDistForCorrespondence
Used in the computation of weights, default=0.20.
bool m_last_last_partition_are_new_ones
This will be true after adding new observations, and before an "updatePartitions" is invoked...
float minMahaDistForCorrespondence
Used in the computation of weights, default=2.0.
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
Declares a class that represents a Probability Density Function (PDF) of a 3D pose (6D actually)...
std::vector< uint8_t > m_modified_nodes
The list of keyframes to consider in the next update.