Interface for implementing edge registration classes.
CEdgeRegistrationDecider provides the basic methods that have to exist in every edge registration decider class. For an example of inheriting from this class see CICPCriteriaERD.
Definition at line 42 of file CEdgeRegistrationDecider.h.
#include <mrpt/graphslam/interfaces/CEdgeRegistrationDecider.h>
Public Types | |
typedef mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T > | parent |
Handy typedefs. More... | |
typedef GRAPH_T::constraint_t | constraint_t |
type of graph constraints More... | |
typedef GRAPH_T::constraint_t::type_value | pose_t |
type of underlying poses (2D/3D). More... | |
Public Member Functions | |
CEdgeRegistrationDecider () | |
Default class constructor. More... | |
virtual | ~CEdgeRegistrationDecider () |
Default class destructor. More... | |
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 void | getEdgesStats (std::map< std::string, int > *edge_type_to_num) const |
Fill the given map with the type of registered edges as well as the corresponding number of registration of each edge. More... | |
virtual bool | justInsertedLoopClosure () const |
Used by the caller to query for possible loop closures in the last edge registration procedure. 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 | 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 | 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 | registerNewEdge (const mrpt::utils::TNodeID &from, const mrpt::utils::TNodeID &to, const constraint_t &rel_edge) |
Register a new constraint/edge in the current graph. More... | |
virtual void | assertVisualsVars () |
Handy function for making all the visuals assertions in a compact manner. More... | |
Registration criteria checks | |
Check whether a new edge should be registered in the graph. If condition(s) for edge registration is satisfied, method should call the registerNewEdge method. | |
virtual void | checkRegistrationCondition (mrpt::utils::TNodeID from, mrpt::utils::TNodeID to) |
virtual void | checkRegistrationCondition (const std::set< mrpt::utils::TNodeID > &) |
Protected Attributes | |
bool | m_just_inserted_lc |
bool | m_override_registered_nodes_check |
Indicates whether the ERD implementation expects, at most one single node to be registered, between successive calls to the updateState method. More... | |
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 = std::string(80, '-') |
Separator string to be used in debugging messages. More... | |
static const std::string | report_sep = std::string(2, '\n') |
typedef GRAPH_T::constraint_t mrpt::graphslam::deciders::CEdgeRegistrationDecider< GRAPH_T >::constraint_t |
type of graph constraints
Definition at line 51 of file CEdgeRegistrationDecider.h.
typedef mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T> mrpt::graphslam::deciders::CEdgeRegistrationDecider< GRAPH_T >::parent |
typedef GRAPH_T::constraint_t::type_value mrpt::graphslam::deciders::CEdgeRegistrationDecider< GRAPH_T >::pose_t |
type of underlying poses (2D/3D).
Definition at line 53 of file CEdgeRegistrationDecider.h.
CEdgeRegistrationDecider::CEdgeRegistrationDecider | ( | ) |
Default class constructor.
Definition at line 14 of file CEdgeRegistrationDecider_impl.h.
|
virtual |
Default class destructor.
Definition at line 20 of file CEdgeRegistrationDecider_impl.h.
|
protectedvirtualinherited |
Handy function for making all the visuals assertions in a compact manner.
Definition at line 87 of file CRegistrationDeciderOrOptimizer_impl.h.
|
inlineprotectedvirtual |
Definition at line 92 of file CEdgeRegistrationDecider.h.
|
inlineprotectedvirtual |
Definition at line 95 of file CEdgeRegistrationDecider.h.
|
inlineinherited |
Definition at line 138 of file CRegistrationDeciderOrOptimizer.h.
|
virtual |
Fill the provided string with a detailed report of the decider/optimizer state.
Report should include (part of) the following:
Reimplemented from mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 23 of file CEdgeRegistrationDecider_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport().
|
inlinevirtual |
Fill the given map with the type of registered edges as well as the corresponding number of registration of each edge.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 74 of file CEdgeRegistrationDecider.h.
|
virtualinherited |
Initialize the COutputLogger, CTimeLogger instances given the name of the decider/optimizer at hand.
Definition at line 38 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::CICPCriteriaERD(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::CLevMarqGSO(), and mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::CLoopCloserERD().
|
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 |
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 81 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initializeVisuals().
|
inherited |
Definition at line 132 of file CRegistrationDeciderOrOptimizer_impl.h.
|
inlinevirtual |
Used by the caller to query for possible loop closures in the last edge registration procedure.
Definition at line 79 of file CEdgeRegistrationDecider.h.
|
virtualinherited |
Load the necessary for the decider/optimizer configuration parameters.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >, mrpt::graphslam::deciders::CFixedIntervalsNRD< GRAPH_T >, and mrpt::graphslam::deciders::CRangeScanEdgeRegistrationDecider< GRAPH_T >.
Definition at line 105 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::loadParams(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::loadParams().
|
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.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 99 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::notifyOfWindowEvents(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::notifyOfWindowEvents().
|
virtualinherited |
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >, mrpt::graphslam::deciders::CFixedIntervalsNRD< GRAPH_T >, and mrpt::graphslam::deciders::CRangeScanEdgeRegistrationDecider< GRAPH_T >.
Definition at line 111 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::printParams(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::printParams().
|
protectedvirtual |
Register a new constraint/edge in the current graph.
Implementations of this class should provide a wrapper around GRAPH_T::insertEdge method.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >, and mrpt::graphslam::deciders::CEmptyERD< GRAPH_T >.
Definition at line 32 of file CEdgeRegistrationDecider_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::registerNewEdge().
|
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.
|
virtualinherited |
Fetch a CWindowManager pointer.
CWindowManager instance should contain a CDisplayWindow3D* and, optionally, a CWindowObserver pointer so that interaction with the window is possible
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >.
Definition at line 61 of file CRegistrationDeciderOrOptimizer_impl.h.
|
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 checkRegistrationCondition to check for potential Edge registration
Implements mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >.
Implemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >, and mrpt::graphslam::deciders::CEmptyERD< 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 |
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 94 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateVisuals().
|
staticprotectedinherited |
Separator string to be used in debugging messages.
Definition at line 175 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport().
|
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.
Referenced by mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_t >::getClassName().
|
protectedinherited |
Pointer to the graph that is under construction.
Definition at line 146 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForLoopClosures(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getNearbyNodesOf(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getNearbyNodesOf(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::registerNewEdge(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateState(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateState(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().
|
protectedinherited |
Definition at line 147 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::optimizeGraph().
|
protectedinherited |
Definition at line 161 of file CRegistrationDeciderOrOptimizer.h.
|
protected |
Definition at line 108 of file CEdgeRegistrationDecider.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CEdgeRegistrationDecider< GRAPH_t >::justInsertedLoopClosure(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateState().
|
protected |
Indicates whether the ERD implementation expects, at most one single node to be registered, between successive calls to the updateState method.
By default set to false.
Definition at line 115 of file CEdgeRegistrationDecider.h.
|
protectedinherited |
Time logger instance.
Definition at line 165 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().
|
protectedinherited |
Window to use.
Definition at line 157 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::fitGraphInView(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::toggleLaserScansVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleOptDistanceVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().
|
protectedinherited |
Pointer to the CWindowManager object used to store visuals-related instances.
Definition at line 155 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::toggleLaserScansVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization().
|
protectedinherited |
CWindowObserver object for monitoring various visual-oriented events.
Definition at line 160 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization().
|
staticprotectedinherited |
Definition at line 176 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport().
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 |