Main MRPT website > C++ reference for MRPT 1.5.7
List of all members | Classes | Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes
mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T > Class Template Reference

Detailed Description

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
class mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >

Levenberg-Marquardt non-linear graph slam optimization scheme.

Description

Current decider optimizes the graph according to the graphslam::optimize_spa_levmarq method. Refer to the latter for more details on the implementation.

.ini Configuration Parameters

The configuration parameters of the current decider class are listed below. These parameters are parsed from an external .ini configuration file from their respective section. If an optional parameter is not found a default value is used instead. If a mandatory/required parameter is not found a runtime error is raised. For a sample configuration file see $mrpt/share/mrpt/config_files/graphslam-engine/laser_odometry.ini (Modify $mrpt according to the path of your mrpt source directory).

Definition at line 126 of file CLevMarqGSO.h.

#include <mrpt/graphslam/GSO/CLevMarqGSO.h>

Inheritance diagram for mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >:
Inheritance graph

Classes

struct  GraphVisualizationParams
 struct for holding the graph visualization-related variables in a compact form More...
 
struct  OptimizationParams
 Struct for holding the optimization-related variables in a compact form. More...
 

Public Types

typedef GRAPH_T::constraint_t constraint_t
 Handy typedefs. More...
 
typedef GRAPH_T::constraint_t::type_value pose_t
 
typedef mrpt::math::CMatrixFixedNumeric< double, constraint_t::state_length, constraint_t::state_length > InfMat
 
typedef mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T > grandpa
 
typedef mrpt::graphslam::optimizers::CGraphSlamOptimizer< GRAPH_T > parent
 

Public Member Functions

 CLevMarqGSO ()
 
 ~CLevMarqGSO ()
 
bool updateState (mrpt::obs::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr observation)
 Generic method for fetching the incremental action/observation readings from the calling function. More...
 
void initializeVisuals ()
 Initialize visual objects in CDisplayWindow (e.g. More...
 
void updateVisuals ()
 Update the relevant visual features in CDisplayWindow. More...
 
void notifyOfWindowEvents (const std::map< std::string, bool > &events_occurred)
 Get a list of the window events that happened since the last call. More...
 
void loadParams (const std::string &source_fname)
 Load the necessary for the decider/optimizer configuration parameters. More...
 
void printParams () const
 Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way. More...
 
void getDescriptiveReport (std::string *report_str) const
 Fill the provided string with a detailed report of the decider/optimizer state. More...
 
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 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
 

Public Attributes

OptimizationParams opt_params
 Parameters relevant to the optimizatio nfo the graph. More...
 
GraphVisualizationParams viz_params
 Parameters relevant to the visualization of the graph. More...
 

Protected Types

enum  FullOptimizationPolicy { FOP_IGNORE_LC =0, FOP_USE_LC, FOP_TOTAL_NUM }
 Enumeration that defines the behaviors towards using or ignoring a newly added loop closure to fully optimize the graph. More...
 

Protected Member Functions

void _optimizeGraph (bool is_full_update=false)
 Optimize the given graph. More...
 
void optimizeGraph ()
 Wrapper around _optimizeGraph which first locks the section and then calls the _optimizeGraph method. More...
 
bool checkForLoopClosures ()
 Check if a loop closure edge was added in the graph. More...
 
bool checkForFullOptimization ()
 Decide whether to issue a full graph optimization. More...
 
void initGraphVisualization ()
 Initialize objects relateed to the Graph Visualization. More...
 
void updateGraphVisualization ()
 Called internally for updating the visualization scene for the graph building procedure. More...
 
void toggleGraphVisualization ()
 Toggle the graph visualization on and off. More...
 
void fitGraphInView ()
 Set the camera parameters of the CDisplayWindow3D so that the whole graph is viewed in the window. More...
 
void updateOptDistanceVisualization ()
 Update the position of the disk indicating the distance in which Levenberg-Marquardt graph optimization is executed. More...
 
void toggleOptDistanceVisualization ()
 toggle the optimization distance object on and off More...
 
void getNearbyNodesOf (std::set< mrpt::utils::TNodeID > *nodes_set, const mrpt::utils::TNodeID &cur_nodeID, double distance)
 Get a list of the nodeIDs whose position is within a certain distance to the specified nodeID. More...
 
virtual void assertVisualsVars ()
 Handy function for making all the visuals assertions in a compact manner. More...
 
void initOptDistanceVisualization ()
 Initialize the Disk/Sphere used for visualizing the optimization distance. More...
 
mrpt::opengl::CRenderizablePtr initOptDistanceVisualizationInternal (const mrpt::poses::CPose2D &p_unused)
 Setup the corresponding Disk/Sphere instance. More...
 
mrpt::opengl::CRenderizablePtr initOptDistanceVisualizationInternal (const mrpt::poses::CPose3D &p_unused)
 

Static Protected Member Functions

static void levMarqFeedback (const GRAPH_T &graph, const size_t iter, const size_t max_iter, const double cur_sq_error)
 Feedback of the Levenberg-Marquardt graph optimization procedure. More...
 

Protected Attributes

bool m_first_time_call
 
bool m_has_read_config
 
bool registered_new_node
 
bool m_autozoom_active
 
size_t m_last_total_num_of_nodes
 
mrpt::system::TThreadHandle m_thread_optimize
 
FullOptimizationPolicy m_optimization_policy
 Should I fully optimize the graph on loop closure? More...
 
bool m_just_fully_optimized_graph
 Indicates whether a full graph optimization was just issued. More...
 
size_t m_min_nodes_for_optimization
 Minimum number of nodes before we try optimizing the graph. More...
 
GRAPH_T * m_graph
 Pointer to the graph that is under construction. More...
 
mrpt::synch::CCriticalSectionm_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...
 
Smart Full-Optimization Command

Instead of issuing a full optimization every time a loop closure is detected, ignore current loop closure when enough consecutive loop closures have already been utilised.

This avoids the added computational cost that is needed for optimizing the graph without reducing the accuracy of the overall operation

size_t m_max_used_consec_lcs
 Number of maximum cosecutive loop closures that are allowed to be issued. More...
 
size_t m_curr_used_consec_lcs
 Number of consecutive loop closures that are currently registered. More...
 
size_t m_max_ignored_consec_lcs
 Number of consecutive loop closures to ignore after m_max_used_consec_lcs have already been issued. More...
 
size_t m_curr_ignored_consec_lcs
 Consecutive Loop Closures that have currently been ignored. More...
 
Visuals-related variables methods
mrpt::graphslam::CWindowManagerm_win_manager
 Pointer to the CWindowManager object used to store visuals-related instances. More...
 
mrpt::gui::CDisplayWindow3Dm_win
 Window to use. More...
 
mrpt::graphslam::CWindowObserverm_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')
 

Member Typedef Documentation

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
typedef GRAPH_T::constraint_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::constraint_t

Handy typedefs.

Definition at line 134 of file CLevMarqGSO.h.

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
typedef mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T> mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::grandpa

Definition at line 139 of file CLevMarqGSO.h.

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
typedef mrpt::math::CMatrixFixedNumeric<double, constraint_t::state_length, constraint_t::state_length> mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::InfMat

Definition at line 138 of file CLevMarqGSO.h.

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
typedef mrpt::graphslam::optimizers::CGraphSlamOptimizer<GRAPH_T> mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::parent

Definition at line 140 of file CLevMarqGSO.h.

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
typedef GRAPH_T::constraint_t::type_value mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::pose_t

Definition at line 135 of file CLevMarqGSO.h.

Member Enumeration Documentation

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
enum mrpt::graphslam::optimizers::CLevMarqGSO::FullOptimizationPolicy
protected

Enumeration that defines the behaviors towards using or ignoring a newly added loop closure to fully optimize the graph.

Enumerator
FOP_IGNORE_LC 
FOP_USE_LC 
FOP_TOTAL_NUM 

Definition at line 354 of file CLevMarqGSO.h.

Constructor & Destructor Documentation

template<class GRAPH_T >
mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::CLevMarqGSO ( )
template<class GRAPH_T >
mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::~CLevMarqGSO ( )

Definition at line 37 of file CLevMarqGSO_impl.h.

Member Function Documentation

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph ( bool  is_full_update = false)
protected
template<class GRAPH_T >
void mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::assertVisualsVars ( )
protectedvirtualinherited
template<class GRAPH_T >
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization ( )
protected
template<class GRAPH_T >
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForLoopClosures ( )
protected

Check if a loop closure edge was added in the graph.

Match the previously registered edges in the graph with the current. If there is a node difference in any new edge greater than LC_min_nodeid_diff (see .ini parameter) then new constraint is considered a Loop Closure

Returns
True if any of the newly added edges is considered a loop closure

Definition at line 459 of file CLevMarqGSO_impl.h.

References mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::last_pair_nodes_to_edge, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::LC_min_nodeid_diff, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_graph, MRPT_END, MRPT_START, and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::opt_params.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization().

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::fitGraphInView ( )
inlineprotected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
std::string mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::getClassName ( ) const
inlineinherited

Definition at line 138 of file CRegistrationDeciderOrOptimizer.h.

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport ( std::string report_str) const
virtual

Fill the provided string with a detailed report of the decider/optimizer state.

Report should include (part of) the following:

  • Timing of important methods
  • Properties fo class at the current time
  • Logging of commands until current time

Reimplemented from mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >.

Definition at line 649 of file CLevMarqGSO_impl.h.

References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::getDescriptiveReport(), mrpt::utils::CTimeLogger::getStatsAsText(), mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::header_sep, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_time_logger, MRPT_END, MRPT_START, and mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::report_sep.

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getNearbyNodesOf ( std::set< mrpt::utils::TNodeID > *  nodes_set,
const mrpt::utils::TNodeID cur_nodeID,
double  distance 
)
protected

Get a list of the nodeIDs whose position is within a certain distance to the specified nodeID.

Definition at line 580 of file CLevMarqGSO_impl.h.

References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_graph, MRPT_END, and MRPT_START.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph().

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initGraphVisualization ( )
inlineprotected
template<class GRAPH_T >
void mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::initializeLoggers ( const std::string name)
virtualinherited
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initializeVisuals ( )
virtual
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization ( )
protected

Initialize the Disk/Sphere used for visualizing the optimization distance.

Definition at line 269 of file CLevMarqGSO_impl.h.

References mrpt::graphslam::CWindowManager::addTextMessage(), mrpt::graphslam::CWindowManager::assignTextMessageParameters(), mrpt::gui::CDisplayWindow3D::forceRepaint(), mrpt::gui::CDisplayWindow3D::get3DSceneAndLock(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualizationInternal(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::keystroke_optimization_distance, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::keystroke_optimize_graph, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_win, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_win_manager, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_win_observer, MRPT_END, MRPT_START, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::offset_y_optimization_distance, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::opt_params, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::optimization_distance, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::optimization_distance_color, mrpt::graphslam::CWindowObserver::registerKeystroke(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::text_index_optimization_distance, and mrpt::gui::CDisplayWindow3D::unlockAccess3DScene().

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initializeVisuals().

template<class GRAPH_T >
mrpt::opengl::CRenderizablePtr mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualizationInternal ( const mrpt::poses::CPose2D p_unused)
protected

Setup the corresponding Disk/Sphere instance.

Method overloads are used to overcome the C++ specialization restrictions

Returns
Disk/Sphere instance for 2D/3D SLAM respectively

Definition at line 309 of file CLevMarqGSO_impl.h.

References mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::opt_params, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::optimization_distance, and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::OptimizationParams::optimization_distance_color.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization().

template<class GRAPH_T >
mrpt::opengl::CRenderizablePtr mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualizationInternal ( const mrpt::poses::CPose3D p_unused)
protected
template<class GRAPH_T >
bool mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::isMultiRobotSlamClass ( )
inherited
template<class GRAPH_T >
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::justFullyOptimizedGraph ( ) const
virtual

Used by the caller to query for possible full graph optimization on the latest optimizer run.

Reimplemented from mrpt::graphslam::optimizers::CGraphSlamOptimizer< GRAPH_T >.

Definition at line 566 of file CLevMarqGSO_impl.h.

References mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_just_fully_optimized_graph.

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::levMarqFeedback ( const GRAPH_T &  graph,
const size_t  iter,
const size_t  max_iter,
const double  cur_sq_error 
)
staticprotected

Feedback of the Levenberg-Marquardt graph optimization procedure.

Definition at line 572 of file CLevMarqGSO_impl.h.

template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::loadParams ( const std::string source_fname)
virtual
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::notifyOfWindowEvents ( const std::map< std::string, bool > &  events_occurred)
virtual
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::optimizeGraph ( )
protectedvirtual
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::printParams ( ) const
virtual
template<class GRAPH_T >
void mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setClassName ( const std::string name)
virtualinherited
template<class GRAPH_T >
void mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setCriticalSectionPtr ( mrpt::synch::CCriticalSection graph_section)
virtualinherited

Fetch a mrpt::synch::CCriticalSection for locking the GRAPH_T resource.

Handy for realising multithreading in the derived classes.

Warning
Beware that prior to the decider/optimizer public method call, the CCriticalSection will already be locked from CGraphSlamEngine_t instance, but this isn't effective in multithreaded implementations where the decider/optimizer itself has to lock the function at which the extra thread runs.

Definition at line 73 of file CRegistrationDeciderOrOptimizer_impl.h.

References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_graph_section.

Referenced by mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::initClass().

template<class GRAPH_T>
void mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setGraphPtr ( GRAPH_T *  graph)
virtualinherited

Fetch the graph on which the decider/optimizer will work on.

Definition at line 124 of file CRegistrationDeciderOrOptimizer_impl.h.

References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_graph, and MRPT_LOG_DEBUG_STREAM.

Referenced by mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::initClass().

template<class GRAPH_T >
void mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setWindowManagerPtr ( mrpt::graphslam::CWindowManager win_manager)
virtualinherited
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleGraphVisualization ( )
protected
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleOptDistanceVisualization ( )
protected
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization ( )
inlineprotected
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization ( )
inlineprotected
template<class GRAPH_T >
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateState ( mrpt::obs::CActionCollectionPtr  action,
mrpt::obs::CSensoryFramePtr  observations,
mrpt::obs::CObservationPtr  observation 
)
virtual
template<class GRAPH_T >
void mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateVisuals ( )
virtual

Member Data Documentation

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
const std::string mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::header_sep = std::string(80, '-')
staticprotectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::is_mr_slam_class
protectedinherited

Boolean indicating if the current class can be used in multi-robot SLAM operations.

Definition at line 171 of file CRegistrationDeciderOrOptimizer.h.

Referenced by mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::isMultiRobotSlamClass().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_autozoom_active
protected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
std::string mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_class_name
protectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
size_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_curr_ignored_consec_lcs
protected

Consecutive Loop Closures that have currently been ignored.

See also
m_max_ignored_consec_lcs

Definition at line 393 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
size_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_curr_used_consec_lcs
protected

Number of consecutive loop closures that are currently registered.

See also
m_max_used_consec_lcs

Definition at line 382 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_first_time_call
protected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
GRAPH_T* mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_graph
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::CLoopCloserERD< GRAPH_T >::checkPartitionsForLC(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::computeCentroidOfNodesVector(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::execDijkstraProjection(), mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::getCurrentRobotPosEstimation(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::getMinUncertaintyPath(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getNearbyNodesOf(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getNearbyNodesOf(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::getPropsOfNodeID(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::mahalanobisDistanceOdometryToICPEdge(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::registerNewEdge(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::registerNewEdge(), mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::registerNewNodeAtEnd(), mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setGraphPtr(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateCurrCovarianceVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateLaserScansVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateMapPartitions(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateMapPartitionsVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateState(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateState(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateState(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
mrpt::synch::CCriticalSection* mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_graph_section
protectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_has_read_config
protected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_initialized_visuals
protectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_just_fully_optimized_graph
protected

Indicates whether a full graph optimization was just issued.

Definition at line 399 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::justFullyOptimizedGraph().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
size_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_last_total_num_of_nodes
protected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
size_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_max_ignored_consec_lcs
protected

Number of consecutive loop closures to ignore after m_max_used_consec_lcs have already been issued.

See also
m_curr_ignored_consec_lcs, m_max_used_consec_lcs

Definition at line 388 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::loadParams().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
size_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_max_used_consec_lcs
protected

Number of maximum cosecutive loop closures that are allowed to be issued.

See also
m_curr_used_consec_lcs, m_max_ignored_consec_lcs

Definition at line 377 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::loadParams().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
size_t mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_min_nodes_for_optimization
protected

Minimum number of nodes before we try optimizing the graph.

Definition at line 402 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
FullOptimizationPolicy mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_optimization_policy
protected

Should I fully optimize the graph on loop closure?

Definition at line 361 of file CLevMarqGSO.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForFullOptimization().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
mrpt::system::TThreadHandle mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::m_thread_optimize
protected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
mrpt::utils::CTimeLogger mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_time_logger
protectedinherited

Time logger instance.

Definition at line 165 of file CRegistrationDeciderOrOptimizer.h.

Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::checkPartitionsForLC(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::computeDominantEigenVector(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::evaluatePartitionsForLC(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::execDijkstraProjection(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::getICPEdge(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setClassName(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateMapPartitions(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateState(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals(), and mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateVisuals().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
mrpt::gui::CDisplayWindow3D* mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_win
protectedinherited

Window to use.

Definition at line 157 of file CRegistrationDeciderOrOptimizer.h.

Referenced by mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::assertVisualsVars(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::fitGraphInView(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::initCurrCovarianceVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::initLaserScansVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::initMapPartitionsVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization(), mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::setWindowManagerPtr(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::toggleLaserScansVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::toggleLaserScansVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::toggleMapPartitionsVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleOptDistanceVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateCurrCovarianceVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateLaserScansVisualization(), mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::updateMapPartitionsVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
mrpt::graphslam::CWindowManager* mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_win_manager
protectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
mrpt::graphslam::CWindowObserver* mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_win_observer
protectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
OptimizationParams mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::opt_params
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
bool mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::registered_new_node
protected
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
const std::string mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::report_sep = std::string(2, '\n')
staticprotectedinherited
template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
GraphVisualizationParams mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::viz_params



Page generated by Doxygen 1.8.11 for MRPT 1.5.7 Git: 2190203 Tue May 15 02:01:15 2018 +0200 at miƩ may 16 12:40:16 CEST 2018