Interface for implementing graphSLAM optimizer classes.
Class should provide a generic interface from which real optimizers should inherit so that they abide to the necessary method calls used in the CGraphSlamEngine class. For an example of inheriting from this class see CLevMarqGSO.
Definition at line 43 of file CGraphSlamOptimizer.h.
#include <mrpt/graphslam/interfaces/CGraphSlamOptimizer.h>
Public Types | |
typedef GRAPH_t::constraint_t | constraint_t |
Handy typedefs. More... | |
typedef GRAPH_t::constraint_t::type_value | pose_t |
Public Member Functions | |
CGraphSlamOptimizer () | |
~CGraphSlamOptimizer () | |
virtual bool | updateState (mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation)=0 |
Generic method for fetching the incremental action/observation readings from the calling function. More... | |
virtual bool | justFullyOptimizedGraph () const |
Used by the caller to query for possible full graph optimization on the latest optimizer run. More... | |
virtual void | setWindowManagerPtr (mrpt::graphslam::CWindowManager *win_manager) |
Fetch a CWindowManager pointer. More... | |
virtual void | setCriticalSectionPtr (std::mutex *graph_section) |
Fetch a std::mutex for locking the GRAPH_T resource. More... | |
virtual void | initializeVisuals () |
Initialize visual objects in CDisplayWindow (e.g. More... | |
virtual void | updateVisuals () |
Update the relevant visual features in CDisplayWindow. More... | |
virtual void | notifyOfWindowEvents (const std::map< std::string, bool > &events_occurred) |
Get a list of the window events that happened since the last call. More... | |
virtual void | loadParams (const std::string &source_fname) |
Load the necessary for the decider/optimizer configuration parameters. More... | |
virtual void | printParams () const |
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way. More... | |
virtual void | getDescriptiveReport (std::string *report_str) const |
Fill the provided string with a detailed report of the decider/optimizer state. More... | |
virtual void | setGraphPtr (GRAPH_t *graph) |
Fetch the graph on which the decider/optimizer will work on. More... | |
virtual void | initializeLoggers (const std::string &name) |
Initialize the COutputLogger, CTimeLogger instances given the name of the decider/optimizer at hand. More... | |
virtual void | setClassName (const std::string &name) |
bool | isMultiRobotSlamClass () |
std::string | getClassName () const |
Protected Member Functions | |
virtual void | optimizeGraph ()=0 |
method called for optimizing the underlying graph. More... | |
virtual void | assertVisualsVars () |
Handy function for making all the visuals assertions in a compact manner. More... | |
Protected Attributes | |
GRAPH_t * | m_graph |
Pointer to the graph that is under construction. More... | |
std::mutex * | m_graph_section |
mrpt::utils::CTimeLogger | m_time_logger |
Time logger instance. More... | |
std::string | m_class_name |
Name of the class instance. More... | |
bool | is_mr_slam_class |
Boolean indicating if the current class can be used in multi-robot SLAM operations. More... | |
Visuals-related variables methods | |
mrpt::graphslam::CWindowManager * | m_win_manager |
Pointer to the CWindowManager object used to store visuals-related instances. More... | |
mrpt::gui::CDisplayWindow3D * | m_win |
Window to use. More... | |
mrpt::graphslam::CWindowObserver * | m_win_observer |
CWindowObserver object for monitoring various visual-oriented events. More... | |
bool | m_initialized_visuals |
Static Protected Attributes | |
static const std::string | header_sep |
Separator string to be used in debugging messages. More... | |
static const std::string | report_sep |
typedef GRAPH_t::constraint_t mrpt::graphslam::optimizers::CGraphSlamOptimizer< GRAPH_t >::constraint_t |
Handy typedefs.
Definition at line 50 of file CGraphSlamOptimizer.h.
typedef GRAPH_t::constraint_t::type_value mrpt::graphslam::optimizers::CGraphSlamOptimizer< GRAPH_t >::pose_t |
Definition at line 52 of file CGraphSlamOptimizer.h.
|
inline |
Definition at line 55 of file CGraphSlamOptimizer.h.
|
inline |
Definition at line 56 of file CGraphSlamOptimizer.h.
|
protectedvirtualinherited |
Handy function for making all the visuals assertions in a compact manner.
Definition at line 98 of file CRegistrationDeciderOrOptimizer_impl.h.
References ASSERTMSG_.
|
inlineinherited |
Definition at line 139 of file CRegistrationDeciderOrOptimizer.h.
References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_class_name.
|
virtualinherited |
Fill the provided string with a detailed report of the decider/optimizer state.
Report should include (part of) the following:
Reimplemented in mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_t >, and mrpt::graphslam::deciders::CEdgeRegistrationDecider< GRAPH_t >.
Definition at line 132 of file CRegistrationDeciderOrOptimizer_impl.h.
References MRPT_LOG_DEBUG_STREAM.
|
virtualinherited |
Initialize the COutputLogger, CTimeLogger instances given the name of the decider/optimizer at hand.
Definition at line 43 of file CRegistrationDeciderOrOptimizer_impl.h.
References MRPT_LOG_DEBUG_STREAM.
|
virtualinherited |
Initialize visual objects in CDisplayWindow (e.g.
add an object to scene).
std::exception | If the method is called without having first provided a CDisplayWindow3D* to the class instance |
Definition at line 91 of file CRegistrationDeciderOrOptimizer_impl.h.
|
inherited |
Definition at line 149 of file CRegistrationDeciderOrOptimizer_impl.h.
|
inlinevirtual |
Used by the caller to query for possible full graph optimization on the latest optimizer run.
Reimplemented in mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >.
Definition at line 74 of file CGraphSlamOptimizer.h.
|
virtualinherited |
Load the necessary for the decider/optimizer configuration parameters.
Definition at line 119 of file CRegistrationDeciderOrOptimizer_impl.h.
References MRPT_LOG_DEBUG_STREAM.
|
virtualinherited |
Get a list of the window events that happened since the last call.
Method in derived classes is automatically called from the CGraphSlamEngine_t instance. After that, decider/optimizer should just fetch the parameters that it is interested in.
Definition at line 112 of file CRegistrationDeciderOrOptimizer_impl.h.
References ASSERT_.
|
protectedpure virtual |
method called for optimizing the underlying graph.
Implemented in mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >.
|
virtualinherited |
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way.
Definition at line 126 of file CRegistrationDeciderOrOptimizer_impl.h.
References MRPT_LOG_DEBUG_STREAM.
|
virtualinherited |
Definition at line 59 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch a std::mutex for locking the GRAPH_T resource.
Handy for realising multithreading in the derived classes.
Definition at line 82 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch the graph on which the decider/optimizer will work on.
Definition at line 140 of file CRegistrationDeciderOrOptimizer_impl.h.
References MRPT_LOG_DEBUG_STREAM.
|
virtualinherited |
Fetch a CWindowManager pointer.
CWindowManager instance should contain a CDisplayWindow3D* and, optionally, a CWindowObserver pointer so that interaction with the window is possible
Definition at line 68 of file CRegistrationDeciderOrOptimizer_impl.h.
References ASSERT_, and mrpt::graphslam::CWindowManager::win.
|
pure virtual |
Generic method for fetching the incremental action/observation readings from the calling function.
Implementations of this interface should use (part of) the specified parameters and call the optimizeGraph function if the decision is to optimize the provided graph
Implements mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_t >.
Implemented in mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::optimizers::CEmptyGSO< GRAPH_T >.
|
virtualinherited |
Update the relevant visual features in CDisplayWindow.
std::exception | If the method is called without having first provided a CDisplayWindow3D* to the class instance |
Definition at line 106 of file CRegistrationDeciderOrOptimizer_impl.h.
References ASSERT_.
|
staticprotectedinherited |
Separator string to be used in debugging messages.
Definition at line 175 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Boolean indicating if the current class can be used in multi-robot SLAM operations.
Definition at line 171 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Name of the class instance.
Definition at line 167 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Pointer to the graph that is under construction.
Definition at line 146 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Definition at line 147 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Definition at line 161 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Time logger instance.
Definition at line 165 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Window to use.
Definition at line 157 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Pointer to the CWindowManager object used to store visuals-related instances.
Definition at line 155 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
CWindowObserver object for monitoring various visual-oriented events.
Definition at line 160 of file CRegistrationDeciderOrOptimizer.h.
|
staticprotectedinherited |
Definition at line 176 of file CRegistrationDeciderOrOptimizer.h.
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019 |