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 40 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::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr 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 (mrpt::synch::CCriticalSection *graph_section) |
Fetch a mrpt::synch::CCriticalSection 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... | |
mrpt::synch::CCriticalSection * | 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 46 of file CGraphSlamOptimizer.h.
typedef GRAPH_t::constraint_t::type_value mrpt::graphslam::optimizers::CGraphSlamOptimizer< GRAPH_t >::pose_t |
Definition at line 47 of file CGraphSlamOptimizer.h.
|
inline |
Definition at line 50 of file CGraphSlamOptimizer.h.
|
inline |
Definition at line 51 of file CGraphSlamOptimizer.h.
|
protectedvirtualinherited |
Handy function for making all the visuals assertions in a compact manner.
Definition at line 87 of file CRegistrationDeciderOrOptimizer_impl.h.
References ASSERTMSG_.
|
inlineinherited |
Definition at line 138 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 116 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 38 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 81 of file CRegistrationDeciderOrOptimizer_impl.h.
|
inherited |
Definition at line 132 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 70 of file CGraphSlamOptimizer.h.
|
virtualinherited |
Load the necessary for the decider/optimizer configuration parameters.
Definition at line 105 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 99 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 111 of file CRegistrationDeciderOrOptimizer_impl.h.
References MRPT_LOG_DEBUG_STREAM.
|
virtualinherited |
Definition at line 52 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch a mrpt::synch::CCriticalSection for locking the GRAPH_T resource.
Handy for realising multithreading in the derived classes.
Definition at line 73 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch the graph on which the decider/optimizer will work on.
Definition at line 124 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 61 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 94 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.5.9 Git: 690a4699f Wed Apr 15 19:29:53 2020 +0200 at miƩ abr 15 19:30:12 CEST 2020 |