This class can be used to make partitions on a map/graph build from observations taken at some poses/nodes.
Definition at line 33 of file CIncrementalMapPartitioner.h.
#include <mrpt/slam/CIncrementalMapPartitioner.h>
Classes | |
struct | TOptions |
Configuration of the algorithm: More... | |
Public Member Functions | |
CIncrementalMapPartitioner () | |
Constructor: More... | |
virtual | ~CIncrementalMapPartitioner () |
Destructor: More... | |
void | clear () |
Initialization: Start of a new map, new internal matrices,... More... | |
unsigned int | addMapFrame (const mrpt::obs::CSensoryFramePtr &frame, const mrpt::poses::CPosePDFPtr &robotPose2D) |
Add a new frame to the current graph: call this method each time a new observation is added to the map/graph, and whenever you want to update the partitions, call "updatePartitions". More... | |
unsigned int | addMapFrame (const mrpt::obs::CSensoryFramePtr &frame, const mrpt::poses::CPose3DPDFPtr &robotPose3D) |
Add a new frame to the current graph: call this method each time a new observation is added to the map/graph, and whenever you want to update the partitions, call "updatePartitions". More... | |
unsigned int | addMapFrame (const mrpt::obs::CSensoryFrame &frame, const mrpt::poses::CPose3DPDF &robotPose3D) |
Add a new frame to the current graph: call this method each time a new observation is added to the map/graph, and whenever you want to update the partitions, call "updatePartitions". More... | |
void | updatePartitions (std::vector< vector_uint > &partitions) |
This method executed only the neccesary part of the partition to take into account the lastest added frames. More... | |
unsigned int | getNodesCount () |
It returns the nodes count currently in the internal map/graph. More... | |
void | removeSetOfNodes (vector_uint indexesToRemove, bool changeCoordsRef=true) |
Remove the stated nodes (0-based indexes) from the internal lists. More... | |
template<class MATRIX > | |
void | getAdjacencyMatrix (MATRIX &outMatrix) const |
Returns a copy of the internal adjacency matrix. More... | |
const mrpt::math::CMatrixDouble & | getAdjacencyMatrix () const |
Returns a const ref to the internal adjacency matrix. More... | |
const mrpt::maps::CSimpleMap * | getSequenceOfFrames () const |
Read-only access to the sequence of Sensory Frames. More... | |
mrpt::maps::CSimpleMap * | getSequenceOfFrames () |
Access to the sequence of Sensory Frames. More... | |
void | markAllNodesForReconsideration () |
Mark all nodes for reconsideration in the next call to "updatePartitions", instead of considering just those affected by aditions of new arcs. More... | |
void | changeCoordinatesOrigin (const mrpt::poses::CPose3D &newOrigin) |
Change the coordinate origin of all stored poses, for consistency with future new poses to enter in the system. More... | |
void | changeCoordinatesOriginPoseIndex (const unsigned &newOriginPose) |
Change the coordinate origin of all stored poses, for consistency with future new poses to enter in the system; the new origin is given by the index of the pose to become the new origin. More... | |
void | getAs3DScene (mrpt::opengl::CSetOfObjectsPtr &objs, const std::map< uint32_t, int64_t > *renameIndexes=NULL) const |
Returns a 3D representation of the current state: poses & links between them. More... | |
Static Public Member Functions | |
static void | printf_debug (const char *frmt,...) |
Sends a formated text to "debugOut" if not NULL, or to cout otherwise. More... | |
Public Attributes | |
mrpt::slam::CIncrementalMapPartitioner::TOptions | options |
Protected Member Functions | |
CSerializable virtual methods | |
void | writeToStream (mrpt::utils::CStream &out, int *getVersion) const MRPT_OVERRIDE |
void | readFromStream (mrpt::utils::CStream &in, int version) MRPT_OVERRIDE |
Private Attributes | |
mrpt::maps::CSimpleMap | m_individualFrames |
std::deque< mrpt::maps::CMultiMetricMap > | m_individualMaps |
mrpt::math::CMatrixD | m_A |
Adjacency matrix. More... | |
std::vector< vector_uint > | m_last_partition |
The last partition. More... | |
bool | m_last_last_partition_are_new_ones |
This will be true after adding new observations, and before an "updatePartitions" is invoked. More... | |
std::vector< uint8_t > | m_modified_nodes |
The list of keyframes to consider in the next update. More... | |
RTTI stuff <br> | |
typedef CIncrementalMapPartitionerPtr | SmartPtr |
static mrpt::utils::CLASSINIT | _init_CIncrementalMapPartitioner |
static mrpt::utils::TRuntimeClassId | classCIncrementalMapPartitioner |
static const mrpt::utils::TRuntimeClassId * | classinfo |
static const mrpt::utils::TRuntimeClassId * | _GetBaseClass () |
virtual const mrpt::utils::TRuntimeClassId * | GetRuntimeClass () const MRPT_OVERRIDE |
virtual mrpt::utils::CObject * | duplicate () const MRPT_OVERRIDE |
static mrpt::utils::CObject * | CreateObject () |
static CIncrementalMapPartitionerPtr | Create () |
A typedef for the associated smart pointer
Definition at line 36 of file CIncrementalMapPartitioner.h.
mrpt::slam::CIncrementalMapPartitioner::CIncrementalMapPartitioner | ( | ) |
Constructor:
|
virtual |
Destructor:
|
staticprotected |
unsigned int mrpt::slam::CIncrementalMapPartitioner::addMapFrame | ( | const mrpt::obs::CSensoryFrame & | frame, |
const mrpt::poses::CPose3DPDF & | robotPose3D | ||
) |
Add a new frame to the current graph: call this method each time a new observation is added to the map/graph, and whenever you want to update the partitions, call "updatePartitions".
frame | The sensed data |
robotPose | An estimation of the robot global 2D pose. |
unsigned int mrpt::slam::CIncrementalMapPartitioner::addMapFrame | ( | const mrpt::obs::CSensoryFramePtr & | frame, |
const mrpt::poses::CPose3DPDFPtr & | robotPose3D | ||
) |
Add a new frame to the current graph: call this method each time a new observation is added to the map/graph, and whenever you want to update the partitions, call "updatePartitions".
frame | The sensed data |
robotPose | An estimation of the robot global 2D pose. |
unsigned int mrpt::slam::CIncrementalMapPartitioner::addMapFrame | ( | const mrpt::obs::CSensoryFramePtr & | frame, |
const mrpt::poses::CPosePDFPtr & | robotPose2D | ||
) |
Add a new frame to the current graph: call this method each time a new observation is added to the map/graph, and whenever you want to update the partitions, call "updatePartitions".
frame | The sensed data |
robotPose | An estimation of the robot global 2D pose. |
void mrpt::slam::CIncrementalMapPartitioner::changeCoordinatesOrigin | ( | const mrpt::poses::CPose3D & | newOrigin | ) |
Change the coordinate origin of all stored poses, for consistency with future new poses to enter in the system.
void mrpt::slam::CIncrementalMapPartitioner::changeCoordinatesOriginPoseIndex | ( | const unsigned & | newOriginPose | ) |
Change the coordinate origin of all stored poses, for consistency with future new poses to enter in the system; the new origin is given by the index of the pose to become the new origin.
void mrpt::slam::CIncrementalMapPartitioner::clear | ( | ) |
Initialization: Start of a new map, new internal matrices,...
|
static |
|
static |
|
virtual |
|
inline |
Returns a const ref to the internal adjacency matrix.
Definition at line 138 of file CIncrementalMapPartitioner.h.
|
inline |
Returns a copy of the internal adjacency matrix.
Definition at line 135 of file CIncrementalMapPartitioner.h.
void mrpt::slam::CIncrementalMapPartitioner::getAs3DScene | ( | mrpt::opengl::CSetOfObjectsPtr & | objs, |
const std::map< uint32_t, int64_t > * | renameIndexes = NULL |
||
) | const |
Returns a 3D representation of the current state: poses & links between them.
The previous contents of "objs" will be discarded
unsigned int mrpt::slam::CIncrementalMapPartitioner::getNodesCount | ( | ) |
It returns the nodes count currently in the internal map/graph.
|
virtual |
|
inline |
Access to the sequence of Sensory Frames.
Definition at line 149 of file CIncrementalMapPartitioner.h.
|
inline |
Read-only access to the sequence of Sensory Frames.
Definition at line 142 of file CIncrementalMapPartitioner.h.
void mrpt::slam::CIncrementalMapPartitioner::markAllNodesForReconsideration | ( | ) |
Mark all nodes for reconsideration in the next call to "updatePartitions", instead of considering just those affected by aditions of new arcs.
|
staticinherited |
Sends a formated text to "debugOut" if not NULL, or to cout otherwise.
Referenced by mrpt::math::CLevenbergMarquardtTempl< VECTORTYPE, USERPARAM >::execute().
|
protected |
void mrpt::slam::CIncrementalMapPartitioner::removeSetOfNodes | ( | vector_uint | indexesToRemove, |
bool | changeCoordsRef = true |
||
) |
Remove the stated nodes (0-based indexes) from the internal lists.
If changeCoordsRef is true, coordinates are changed to leave the first node at (0,0,0).
void mrpt::slam::CIncrementalMapPartitioner::updatePartitions | ( | std::vector< vector_uint > & | partitions | ) |
This method executed only the neccesary part of the partition to take into account the lastest added frames.
|
protected |
|
staticprotected |
Definition at line 36 of file CIncrementalMapPartitioner.h.
|
static |
Definition at line 36 of file CIncrementalMapPartitioner.h.
|
static |
Definition at line 36 of file CIncrementalMapPartitioner.h.
|
private |
Adjacency matrix.
Definition at line 177 of file CIncrementalMapPartitioner.h.
|
private |
Definition at line 173 of file CIncrementalMapPartitioner.h.
|
private |
Definition at line 174 of file CIncrementalMapPartitioner.h.
|
private |
This will be true after adding new observations, and before an "updatePartitions" is invoked.
Definition at line 183 of file CIncrementalMapPartitioner.h.
|
private |
The last partition.
Definition at line 180 of file CIncrementalMapPartitioner.h.
|
private |
The list of keyframes to consider in the next update.
Definition at line 186 of file CIncrementalMapPartitioner.h.
mrpt::slam::CIncrementalMapPartitioner::TOptions mrpt::slam::CIncrementalMapPartitioner::options |
Page generated by Doxygen 1.9.5 for MRPT 1.4.0 SVN: at Tue Dec 27 00:53:09 UTC 2022 |