class mrpt::hmtslam::CTopLCDetector_FabMap

#include <mrpt/hmtslam/CTopLCDetector_FabMap.h>

class CTopLCDetector_FabMap: public mrpt::hmtslam::CTopLCDetectorBase
{
public:
    // structs

    struct TOptions;

    //
methods

    static CTopLCDetectorBase* createNewInstance(CHMTSLAM* hmtslam);

    virtual mrpt::poses::CPose3DPDF::Ptr computeTopologicalObservationModel(
        const THypothesisID& hypID,
        const CHMHMapNode::Ptr& currentArea,
        const CHMHMapNode::Ptr& refArea,
        double& out_log_lik
        );

    void OnNewPose(const TPoseID& poseID, const mrpt::obs::CSensoryFrame* SF);
    virtual void reset();

    virtual bool computeSSOBetweenObservations(
        ] const THypothesisID& hypID,
        ] const TPoseID& poseID1,
        ] const TPoseID& poseID2,
        ] double& out_SSO
        );

    virtual void OnNewPose(] const TPoseID& poseID, ] const mrpt::obs::CSensoryFrame* SF);
};

Inherited Members

public:
    // typedefs

    typedef std::shared_ptr<CTopLCDetectorBase> Ptr;

    //
methods

    virtual mrpt::poses::CPose3DPDF::Ptr computeTopologicalObservationModel(
        const THypothesisID& hypID,
        const CHMHMapNode::Ptr& currentArea,
        const CHMHMapNode::Ptr& refArea,
        double& out_log_lik
        ) = 0;

Methods

static CTopLCDetectorBase* createNewInstance(CHMTSLAM* hmtslam)

A class factory, to be implemented in derived classes.

virtual mrpt::poses::CPose3DPDF::Ptr computeTopologicalObservationModel(
    const THypothesisID& hypID,
    const CHMHMapNode::Ptr& currentArea,
    const CHMHMapNode::Ptr& refArea,
    double& out_log_lik
    )

This method must compute the topological observation model.

Parameters:

out_log_lik

The output, a log-likelihood.

out_log_lik

The output, a log-likelihood.

Returns:

nullptr (empty smart pointer), or a PDF of the estimated translation between the two areas (can be a multi-modal PDF).

nullptr, or a PDF of the estimated translation between the two areas (can be a multi-modal PDF).

void OnNewPose(const TPoseID& poseID, const mrpt::obs::CSensoryFrame* SF)

Hook method for being warned about the insertion of a new poses into the maps.

This should be independent of hypothesis IDs.

virtual void reset()

Reset the internal state of the TLCD, if any.

This is needed since the objects are created while loading HMT-SLAM options, but the algorithm may be re-started after that at any time.

virtual bool computeSSOBetweenObservations(
    ] const THypothesisID& hypID,
    ] const TPoseID& poseID1,
    ] const TPoseID& poseID2,
    ] double& out_SSO
    )

If implemented, this method provides the evaluation of an additional term to be added to the SSO between each pair of observations.

Parameters:

out_SSO

The output, in the range [0,1].

Returns:

true if computed SSO is meaningful. The default virtual method returns false.

virtual void OnNewPose(] const TPoseID& poseID, ] const mrpt::obs::CSensoryFrame* SF)

Hook method for being warned about the insertion of a new poses into the maps.

This should be independent of hypothesis IDs.