10 #ifndef CREGISTRATIONDECIDEROROPTIMIZER_H
11 #define CREGISTRATIONDECIDEROROPTIMIZER_H
25 namespace mrpt {
namespace graphslam {
42 template<
class GRAPH_T=
typename mrpt::graphs::CNetworkOfPoses2DInf>
44 public mrpt::utils::COutputLogger
59 mrpt::obs::CActionCollectionPtr action,
60 mrpt::obs::CSensoryFramePtr observations,
61 mrpt::obs::CObservationPtr observation ) = 0;
108 const std::map<std::string, bool>& events_occurred);
Interface for implementing node/edge registration deciders or optimizer classes.
virtual void setClassName(const std::string &name)
virtual void updateVisuals()
Update the relevant visual features in CDisplayWindow.
mrpt::utils::CTimeLogger m_time_logger
Time logger instance.
mrpt::graphslam::CWindowObserver * m_win_observer
CWindowObserver object for monitoring various visual-oriented events.
mrpt::graphslam::CWindowManager * m_win_manager
Pointer to the CWindowManager object used to store visuals-related instances.
mrpt::synch::CCriticalSection * m_graph_section
virtual void initializeVisuals()
Initialize visual objects in CDisplayWindow (e.g.
virtual void setWindowManagerPtr(mrpt::graphslam::CWindowManager *win_manager)
Fetch a CWindowManager pointer.
virtual bool updateState(mrpt::obs::CActionCollectionPtr action, mrpt::obs::CSensoryFramePtr observations, mrpt::obs::CObservationPtr observation)=0
Generic method for fetching the incremental action-observations (or observation-only) measurements.
virtual void initializeLoggers(const std::string &name)
Initialize the COutputLogger, CTimeLogger instances given the name of the decider/optimizer at hand.
static const std::string report_sep
virtual void assertVisualsVars()
Handy function for making all the visuals assertions in a compact manner.
virtual void loadParams(const std::string &source_fname)
Load the necessary for the decider/optimizer configuration parameters.
virtual void notifyOfWindowEvents(const std::map< std::string, bool > &events_occurred)
Get a list of the window events that happened since the last call.
mrpt::gui::CDisplayWindow3D * m_win
Window to use.
virtual void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
static const std::string header_sep
Separator string to be used in debugging messages.
bool m_initialized_visuals
std::string getClassName() const
std::string m_class_name
Name of the class instance.
bool isMultiRobotSlamClass()
virtual void setGraphPtr(GRAPH_T *graph)
Fetch the graph on which the decider/optimizer will work on.
virtual ~CRegistrationDeciderOrOptimizer()
\Dtor
bool is_mr_slam_class
Boolean indicating if the current class can be used in multi-robot SLAM operations.
virtual void setCriticalSectionPtr(mrpt::synch::CCriticalSection *graph_section)
Fetch a mrpt::synch::CCriticalSection for locking the GRAPH_T resource.
CRegistrationDeciderOrOptimizer()
\Default Ctor
virtual void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
GRAPH_T * m_graph
Pointer to the graph that is under construction.
Class acts as a container for storing pointers to mrpt::gui::CDisplayWindow3D, mrpt::graphslam::CWind...
Monitor events in the visualization window.
A graphical user interface (GUI) for efficiently rendering 3D scenes in real-time.
This class provides simple critical sections functionality.
A versatile "profiler" that logs the time spent within each pair of calls to enter(X)-leave(X),...
GLuint const GLchar * name
GLsizei const GLchar ** string
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.