10 #ifndef CINCREMENTALMAPPARTITIONER_H
11 #define CINCREMENTALMAPPARTITIONER_H
45 virtual ~CIncrementalMapPartitioner();
61 void loadFromConfigFile(
63 const std::string §ion);
67 void dumpToTextStream(
CStream &out)
const;
105 unsigned int addMapFrame(
const CSensoryFramePtr &frame,
const CPosePDFPtr &robotPose2D );
114 unsigned int addMapFrame(
const CSensoryFramePtr &frame,
const 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();
166 void changeCoordinatesOrigin(
const CPose3D &newOrigin );
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.
CSimpleMap m_individualFrames
El conjunto de los scans se guardan en un array:
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.
CMatrixD m_A
Adjacency matrix.
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.
Configuration of the algorithm:
This class allows loading and storing values and vectors of different types from a configuration text...
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...
std::vector< uint32_t > vector_uint
CMatrixTemplateNumeric< double > CMatrixDouble
Declares a matrix of double numbers (non serializable).
CSimpleMap * getSequenceOfFrames()
Access to the sequence of Sensory Frames.
This class stores a sequence of
pairs, thus a "metric map" can be t...
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...
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
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.
const CMatrixDouble & getAdjacencyMatrix() const
Returns a const ref to the internal adjacency matrix.
bool m_last_last_partition_are_new_ones
This will be true after adding new observations, and before an "updatePartitions" is invoked...
const CSimpleMap * getSequenceOfFrames() const
Read-only access to the sequence of Sensory Frames.
float minMahaDistForCorrespondence
Used in the computation of weights, default=2.0.
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
std::deque< mrpt::slam::CMultiMetricMap > m_individualMaps
Declares a class that represents a Probability Density Function (PDF) of a 3D pose (6D actually)...
This base class provides a common printf-like method to send debug information to std::cout...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
std::vector< uint8_t > m_modified_nodes
La lista de nodos que hay que tener en cuenta en la proxima actualizacion: