Template Class CEdgeRegistrationDecider

Inheritance Relationships

Base Type

Class Documentation

template<class GRAPH_T = typename mrpt::graphs::CNetworkOfPoses2DInf>
class CEdgeRegistrationDecider : public virtual mrpt::graphslam::CRegistrationDeciderOrOptimizer<typename mrpt::graphs::CNetworkOfPoses2DInf>

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.

Note

As a naming convention, all the implemented edge registration deciders are suffixed with the ERD acronym.

Unnamed Group

using parent = mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T>

Handy typedefs.

Parent of current class

using constraint_t = typename GRAPH_T::constraint_t

type of graph constraints

using pose_t = typename GRAPH_T::constraint_t::type_value

type of underlying poses (2D/3D).

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.

inline virtual void checkRegistrationCondition(mrpt::graphs::TNodeID from, mrpt::graphs::TNodeID to)
inline virtual void checkRegistrationCondition(const std::set<mrpt::graphs::TNodeID>&)

Public Functions

CEdgeRegistrationDecider() = default
~CEdgeRegistrationDecider() override = default
inline 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.

inline virtual bool justInsertedLoopClosure() const

Used by the caller to query for possible loop closures in the last edge registration procedure.

virtual void getDescriptiveReport(std::string *report_str) const override

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

Protected Functions

virtual void registerNewEdge(const mrpt::graphs::TNodeID &from, const mrpt::graphs::TNodeID &to, const constraint_t &rel_edge)

Register a new constraint/edge in the current graph.

Implementations of this class should provide a wrapper around GRAPH_T::insertEdge method.

Protected Attributes

bool m_just_inserted_lc = false
bool m_override_registered_nodes_check = false

Indicates whether the ERD implementation expects, at most one single node to be registered, between successive calls to the updateState method.