ICP-based Fixed Intervals Node Registration.
Current Decider is meant for adding nodes in 2D datasets recorded using a laser range finder or RGB-D camera (e.g. Kinect). No odometry data from encoders is needed. Using ICP to match consecutive RangeScan measurements, the decider keeps track of the pose transformation since the last registered node. If the norm or the angle of the latter surpasses certain thresholds (which are read from an external .ini file) then a new node is added to the graph)
Decider does not guarantee thread safety when accessing the GRAPH_T resource. This is handled by the CGraphSlamEngine class.
Definition at line 101 of file CICPCriteriaNRD.h.
#include <mrpt/graphslam/NRD/CICPCriteriaNRD.h>
Classes | |
struct | TParams |
Public Types | |
typedef GRAPH_T::constraint_t | constraint_t |
Handy typedefs. More... | |
typedef GRAPH_T::constraint_t::type_value | pose_t |
type of underlying poses (2D/3D). More... | |
typedef GRAPH_T::global_pose_t | global_pose_t |
typedef mrpt::math::CMatrixFixedNumeric< double, constraint_t::state_length, constraint_t::state_length > | InfMat |
typedef mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T > | range_ops_t |
Typedef for accessing methods of the RangeScanRegistrationDecider parent class. More... | |
typedef CICPCriteriaNRD< GRAPH_T > | decider_t |
self type - Handy typedef More... | |
typedef mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T > | parent_t |
Node Registration Decider. More... | |
typedef mrpt::math::CMatrixFixedNumeric< double, constraint_t::state_length, constraint_t::state_length > | inf_mat_t |
Public Member Functions | |
CICPCriteriaNRD () | |
Class constructor. More... | |
~CICPCriteriaNRD () | |
Class destructor. More... | |
void | loadParams (const std::string &source_fname) |
Load the necessary for the decider/optimizer configuration parameters. More... | |
void | printParams () const |
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way. More... | |
void | getDescriptiveReport (std::string *report_str) const |
Fill the provided string with a detailed report of the decider/optimizer state. More... | |
bool | updateState (mrpt::obs::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr observation) |
Update the decider state using the latest dataset measurements. More... | |
bool | updateState2D (mrpt::obs::CObservation2DRangeScanPtr observation) |
Specialized updateState method used solely when dealing with 2DRangeScan information. More... | |
bool | updateState3D (mrpt::obs::CObservation3DRangeScanPtr observation) |
Specialized updateState method used solely when dealing with 3DRangeScan information. More... | |
virtual global_pose_t | getCurrentRobotPosEstimation () const |
Getter method for fetching the currently estimated robot position. More... | |
virtual void | setWindowManagerPtr (mrpt::graphslam::CWindowManager *win_manager) |
Fetch a CWindowManager pointer. More... | |
virtual void | setCriticalSectionPtr (mrpt::synch::CCriticalSection *graph_section) |
Fetch a mrpt::synch::CCriticalSection for locking the GRAPH_T resource. More... | |
virtual void | initializeVisuals () |
Initialize visual objects in CDisplayWindow (e.g. More... | |
virtual void | updateVisuals () |
Update the relevant visual features in CDisplayWindow. More... | |
virtual void | notifyOfWindowEvents (const std::map< std::string, bool > &events_occurred) |
Get a list of the window events that happened since the last call. More... | |
virtual void | setGraphPtr (GRAPH_T *graph) |
Fetch the graph on which the decider/optimizer will work on. More... | |
virtual void | initializeLoggers (const std::string &name) |
Initialize the COutputLogger, CTimeLogger instances given the name of the decider/optimizer at hand. More... | |
virtual void | setClassName (const std::string &name) |
bool | isMultiRobotSlamClass () |
std::string | getClassName () const |
Public Attributes | |
TParams | params |
Protected Member Functions | |
bool | checkRegistrationCondition () |
Check whether a new node should be registered in the graph. More... | |
bool | checkRegistrationCondition2D () |
Specialized checkRegistrationCondtion method used solely when dealing with 2DRangeScan information. More... | |
bool | checkRegistrationCondition3D () |
Specialized checkRegistrationCondition method used solely when dealing with 3DRangeScan information. More... | |
void | resetPDF (constraint_t *c) |
Reset the given PDF method and assign a fixed high-certainty Covariance/Information matrix. More... | |
virtual void | assertVisualsVars () |
Handy function for making all the visuals assertions in a compact manner. More... | |
void | getICPEdge (const mrpt::obs::CObservation2DRangeScan &from, const mrpt::obs::CObservation2DRangeScan &to, constraint_t *rel_edge, const mrpt::poses::CPose2D *initial_pose=NULL, mrpt::slam::CICP::TReturnInfo *icp_info=NULL) |
Align the 2D range scans provided and fill the potential edge that can transform the one into the other. More... | |
void | getICPEdge (const mrpt::obs::CObservation3DRangeScan &from, const mrpt::obs::CObservation3DRangeScan &to, constraint_t *rel_edge, const mrpt::poses::CPose2D *initial_pose=NULL, mrpt::slam::CICP::TReturnInfo *icp_info=NULL) |
Align the 3D range scans provided and find the potential edge that can transform the one into the other. More... | |
void | decimatePointsMap (mrpt::maps::CPointsMap *m, size_t keep_point_every=4, size_t low_lim=0) |
Reduce the size of the given CPointsMap by keeping one out of "keep_point_every" points. More... | |
bool | convert3DTo2DRangeScan (mrpt::obs::CObservation3DRangeScanPtr &scan3D_in, mrpt::obs::CObservation2DRangeScanPtr *scan2D_out=NULL) |
Wrapper around the CObservation3DRangeScan::convertTo2DScan corresponding method. More... | |
bool | registerNewNodeAtEnd (const typename GRAPH_T::constraint_t &constraint) |
Utility methods for adding new poses to the graph. More... | |
bool | registerNewNodeAtEnd () |
Same goal as the previous method - uses the m_since_prev_node_PDF as the constraint at the end. More... | |
virtual void | addNodeAnnotsToPose (global_pose_t *pose) const |
Get a global_pose_t and fill the NODE_ANNOTATIONS-related fields. More... | |
Protected Attributes | |
bool | m_is_using_3DScan |
constraint_t | m_latest_odometry_PDF |
Odometry rigid-body transformation since the last accepted LaserScan. More... | |
pose_t | m_curr_odometry_only_pose |
pose_t estimation using only odometry information. More... | |
pose_t | m_last_odometry_only_pose |
pose_t estimation using only odometry information. More... | |
TSlidingWindow | m_mahal_distance_ICP_odom |
Keeps track of the last N measurements between the ICP edge and the corresponding odometry measurements. More... | |
bool | m_use_angle_difference_node_reg |
bool | m_use_distance_node_reg |
int | m_times_used_ICP |
How many times we used the ICP Edge instead of Odometry edge. More... | |
int | m_times_used_odom |
How many times we used the Odometry Edge instead of the ICP edge. More... | |
mrpt::utils::TNodeID | m_prev_registered_nodeID |
Store the last registered NodeID. More... | |
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. More... | |
inf_mat_t | m_init_inf_mat |
Initial information matrix for paths. More... | |
GRAPH_T * | m_graph |
Pointer to the graph that is under construction. More... | |
mrpt::synch::CCriticalSection * | m_graph_section |
mrpt::utils::CTimeLogger | m_time_logger |
Time logger instance. More... | |
std::string | m_class_name |
Name of the class instance. More... | |
bool | is_mr_slam_class |
Boolean indicating if the current class can be used in multi-robot SLAM operations. More... | |
mrpt::obs::CObservation2DRangeScanPtr | m_last_laser_scan2D |
handy laser scans to use in the class methods More... | |
mrpt::obs::CObservation2DRangeScanPtr | m_curr_laser_scan2D |
Current LaserScan. More... | |
mrpt::obs::CObservation3DRangeScanPtr | m_last_laser_scan3D |
mrpt::obs::CObservation3DRangeScanPtr | m_curr_laser_scan3D |
Visuals-related variables methods | |
mrpt::graphslam::CWindowManager * | m_win_manager |
Pointer to the CWindowManager object used to store visuals-related instances. More... | |
mrpt::gui::CDisplayWindow3D * | m_win |
Window to use. More... | |
mrpt::graphslam::CWindowObserver * | m_win_observer |
CWindowObserver object for monitoring various visual-oriented events. More... | |
bool | m_initialized_visuals |
Static Protected Attributes | |
static const std::string | header_sep = std::string(80, '-') |
Separator string to be used in debugging messages. More... | |
static const std::string | report_sep = std::string(2, '\n') |
typedef GRAPH_T::constraint_t mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::constraint_t |
typedef CICPCriteriaNRD<GRAPH_T> mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::decider_t |
self type - Handy typedef
Definition at line 124 of file CICPCriteriaNRD.h.
typedef GRAPH_T::global_pose_t mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::global_pose_t |
Definition at line 114 of file CICPCriteriaNRD.h.
|
inherited |
Definition at line 56 of file CNodeRegistrationDecider.h.
typedef mrpt::math::CMatrixFixedNumeric<double, constraint_t::state_length, constraint_t::state_length> mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::InfMat |
Definition at line 118 of file CICPCriteriaNRD.h.
typedef mrpt::graphslam::deciders::CNodeRegistrationDecider<GRAPH_T> mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::parent_t |
Node Registration Decider.
Definition at line 126 of file CICPCriteriaNRD.h.
typedef GRAPH_T::constraint_t::type_value mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::pose_t |
type of underlying poses (2D/3D).
Definition at line 113 of file CICPCriteriaNRD.h.
typedef mrpt::graphslam::deciders::CRangeScanOps<GRAPH_T> mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::range_ops_t |
Typedef for accessing methods of the RangeScanRegistrationDecider parent class.
Definition at line 123 of file CICPCriteriaNRD.h.
mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD | ( | ) |
Class constructor.
Definition at line 19 of file CICPCriteriaNRD_impl.h.
References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::initializeLoggers(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_is_using_3DScan, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_latest_odometry_PDF, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_times_used_ICP, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_times_used_odom, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_use_angle_difference_node_reg, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_use_distance_node_reg, and mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::resetPDF().
mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::~CICPCriteriaNRD | ( | ) |
Class destructor.
Definition at line 41 of file CICPCriteriaNRD_impl.h.
|
protectedvirtualinherited |
Get a global_pose_t and fill the NODE_ANNOTATIONS-related fields.
Definition at line 129 of file CNodeRegistrationDecider_impl.h.
|
protectedvirtualinherited |
Handy function for making all the visuals assertions in a compact manner.
Definition at line 87 of file CRegistrationDeciderOrOptimizer_impl.h.
|
protectedvirtual |
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.
Reimplemented from mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >.
Definition at line 234 of file CICPCriteriaNRD_impl.h.
References mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::m_since_prev_node_PDF, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_use_angle_difference_node_reg, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_use_distance_node_reg, MRPT_END, MRPT_START, mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::registerNewNodeAtEnd(), and mrpt::math::wrapToPi().
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D().
|
protected |
Specialized checkRegistrationCondtion method used solely when dealing with 2DRangeScan information.
Definition at line 139 of file CICPCriteriaNRD_impl.h.
References mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition(), mrpt::graphslam::deciders::CRangeScanOps< GRAPH_T >::getICPEdge(), mrpt::slam::CICP::TReturnInfo::goodness, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_curr_laser_scan2D, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_curr_odometry_only_pose, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_last_laser_scan2D, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_last_odometry_only_pose, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_latest_odometry_PDF, mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::m_since_prev_node_PDF, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_times_used_ICP, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_times_used_odom, MRPT_END, MRPT_START, mrpt::slam::CICP::TReturnInfo::nIterations, and mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::resetPDF().
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState2D().
|
protected |
Specialized checkRegistrationCondition method used solely when dealing with 3DRangeScan information.
Definition at line 227 of file CICPCriteriaNRD_impl.h.
References THROW_EXCEPTION.
|
protectedinherited |
Wrapper around the CObservation3DRangeScan::convertTo2DScan corresponding method.
Definition at line 139 of file CRangeScanOps_impl.h.
References mrpt::obs::CObservation2DRangeScan::Create(), MRPT_END, and MRPT_START.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateState().
|
protectedinherited |
Reduce the size of the given CPointsMap by keeping one out of "keep_point_every" points.
Definition at line 110 of file CRangeScanOps_impl.h.
References mrpt::maps::CPointsMap::applyDeletionMask(), min, MRPT_END, MRPT_START, and mrpt::maps::CPointsMap::size().
|
inlineinherited |
Definition at line 138 of file CRegistrationDeciderOrOptimizer.h.
|
virtualinherited |
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
Reimplemented in mrpt::graphslam::deciders::CEmptyNRD< GRAPH_T >.
Definition at line 134 of file CNodeRegistrationDecider_impl.h.
|
virtual |
Fill the provided string with a detailed report of the decider/optimizer state.
Report should include (part of) the following:
Reimplemented from mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >.
Definition at line 301 of file CICPCriteriaNRD_impl.h.
References mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >::getDescriptiveReport(), mrpt::utils::CTimeLogger::getStatsAsText(), mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::header_sep, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_time_logger, MRPT_END, MRPT_START, and mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::report_sep.
|
protectedinherited |
Align the 2D range scans provided and fill the potential edge that can transform the one into the other.
User can optionally ask that additional information be returned in a TReturnInfo struct
Definition at line 16 of file CRangeScanOps_impl.h.
References info, mrpt::maps::CMetricMap::insertObservation(), MRPT_END, and MRPT_START.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D().
|
protectedinherited |
Align the 3D range scans provided and find the potential edge that can transform the one into the other.
Fills the 2D part (rel_edge) of the 3D constraint between the scans, since we are interested in computing the 2D alignment. User can optionally ask that additional information be returned in a TReturnInfo struct
Definition at line 54 of file CRangeScanOps_impl.h.
References ASSERTMSG_, mrpt::mrpt::format(), mrpt::obs::CObservation3DRangeScan::hasRangeImage, info, mrpt::maps::CMetricMap::insertObservation(), MRPT_END, and MRPT_START.
|
virtualinherited |
Initialize the COutputLogger, CTimeLogger instances given the name of the decider/optimizer at hand.
Definition at line 38 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::CICPCriteriaERD(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::CLevMarqGSO(), and mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >::CLoopCloserERD().
|
virtualinherited |
Initialize visual objects in CDisplayWindow (e.g.
add an object to scene).
std::exception | If the method is called without having first provided a CDisplayWindow3D* to the class instance |
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 81 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initializeVisuals().
|
inherited |
Definition at line 132 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtual |
Load the necessary for the decider/optimizer configuration parameters.
Reimplemented from mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >.
Definition at line 266 of file CICPCriteriaNRD_impl.h.
References mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::loadParams(), MRPT_END, and MRPT_START.
|
virtualinherited |
Get a list of the window events that happened since the last call.
Method in derived classes is automatically called from the CGraphSlamEngine_t instance. After that, decider/optimizer should just fetch the parameters that it is interested in.
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 99 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::notifyOfWindowEvents(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::notifyOfWindowEvents().
|
virtual |
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact way.
Reimplemented from mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >.
Definition at line 290 of file CICPCriteriaNRD_impl.h.
References MRPT_END, MRPT_START, and mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::printParams().
|
protectedinherited |
Utility methods for adding new poses to the graph.
Add a new constraint at the end of the graph.
[in] | constraint | Constraint transformation from the latest registered to the new node. |
Definition at line 45 of file CNodeRegistrationDecider_impl.h.
|
protectedinherited |
Same goal as the previous method - uses the m_since_prev_node_PDF as the constraint at the end.
Definition at line 106 of file CNodeRegistrationDecider_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition().
|
protectedinherited |
Reset the given PDF method and assign a fixed high-certainty Covariance/Information matrix.
Definition at line 116 of file CNodeRegistrationDecider_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD().
|
virtualinherited |
Definition at line 52 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch a mrpt::synch::CCriticalSection for locking the GRAPH_T resource.
Handy for realising multithreading in the derived classes.
Definition at line 73 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch the graph on which the decider/optimizer will work on.
Definition at line 124 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtualinherited |
Fetch a CWindowManager pointer.
CWindowManager instance should contain a CDisplayWindow3D* and, optionally, a CWindowObserver pointer so that interaction with the window is possible
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >.
Definition at line 61 of file CRegistrationDeciderOrOptimizer_impl.h.
|
virtual |
Update the decider state using the latest dataset measurements.
Order of calls: updateState (calls) ==> updateState2D/3D ==> checkRegistrationCondition2D/3D ==> CheckRegistrationCondition
Implements mrpt::graphslam::deciders::CNodeRegistrationDecider< GRAPH_T >.
Definition at line 45 of file CICPCriteriaNRD_impl.h.
References mrpt::poses::CPosePDFGaussianInf::copyFrom(), mrpt::utils::CTimeLogger::enter(), IS_CLASS, mrpt::utils::CTimeLogger::leave(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_curr_odometry_only_pose, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_last_odometry_only_pose, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_latest_odometry_PDF, mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_T >::m_time_logger, MRPT_END, MRPT_START, MRPT_UNUSED_PARAM, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState3D().
bool mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState2D | ( | mrpt::obs::CObservation2DRangeScanPtr | observation | ) |
Specialized updateState method used solely when dealing with 2DRangeScan information.
Definition at line 119 of file CICPCriteriaNRD_impl.h.
References mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_curr_laser_scan2D, mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::m_last_laser_scan2D, MRPT_END, and MRPT_START.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState().
bool mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState3D | ( | mrpt::obs::CObservation3DRangeScanPtr | observation | ) |
Specialized updateState method used solely when dealing with 3DRangeScan information.
Definition at line 220 of file CICPCriteriaNRD_impl.h.
References THROW_EXCEPTION.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState().
|
virtualinherited |
Update the relevant visual features in CDisplayWindow.
std::exception | If the method is called without having first provided a CDisplayWindow3D* to the class instance |
Reimplemented in mrpt::graphslam::deciders::CLoopCloserERD< GRAPH_T >, mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >, and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >.
Definition at line 94 of file CRegistrationDeciderOrOptimizer_impl.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateVisuals().
|
staticprotectedinherited |
Separator string to be used in debugging messages.
Definition at line 175 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport().
|
protectedinherited |
Boolean indicating if the current class can be used in multi-robot SLAM operations.
Definition at line 171 of file CRegistrationDeciderOrOptimizer.h.
|
protectedinherited |
Name of the class instance.
Definition at line 167 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::CRegistrationDeciderOrOptimizer< GRAPH_t >::getClassName().
|
protected |
Current LaserScan.
Set during the new measurements acquisition in updateState method
Definition at line 213 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState2D().
|
protected |
Definition at line 216 of file CICPCriteriaNRD.h.
|
protected |
pose_t estimation using only odometry information.
Definition at line 229 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState().
|
protectedinherited |
Pointer to the graph that is under construction.
Definition at line 146 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::checkForLoopClosures(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getNearbyNodesOf(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getNearbyNodesOf(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::registerNewEdge(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateState(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateState(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().
|
protectedinherited |
Definition at line 147 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::optimizeGraph().
|
protectedinherited |
Initial information matrix for paths.
Large values for this indicate that I am sure of the corresponding (initial) pose
Definition at line 140 of file CNodeRegistrationDecider.h.
|
protectedinherited |
Definition at line 161 of file CRegistrationDeciderOrOptimizer.h.
|
protected |
Definition at line 203 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD().
|
protected |
handy laser scans to use in the class methods
2D LaserScan corresponding to the latest registered node in the graph
Definition at line 209 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState2D().
|
protected |
Definition at line 215 of file CICPCriteriaNRD.h.
|
protected |
pose_t estimation using only odometry information.
Resets next time an ICP edge/Odometry measurement is utilized for updating the estimated robot position.
Definition at line 236 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState().
|
protected |
Odometry rigid-body transformation since the last accepted LaserScan.
Decider can use it to smoothen the trajectory in the case of high noise in the laser measurements
Definition at line 224 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState().
|
protected |
Keeps track of the last N measurements between the ICP edge and the corresponding odometry measurements.
Use the last odometry rigid body transformation instead of the ICP edge if the mahalanobis distance between them is greater than this limit.
Definition at line 244 of file CICPCriteriaNRD.h.
|
protectedinherited |
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
Definition at line 130 of file CNodeRegistrationDecider.h.
|
protectedinherited |
Tracking the PDF of the current position of the robot with regards to the <b previous registered node.
Definition at line 134 of file CNodeRegistrationDecider.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D().
|
protectedinherited |
Time logger instance.
Definition at line 165 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::_optimizeGraph(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition2D(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::checkRegistrationCondition3D(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::updateState(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().
|
protected |
How many times we used the ICP Edge instead of Odometry edge.
Definition at line 251 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD().
|
protected |
How many times we used the Odometry Edge instead of the ICP edge.
Definition at line 253 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition2D(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD().
|
protected |
Definition at line 247 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD().
|
protected |
Definition at line 248 of file CICPCriteriaNRD.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::checkRegistrationCondition(), and mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::CICPCriteriaNRD().
|
protectedinherited |
Window to use.
Definition at line 157 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::fitGraphInView(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::toggleLaserScansVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::toggleOptDistanceVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization(), and mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::updateVisuals().
|
protectedinherited |
Pointer to the CWindowManager object used to store visuals-related instances.
Definition at line 155 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::toggleLaserScansVisualization(), mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateGraphVisualization(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::updateOptDistanceVisualization().
|
protectedinherited |
CWindowObserver object for monitoring various visual-oriented events.
Definition at line 160 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initGraphVisualization(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::initializeVisuals(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::initOptDistanceVisualization().
TParams mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::params |
Definition at line 184 of file CICPCriteriaNRD.h.
|
staticprotectedinherited |
Definition at line 176 of file CRegistrationDeciderOrOptimizer.h.
Referenced by mrpt::graphslam::deciders::CICPCriteriaNRD< GRAPH_T >::getDescriptiveReport(), mrpt::graphslam::deciders::CICPCriteriaERD< GRAPH_T >::getDescriptiveReport(), and mrpt::graphslam::optimizers::CLevMarqGSO< GRAPH_T >::getDescriptiveReport().
Page generated by Doxygen 1.8.14 for MRPT 1.5.6 Git: 4c65e8431 Tue Apr 24 08:18:17 2018 +0200 at lun oct 28 01:35:26 CET 2019 |