class mrpt::slam::CIncrementalMapPartitioner
Overview
Finds partitions in metric maps based on N-cut graph partition theory.
#include <mrpt/slam/CIncrementalMapPartitioner.h> class CIncrementalMapPartitioner: public mrpt::system::COutputLogger, public mrpt::serialization::CSerializable { public: // typedefs typedef std::shared_ptr<mrpt::slam ::CIncrementalMapPartitioner> Ptr; typedef std::shared_ptr<const mrpt::slam ::CIncrementalMapPartitioner> ConstPtr; typedef std::unique_ptr<mrpt::slam ::CIncrementalMapPartitioner> UniquePtr; typedef std::unique_ptr<const mrpt::slam ::CIncrementalMapPartitioner> ConstUniquePtr; // structs struct TOptions; // fields static constexpr const char* className = "mrpt::slam" "::" "CIncrementalMapPartitioner"; TOptions options; // construction CIncrementalMapPartitioner(); // methods static constexpr auto getClassName(); static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); static std::shared_ptr<CObject> CreateObject(); template <typename... Args> static Ptr Create(Args&&... args); template <typename Alloc, typename... Args> static Ptr CreateAlloc( const Alloc& alloc, Args&&... args ); template <typename... Args> static UniquePtr CreateUnique(Args&&... args); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; virtual mrpt::rtti::CObject* clone() const; void clear(); uint32_t addMapFrame(const mrpt::obs::CSensoryFrame& frame, const mrpt::poses::CPose3DPDF& robotPose3D); void updatePartitions(std::vector<std::vector<uint32_t>>& partitions); size_t getNodesCount(); void removeSetOfNodes(std::vector<uint32_t> indexesToRemove, bool changeCoordsRef = true); void changeCoordinatesOrigin(const mrpt::poses::CPose3D& newOrigin); void changeCoordinatesOriginPoseIndex(unsigned int newOriginPose); void setSimilarityMethod(similarity_method_t method); void setSimilarityMethod(similarity_func_t func); void getAs3DScene(mrpt::viz::CSetOfObjects::Ptr& objs, const std::map<uint32_t, int64_t>* renameIndexes = nullptr) const; template <class MATRIX> void getAdjacencyMatrix(MATRIX& outMatrix) const; const mrpt::math::CMatrixDouble& getAdjacencyMatrix() const; const mrpt::maps::CSimpleMap* getSequenceOfFrames() const; mrpt::maps::CSimpleMap* getSequenceOfFrames(); };
Inherited Members
public: // typedefs typedef std::shared_ptr<CObject> Ptr; typedef std::shared_ptr<const CObject> ConstPtr; typedef std::unique_ptr<CObject> UniquePtr; typedef std::unique_ptr<const CObject> ConstUniquePtr; typedef std::shared_ptr<CSerializable> Ptr; typedef std::shared_ptr<const CSerializable> ConstPtr; // structs struct TMsg; // fields bool logging_enable_console_output {true}; bool logging_enable_keep_record {false}; // methods void logStr(const VerbosityLevel level, std::string_view msg_str) const; void logFmt(const VerbosityLevel level, const char* fmt, ...) const; void void logCond(const VerbosityLevel level, bool cond, const std::string& msg_str) const; void setLoggerName(const std::string& name); std::string getLoggerName() const; void setVerbosityLevel(const VerbosityLevel level); void setVerbosityLevelForCallbacks(const VerbosityLevel level); void setMinLoggingLevel(const VerbosityLevel level); VerbosityLevel getMinLoggingLevel() const; VerbosityLevel getMinLoggingLevelForCallbacks() const; bool isLoggingLevelVisible(VerbosityLevel level) const; void getLogAsString(std::string& log_contents) const; std::string getLogAsString() const; void writeLogToFile(const std::optional<std::string>& fname_in = std::nullopt) const; void dumpLogToConsole() const; std::string getLoggerLastMsg() const; void getLoggerLastMsg(std::string& msg_str) const; void loggerReset(); void logRegisterCallback(output_logger_callback_t userFunc); bool logDeregisterCallback(output_logger_callback_t userFunc); COutputLogger& operator = (const COutputLogger&); COutputLogger& operator = (COutputLogger&&); static std::array<mrpt::system::ConsoleForegroundColor, NUMBER_OF_VERBOSITY_LEVELS>& logging_levels_to_colors(); static const std::array<const char*, NUMBER_OF_VERBOSITY_LEVELS>& logging_levels_to_names(); mrpt::rtti::CObject::Ptr duplicateGetSmartPtr() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic(); virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; virtual CObject* clone() const = 0; virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const; static const mrpt::rtti::TRuntimeClassId& GetRuntimeClassIdStatic();
Typedefs
typedef std::shared_ptr<mrpt::slam ::CIncrementalMapPartitioner> Ptr
A type for the associated smart pointer.
Fields
TOptions options
Algorithm parameters.
Construction
CIncrementalMapPartitioner()
ctor
Methods
virtual const mrpt::rtti::TRuntimeClassId* GetRuntimeClass() const
Returns information about the class of an object in runtime.
virtual mrpt::rtti::CObject* clone() const
Returns a deep copy (clone) of the object, indepently of its class.
uint32_t addMapFrame(const mrpt::obs::CSensoryFrame& frame, const mrpt::poses::CPose3DPDF& robotPose3D)
Insert a new keyframe to the graph.
Call this method each time a new observation is added to the map/graph. Afterwards, call updatePartitions() to get the updated partitions.
Parameters:
frame |
The sensed data |
robotPose |
An estimation of the robot global pose. |
Returns:
The index of the new pose in the graph, which can be used to refer to this pose in the future.
See also:
void updatePartitions(std::vector<std::vector<uint32_t>>& partitions)
Recalculate the map/graph partitions.
See also:
size_t getNodesCount()
Get the total node count currently in the internal map/graph.
void removeSetOfNodes( std::vector<uint32_t> indexesToRemove, bool changeCoordsRef = true )
Remove a list of keyframes, with indices as returned by addMapFrame()
Parameters:
changeCoordsRef |
If true, coordinates are changed to leave the first node at (0,0,0). |
void changeCoordinatesOriginPoseIndex(unsigned int newOriginPose)
The new origin is given by the index of the pose that is to become the new origin.
void setSimilarityMethod(similarity_method_t method)
Select the similarity method to use for newly inserted keyframes.
void setSimilarityMethod(similarity_func_t func)
Sets a custom function for the similarity of new keyframes.
void getAs3DScene( mrpt::viz::CSetOfObjects::Ptr& objs, const std::map<uint32_t, int64_t>* renameIndexes = nullptr ) const
Return a 3D representation of the graph: poses & links between them.
The previous contents of “objs” will be discarded
template <class MATRIX> void getAdjacencyMatrix(MATRIX& outMatrix) const
Return a copy of the adjacency matrix.
const mrpt::math::CMatrixDouble& getAdjacencyMatrix() const
Return a const ref to the internal adjacency matrix.
const mrpt::maps::CSimpleMap* getSequenceOfFrames() const
Read-only access to the sequence of Sensory Frames.
mrpt::maps::CSimpleMap* getSequenceOfFrames()
Access to the sequence of Sensory Frames.