template class mrpt::graphslam::deciders::CICPCriteriaNRD
Overview
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 mrpt::graphslam::CRegistrationDeciderOrOptimizer<GRAPH_T> parent_t; 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> inf_mat_t; // structs struct TMsg; struct TParams; // fields bool logging_enable_console_output {true}; bool logging_enable_keep_record {false}; // methods void logStr(const VerbosityLevel level, std::string_view msg_str) const; void logFmt(const VerbosityLevel level, const char* fmt, ...) const; void void logCond(const VerbosityLevel level, bool cond, const std::string& msg_str) const; void setLoggerName(const std::string& name); std::string getLoggerName() const; void setVerbosityLevel(const VerbosityLevel level); void setVerbosityLevelForCallbacks(const VerbosityLevel level); void setMinLoggingLevel(const VerbosityLevel level); VerbosityLevel getMinLoggingLevel() const; VerbosityLevel getMinLoggingLevelForCallbacks() const; bool isLoggingLevelVisible(VerbosityLevel level) const; void getLogAsString(std::string& log_contents) const; std::string getLogAsString() const; void writeLogToFile(const std::optional<std::string>& fname_in = std::nullopt) const; void dumpLogToConsole() const; std::string getLoggerLastMsg() const; void getLoggerLastMsg(std::string& msg_str) const; void loggerReset(); void logRegisterCallback(output_logger_callback_t userFunc); bool logDeregisterCallback(output_logger_callback_t userFunc); COutputLogger& operator = (const COutputLogger&); COutputLogger& operator = (COutputLogger&&); static std::array<mrpt::system::ConsoleForegroundColor, NUMBER_OF_VERBOSITY_LEVELS>& logging_levels_to_colors(); static const std::array<const char*, NUMBER_OF_VERBOSITY_LEVELS>& logging_levels_to_names(); virtual bool updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation) = 0; virtual void setWindowManagerPtr(mrpt::graphslam::CWindowManager* win_manager); virtual void setCriticalSectionPtr(std::mutex* graph_section); 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 void setGraphPtr(GRAPH_T* graph); virtual void initializeLoggers(const std::string& name); virtual void setClassName(const std::string& name); bool isMultiRobotSlamClass(); std::string getClassName() const; virtual global_pose_t getCurrentRobotPosEstimation() const; virtual void getDescriptiveReport(std::string* report_str) 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: