10 #ifndef CICPCRITERIANRD_H 11 #define CICPCRITERIANRD_H 84 template <
class GRAPH_T>
98 using pose_t =
typename GRAPH_T::constraint_t::type_value;
102 double, constraint_t::state_length, constraint_t::state_length>;
int m_times_used_ICP
How many times we used the ICP Edge instead of Odometry edge.
void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
mrpt::obs::CObservation2DRangeScan::Ptr m_last_laser_scan2D
handy laser scans to use in the class methods
decider_t & decider
Reference to outer decider class.
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion)
This method load the options from a ".ini"-like file or memory-stored string list.
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
bool updateState2D(mrpt::obs::CObservation2DRangeScan::Ptr observation)
Specialized updateState method used solely when dealing with 2DRangeScan information.
Interface for implementing node registration classes.
pose_t m_curr_odometry_only_pose
pose_t estimation using only odometry information.
pose_t m_last_odometry_only_pose
pose_t estimation using only odometry information.
mrpt::obs::CObservation2DRangeScan::Ptr m_curr_laser_scan2D
Current LaserScan.
ICP-based Fixed Intervals Node Registration.
double registration_max_distance
Maximum distance for new node registration.
bool checkRegistrationCondition()
Check whether a new node should be registered in the graph.
void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
This class allows loading and storing values and vectors of different types from a configuration text...
double registration_max_angle
Maximum angle difference for new node registration.
Interface for implementing node/edge registration deciders or optimizer classes.
mrpt::obs::CObservation3DRangeScan::Ptr m_curr_laser_scan3D
CICPCriteriaNRD()
Class constructor.
bool m_use_distance_node_reg
constraint_t m_latest_odometry_PDF
Odometry rigid-body transformation since the last accepted LaserScan.
TSlidingWindow m_mahal_distance_ICP_odom
Keeps track of the last N measurements between the ICP edge and the corresponding odometry measuremen...
GLsizei const GLchar ** string
bool m_use_angle_difference_node_reg
mrpt::obs::CObservation3DRangeScan::Ptr m_last_laser_scan3D
Class for keeping together all the RangeScanner-related functions.
bool checkRegistrationCondition2D()
Specialized checkRegistrationCondtion method used solely when dealing with 2DRangeScan information...
typename GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
Class to monitor the evolution of a statistical quantity.
~CICPCriteriaNRD()
Class destructor.
void loadParams(const std::string &source_fname)
Load the necessary for the decider/optimizer configuration parameters.
GLsizei GLsizei GLchar * source
bool checkRegistrationCondition3D()
Specialized checkRegistrationCondition method used solely when dealing with 3DRangeScan information...
typename GRAPH_T::global_pose_t global_pose_t
typename GRAPH_T::constraint_t constraint_t
type of graph constraints
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.
int m_times_used_odom
How many times we used the Odometry Edge instead of the ICP edge.
void dumpToTextStream(std::ostream &out) const
This method should clearly display all the contents of the structure in textual form, sending it to a std::ostream.
bool updateState3D(mrpt::obs::CObservation3DRangeScan::Ptr observation)
Specialized updateState method used solely when dealing with 3DRangeScan information.