117 template <
class GRAPH_T =
typename mrpt::graphs::CNetworkOfPoses2DInf>
128 using pose_t =
typename GRAPH_T::constraint_t::type_value;
130 double, constraint_t::state_length, constraint_t::state_length>;
149 const std::map<std::string, bool>& events_occurred);
232 const GRAPH_T& graph,
const size_t iter,
const size_t max_iter,
233 const double cur_sq_error);
325 std::set<mrpt::graphs::TNodeID>* nodes_set,
void initGraphVisualization()
Initialize objects relateed to the Graph Visualization.
mrpt::img::TColor optimization_distance_color
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.
static void levMarqFeedback(const GRAPH_T &graph, const size_t iter, const size_t max_iter, const double cur_sq_error)
Feedback of the Levenberg-Marquardt graph optimization procedure.
std::string keystroke_graph_autofit
bool checkForFullOptimization()
Decide whether to issue a full graph optimization.
void getNearbyNodesOf(std::set< mrpt::graphs::TNodeID > *nodes_set, const mrpt::graphs::TNodeID &cur_nodeID, double distance)
Get a list of the nodeIDs whose position is within a certain distance to the specified nodeID...
GraphVisualizationParams()
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
mrpt::opengl::CRenderizable::Ptr initOptDistanceVisualizationInternal(const mrpt::poses::CPose2D &p_unused)
Setup the corresponding Disk/Sphere instance.
void updateGraphVisualization()
Called internally for updating the visualization scene for the graph building procedure.
void toggleGraphVisualization()
Toggle the graph visualization on and off.
Struct for holding the optimization-related variables in a compact form.
FullOptimizationPolicy
Enumeration that defines the behaviors towards using or ignoring a newly added loop closure to fully ...
void optimizeGraph()
Wrapper around _optimizeGraph which first locks the section and then calls the _optimizeGraph method...
mrpt::system::TParametersDouble cfg
typename GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D)
bool m_just_fully_optimized_graph
Indicates whether a full graph optimization was just issued.
bool justFullyOptimizedGraph() const
Used by the caller to query for possible full graph optimization on the latest optimizer run...
std::string keystroke_optimize_graph
Keystroke to manually trigger a full graph optimization.
~GraphVisualizationParams()
double optimization_distance
optimize only for the nodes found in a certain distance from the current position.
mrpt::system::TParametersDouble cfg
void printParams() const
Print the problem parameters - relevant to the decider/optimizer to the screen in a unified/compact w...
void toggleOptDistanceVisualization()
toggle the optimization distance object on and off
OptimizationParams opt_params
Parameters relevant to the optimizatio nfo the graph.
void initOptDistanceVisualization()
Initialize the Disk/Sphere used for visualizing the optimization distance.
typename GRAPH_T::constraint_t constraint_t
Handy typedefs.
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 class allows loading and storing values and vectors of different types from a configuration text...
std::thread m_thread_optimize
GRAPH_T::edges_map_t last_pair_nodes_to_edge
void initializeVisuals()
Initialize visual objects in CDisplayWindow (e.g.
void loadParams(const std::string &source_fname)
Load the necessary for the decider/optimizer configuration parameters.
Interface for implementing node/edge registration deciders or optimizer classes.
FullOptimizationPolicy m_optimization_policy
Should I fully optimize the graph on loop closure?
size_t m_min_nodes_for_optimization
Minimum number of nodes before we try optimizing the graph.
bool optimization_on_second_thread
int text_index_optimization_distance
void notifyOfWindowEvents(const std::map< std::string, bool > &events_occurred)
Get a list of the window events that happened since the last call.
size_t m_max_ignored_consec_lcs
Number of consecutive loop closures to ignore after m_max_used_consec_lcs have already been issued...
size_t m_last_total_num_of_nodes
GLsizei const GLchar ** string
bool visualize_optimized_graph
bool checkForLoopClosures()
Check if a loop closure edge was added in the graph.
size_t m_curr_ignored_consec_lcs
Consecutive Loop Closures that have currently been ignored.
std::string keystroke_optimization_distance
Keystroke to toggle the optimization distance on/off.
std::string keystroke_graph_toggle
Interface for implementing graphSLAM optimizer classes.
void updateOptDistanceVisualization()
Update the position of the disk indicating the distance in which Levenberg-Marquardt graph optimizati...
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
size_t m_max_used_consec_lcs
Number of maximum cosecutive loop closures that are allowed to be issued.
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.
GLsizei GLsizei GLchar * source
uint64_t TNodeID
A generic numeric type for unique IDs of nodes or entities.
GraphVisualizationParams viz_params
Parameters relevant to the visualization of the graph.
double offset_y_optimization_distance
size_t m_curr_used_consec_lcs
Number of consecutive loop closures that are currently registered.
Levenberg-Marquardt non-linear graph slam optimization scheme.
bool updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation)
Generic method for fetching the incremental action/observation readings from the calling function...
void fitGraphInView()
Set the camera parameters of the CDisplayWindow3D so that the whole graph is viewed in the window...
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.
void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
struct for holding the graph visualization-related variables in a compact form
double distance(const TPoint2D &p1, const TPoint2D &p2)
Gets the distance between two points in a 2D space.
void updateVisuals()
Update the relevant visual features in CDisplayWindow.
void _optimizeGraph(bool is_full_update=false)
Optimize the given graph.