10 #ifndef CINCREMENTALMAPPARTITIONER_H 11 #define CINCREMENTALMAPPARTITIONER_H 23 namespace mrpt {
namespace slam {
31 public
mrpt::utils::COutputLogger,
32 public
mrpt::utils::CSerializable
53 void loadFromConfigFile(
111 unsigned int addMapFrame(
112 const mrpt::obs::CSensoryFramePtr &frame,
113 const mrpt::poses::CPosePDFPtr &robotPose2D);
114 unsigned int addMapFrame(
115 const mrpt::obs::CSensoryFramePtr &frame,
116 const mrpt::poses::CPose3DPDFPtr &robotPose3D);
117 unsigned int addMapFrame(
127 void updatePartitions(std::vector<vector_uint> &partitions);
132 unsigned int getNodesCount();
140 void removeSetOfNodes(
vector_uint indexesToRemove,
bool changeCoordsRef=
true);
143 template <
class MATRIX>
153 return &m_individualFrames;
161 return &m_individualFrames;
168 void markAllNodesForReconsideration();
179 void changeCoordinatesOriginPoseIndex(
const unsigned &newOriginPose);
188 mrpt::opengl::CSetOfObjectsPtr &objs,
189 const std::map< uint32_t, int64_t > *renameIndexes = NULL
void getAdjacencyMatrix(MATRIX &outMatrix) const
Return a copy of the internal adjacency matrix.
float partitionThreshold
The partition threshold for bisection in range [0,2], default=1.0.
std::deque< mrpt::maps::CMultiMetricMap > m_individualMaps
mrpt::maps::CSimpleMap m_individualFrames
This class is a "CSerializable" wrapper for "CMatrixTemplateNumeric<double>".
std::vector< uint32_t > vector_uint
mrpt::math::CMatrixD m_A
Adjacency matrix.
This class stores a sequence of <Probabilistic Pose,SensoryFrame> pairs, thus a "metric map" can be t...
The virtual base class which provides a unified interface for all persistent objects in MRPT...
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
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 clear()
Clear the contents of this container.
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...
const mrpt::math::CMatrixDouble & getAdjacencyMatrix() const
Return a const ref to the internal adjacency matrix.
Declares a class for storing a "sensory frame", a set of "observations" taken by the robot approximat...
GLsizei const GLchar ** string
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
bool m_last_last_partition_are_new_ones
This will be true after adding new observations, and before an "updatePartitions" is invoked...
GLsizei GLsizei GLchar * source
float minMahaDistForCorrespondence
#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)...
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
const mrpt::maps::CSimpleMap * getSequenceOfFrames() const
Read-only access to the sequence of Sensory Frames.
std::vector< uint8_t > m_modified_nodes
The list of keyframes to consider in the next update.