10 #ifndef CICPCRITERIANRD_H 11 #define CICPCRITERIANRD_H 42 namespace mrpt {
namespace graphslam {
namespace deciders {
100 template<
class GRAPH_T>
113 typedef typename GRAPH_T::constraint_t::type_value
pose_t;
117 constraint_t::state_length,
152 mrpt::obs::CActionCollectionPtr action,
153 mrpt::obs::CSensoryFramePtr observations,
154 mrpt::obs::CObservationPtr observation );
159 bool updateState2D(mrpt::obs::CObservation2DRangeScanPtr observation);
164 bool updateState3D(mrpt::obs::CObservation3DRangeScanPtr observation);
bool updateState2D(mrpt::obs::CObservation2DRangeScanPtr observation)
Specialized updateState method used solely when dealing with 2DRangeScan information.
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.
GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T > range_ops_t
Typedef for accessing methods of the RangeScanRegistrationDecider parent class.
decider_t & decider
Reference to outer decider class.
bool updateState(mrpt::obs::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr observation)
Update the decider state using the latest dataset measurements.
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.
ICP-based Fixed Intervals Node Registration.
GRAPH_T::global_pose_t global_pose_t
double registration_max_distance
Maximum distance for new node registration.
This class allows loading and storing values and vectors of different types from a configuration text...
CICPCriteriaNRD< GRAPH_T > decider_t
self type - Handy typedef
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 base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
GRAPH_T::constraint_t constraint_t
type of graph constraints
A numeric matrix of compile-time fixed size.
mrpt::obs::CObservation3DRangeScanPtr m_curr_laser_scan3D
double registration_max_angle
Maximum angle difference for new node registration.
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
bool updateState3D(mrpt::obs::CObservation3DRangeScanPtr observation)
Specialized updateState method used solely when dealing with 3DRangeScan information.
Class for keeping together all the RangeScanner-related functions.
GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
bool checkRegistrationCondition2D()
Specialized checkRegistrationCondtion method used solely when dealing with 2DRangeScan information...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
mrpt::math::CMatrixFixedNumeric< double, constraint_t::state_length, constraint_t::state_length > InfMat
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...
mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T > parent_t
Node Registration Decider.
mrpt::obs::CObservation3DRangeScanPtr m_last_laser_scan3D
mrpt::obs::CObservation2DRangeScanPtr m_last_laser_scan2D
handy laser scans to use in the class methods
void dumpToTextStream(mrpt::utils::CStream &out) const
This method should clearly display all the contents of the structure in textual form, sending it to a CStream.
void loadFromConfigFile(const mrpt::utils::CConfigFileBase &source, const std::string §ion)
This method load the options from a ".ini"-like file or memory-stored string list.
GRAPH_T::constraint_t constraint_t
Handy typedefs.
int m_times_used_odom
How many times we used the Odometry Edge instead of the ICP edge.
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
mrpt::obs::CObservation2DRangeScanPtr m_curr_laser_scan2D
Current LaserScan.