template class mrpt::graphslam::optimizers::CLevMarqGSO

Overview

Levenberg-Marquardt non-linear graph slam optimization scheme.

#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.