10 #ifndef CICPCRITERIAERD_H 11 #define CICPCRITERIAERD_H 45 namespace mrpt {
namespace graphslam {
namespace deciders {
110 template<
class GRAPH_T=
typename mrpt::graphs::CNetworkOfPoses2DInf >
120 typedef typename GRAPH_T::constraint_t::type_value
pose_t;
133 mrpt::obs::CActionCollectionPtr action,
134 mrpt::obs::CSensoryFramePtr observations,
135 mrpt::obs::CObservationPtr observation );
138 const std::map<std::string, bool>& events_occurred);
140 std::map<std::string, int>* edge_types_to_num)
const;
183 const std::set<mrpt::utils::TNodeID>& nodes_set);
185 const std::set<mrpt::utils::TNodeID>& nodes_set);
191 mrpt::obs::CSensoryFramePtr observations,
192 mrpt::obs::CObservationPtr observation );
197 std::set<mrpt::utils::TNodeID> *nodes_set,
204 int sleep_time=500 );
parent_t::range_ops_t range_ops_t
std::map< mrpt::utils::TNodeID, mrpt::obs::CObservation2DRangeScanPtr > m_nodes_to_laser_scans2D
std::map< mrpt::utils::TNodeID, mrpt::obs::CObservation2DRangeScanPtr > nodes_to_scans2D_t
ICP-based Edge Registration.
void notifyOfWindowEvents(const std::map< std::string, bool > &events_occurred)
Get a list of the window events that happened since the last call.
bool updateState(mrpt::obs::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr observation)
Generic method for fetching the incremental action/observation readings from the calling function...
void dumpVisibilityErrorMsg(std::string viz_flag, int sleep_time=500)
void checkRegistrationCondition2D(const std::set< mrpt::utils::TNodeID > &nodes_set)
GRAPH_T::constraint_t constraint_t
Handy typedefs.
double ICP_goodness_thresh
mrpt::utils::TColor m_search_disk_color
see Constructor for initialization
Edge Registration Decider Interface from which RangeScanner-based ERDs can inherit from...
void toggleLaserScansVisualization()
togle the LaserScans visualization on and off
This class allows loading and storing values and vectors of different types from a configuration text...
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
void checkIfInvalidDataset(mrpt::obs::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr observation)
size_t LC_min_nodeid_diff
int m_text_index_search_disk
uint64_t TNodeID
The type for node IDs in graphs of different types.
mrpt::obs::CObservation2DRangeScanPtr m_last_laser_scan2D
mrpt::obs::CObservation2DRangeScanPtr m_fake_laser_scan2D
void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
std::string keystroke_laser_scans
double m_offset_y_search_disk
GLsizei const GLchar ** string
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.
mrpt::utils::TColor m_laser_scans_color
see Constructor for initialization
Class for keeping together all the RangeScanner-related functions.
std::map< std::string, int > m_edge_types_to_nums
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
void registerNewEdge(const mrpt::utils::TNodeID &from, const mrpt::utils::TNodeID &to, const constraint_t &rel_edge)
Register a new constraint/edge in the current graph.
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.
CRangeScanEdgeRegistrationDecider< GRAPH_T > parent_t
parent_t::nodes_to_scans2D_t nodes_to_scans2D_t
std::map< mrpt::utils::TNodeID, mrpt::obs::CObservation3DRangeScanPtr > m_nodes_to_laser_scans3D
void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
GLsizei GLsizei GLchar * source
void getNearbyNodesOf(std::set< mrpt::utils::TNodeID > *nodes_set, const mrpt::utils::TNodeID &cur_nodeID, double distance)
Get a list of the nodeIDs whose position is within a certain distance to the specified nodeID...
CICPCriteriaERD< GRAPH_T > decider_t
self type - Handy typedef
GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D).
void updateVisuals()
Update the relevant visual features in CDisplayWindow.
void getEdgesStats(std::map< std::string, int > *edge_types_to_num) const
Fill the given map with the type of registered edges as well as the corresponding number of registrat...
bool visualize_laser_scans
double BASE_IMPEXP distance(const TPoint2D &p1, const TPoint2D &p2)
Gets the distance between two points in a 2D space.
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
void loadParams(const std::string &source_fname)
Fetch the latest observation that the current instance received (most probably during a call to the u...
mrpt::obs::CObservation3DRangeScanPtr m_last_laser_scan3D
std::string scans_img_external_dir
void initializeVisuals()
Initialize visual objects in CDisplayWindow (e.g.
void checkRegistrationCondition3D(const std::set< mrpt::utils::TNodeID > &nodes_set)