template class mrpt::graphslam::optimizers::CLevMarqGSO
Levenberg-Marquardt non-linear graph slam optimization scheme.
Current decider optimizes the graph according to the graphslam::optimize_spa_levmarq method. Refer to the latter for more details on the implementation.
class_verbosity
Section : OptimizerParameters
Default value : 1 (mrpt::system::LVL_INFO)
Required : FALSE
optimization_on_second_thread
Section : OptimizerParameters
Default value : FALSE
Required : FALSE
Description : Specify whether to use a second thread to optimize the graph.
LC_min_nodeid_diff
Section : GeneralConfiguration
Default value : 30
Required : FALSE
Description : Minimum NodeID difference for an edge to be considered a loop closure.
optimization_distance
Section : OptimizerParameters
Default value : 5
Required : FALSE
Description : Positions of the nodes within the specified distance from the current graph node are optimized according to the corresponding constraints between them
verbose
Section : OptimizerParameters
Default value : FALSE
Required : FALSE
Description : Refers to the Levenberg-Marquardt optimization. procedure
profiler
Section : OptimizerParameters
Default value : FALSE
Required : FALSE
Description : Refers to the Levenberg-Marquardt optimization. procedure
max_iterations
Section : OptimizerParameters
Default value : 100
Required : FALSE
Description : Refers to the Levenberg-Marquardt optimization. Sets the maximum number of iterations of the optimization scheme.
scale_hessian
Section : OptimizerParameters
Default value : 0.2
Required : FALSE
Description : Refers to the Levenberg-Marquardt optimization.
tau
Section : OptimizerParameters
Default value : 1e-3
Required : FALSE
Description : Refers to the Levenberg-Marquardt optimization.
For a detailed description of the optimization parameters of the Levenberg-Marquardt scheme, refer to
https://reference.mrpt.org/devel/group__mrpt__graphslam__grp.html#ga022f4a70be5ec7c432f46374e4bb9d66
For a detailed description of the graph visualization parameters refer to
https://reference.mrpt.org/devel/group__mrpt__opengl__grp.html#ga30efc9f6fcb49801e989d174e0f65a61
#include <mrpt/graphslam/GSO/CLevMarqGSO.h> template <class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf> class CLevMarqGSO: public mrpt::graphslam::optimizers::CGraphSlamOptimizer { public: // typedefs typedef typename GRAPH_T::constraint_t constraint_t; typedef typename GRAPH_T::constraint_t::type_value pose_t; typedef mrpt::math::CMatrixFixed<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; // structs struct GraphVisualizationParams; struct OptimizationParams; // fields OptimizationParams opt_params; GraphVisualizationParams viz_params; // construction CLevMarqGSO(); // methods virtual bool updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation); virtual void initializeVisuals(); virtual void updateVisuals(); virtual void notifyOfWindowEvents(const std::map<std::string, bool>& events_occurred); virtual void loadParams(const std::string& source_fname); virtual void printParams() const; virtual void getDescriptiveReport(std::string* report_str) const; virtual bool justFullyOptimizedGraph() const; };
Inherited Members
public: // typedefs typedef typename GRAPH_t::constraint_t constraint_t; typedef typename GRAPH_t::constraint_t::type_value pose_t; // structs struct TMsg; // methods virtual void setClassName(const std::string& name); bool isMultiRobotSlamClass(); std::string getClassName() const;
Typedefs
typedef typename GRAPH_T::constraint_t constraint_t
Handy typedefs.
typedef typename GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D)
Fields
OptimizationParams opt_params
Parameters relevant to the optimizatio nfo the graph.
GraphVisualizationParams viz_params
Parameters relevant to the visualization of the graph.
Methods
virtual bool updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation)
Generic method for fetching the incremental action-observations (or observation-only) measurements.
Returns:
True if operation was successful. Criteria for Success depend on the decider/optimizer implementing this method
virtual void initializeVisuals()
Initialize visual objects in CDisplayWindow (e.g.
add an object to scene).
Parameters:
std::exception |
If the method is called without having first provided a CDisplayWindow3D* to the class instance |
See also:
setWindowManagerPtr, updateVisuals
virtual void updateVisuals()
Update the relevant visual features in CDisplayWindow.
Parameters:
std::exception |
If the method is called without having first provided a CDisplayWindow3D* to the class instance |
See also:
setWindowManagerPtr, initializeVisuals
virtual void notifyOfWindowEvents(const std::map<std::string, bool>& events_occurred)
Get a list of the window events that happened since the last call.
virtual void loadParams(const std::string& source_fname)
Load the necessary for the decider/optimizer configuration parameters.
virtual void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way.
virtual void getDescriptiveReport(std::string* report_str) const
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
virtual bool justFullyOptimizedGraph() const
Used by the caller to query for possible full graph optimization on the latest optimizer run.