template class mrpt::graphslam::deciders::CICPCriteriaNRD
ICP-based Fixed Intervals Node Registration.
#include <mrpt/graphslam/NRD/CICPCriteriaNRD.h> template <class GRAPH_T> class CICPCriteriaNRD: public mrpt::graphslam::deciders::CNodeRegistrationDecider, public mrpt::graphslam::deciders::CRangeScanOps { public: // typedefs typedef typename GRAPH_T::constraint_t constraint_t; typedef typename GRAPH_T::constraint_t::type_value pose_t; typedef typename GRAPH_T::global_pose_t global_pose_t; typedef mrpt::math::CMatrixFixed<double, constraint_t::state_length, constraint_t::state_length> InfMat; typedef mrpt::graphslam::deciders::CRangeScanOps<GRAPH_T> range_ops_t; typedef CICPCriteriaNRD<GRAPH_T> decider_t; typedef mrpt::graphslam::deciders::CNodeRegistrationDecider<GRAPH_T> parent_t; // structs struct TParams; // fields TParams params; // construction CICPCriteriaNRD(); // methods virtual void loadParams(const std::string& source_fname); virtual void printParams() const; virtual void getDescriptiveReport(std::string* report_str) const; virtual bool updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation); bool updateState2D(mrpt::obs::CObservation2DRangeScan::Ptr observation); bool updateState3D(mrpt::obs::CObservation3DRangeScan::Ptr observation); };
Inherited Members
public: // typedefs typedef typename GRAPH_T::constraint_t::type_value pose_t; typedef typename GRAPH_T::global_pose_t global_pose_t; typedef mrpt::math::CMatrixFixed<double, constraint_t::state_length, constraint_t::state_length> inf_mat_t; // structs struct TMsg; struct TParams; // 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.
type of graph constraints
typedef typename GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
typedef mrpt::graphslam::deciders::CRangeScanOps<GRAPH_T> range_ops_t
Typedef for accessing methods of the RangeScanRegistrationDecider parent class.
typedef CICPCriteriaNRD<GRAPH_T> decider_t
self type
typedef mrpt::graphslam::deciders::CNodeRegistrationDecider<GRAPH_T> parent_t
Node Registration Decider.
Methods
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 updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation)
Update the decider state using the latest dataset measurements.
Depending on the observations at hand, update of the state is handled either by updateState2D, or by updateState3D methods. This helps in separating the 2D, 3D RangeScans handling altogether, which in turn simplifies the overall procedure
Order of calls: updateState (calls) ==> updateState2D/3D ==> checkRegistrationCondition2D/3D ==> CheckRegistrationCondition
See also:
bool updateState2D(mrpt::obs::CObservation2DRangeScan::Ptr observation)
Specialized updateState method used solely when dealing with 2DRangeScan information.
See also:
bool updateState3D(mrpt::obs::CObservation3DRangeScan::Ptr observation)
Specialized updateState method used solely when dealing with 3DRangeScan information.
See also: