Template Class CNodeRegistrationDecider
Defined in File CNodeRegistrationDecider.h
Inheritance Relationships
Base Type
public mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >(Template Class CRegistrationDeciderOrOptimizer)
Derived Types
public mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >(Template Class CICPCriteriaNRD)public mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider< GRAPH_T >(Template Class CIncrementalNodeRegistrationDecider)
Class Documentation
-
template<class GRAPH_T>
class CNodeRegistrationDecider : public virtual mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T> Interface for implementing node registration classes.
CNodeRegistrationDecider provides the basic methods that have to exist in every node registration decider class. For an example of inheriting from this class see CFixedIntervalsNRD.
Note
As a naming convention, all the implemented node registration deciders are suffixed with the NRD acronym.
Subclassed by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >, mrpt::graphslam::deciders::CIncrementalNodeRegistrationDecider< GRAPH_T >
Unnamed Group
-
using parent_t = mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T>
Handy typedefs.
Parent of current class
-
using inf_mat_t = mrpt::math::CMatrixFixed<double, constraint_t::state_length, constraint_t::state_length>
Unnamed Group
-
bool registerNewNodeAtEnd(const typename GRAPH_T::constraint_t &constraint)
Utility methods for adding new poses to the graph.
Add a new constraint at the end of the graph.
- Parameters:
constraint – [in] Constraint transformation from the latest registered to the new node.
- Returns:
True upon successful node registration.
-
bool registerNewNodeAtEnd()
Same goal as the previous method - uses the m_since_prev_node_PDF as the constraint at the end.
-
virtual void addNodeAnnotsToPose(global_pose_t *pose) const
Get a global_pose_t and fill the NODE_ANNOTATIONS-related fields.
Note
Users are encouraged to override this method in case they have defined a new TNodeAnnotations struct and want to use this metadata in the graph nodes.
Public Functions
-
CNodeRegistrationDecider()
Default class constructor.
-
~CNodeRegistrationDecider() override = default
Default class destructor.
-
virtual global_pose_t getCurrentRobotPosEstimation() const
Getter method for fetching the currently estimated robot position.
In single-robot situations this is most likely going to be the last registered node position + an position/uncertainty increment from that position
-
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
-
void resetPDF(constraint_t *c)
Reset the given PDF method and assign a fixed high-certainty Covariance/Information matrix.
-
virtual bool checkRegistrationCondition()
Check whether a new node should be registered in the graph.
This should be the key-method in any implementation of this interface. Should call registerNewNodeAtEnd method if the registration condition is satisfied.
- Returns:
True upon successful node registration in the graph
Protected Attributes
-
mrpt::graphs::TNodeID m_prev_registered_nodeID
Store the last registered NodeID.
We don’t store its pose since it will most likely change due to calls to the graph-optimization procedure / dijkstra_node_estimation
-
constraint_t m_since_prev_node_PDF
Tracking the PDF of the current position of the robot with regards to the <b previous registered node.
-
using parent_t = mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T>