Go to the documentation of this file.
121 template <
class GRAPH_T =
typename mrpt::graphs::CNetworkOfPoses2DInf>
132 using pose_t =
typename GRAPH_T::constraint_t::type_value;
134 double, constraint_t::state_length, constraint_t::state_length>;
153 const std::map<std::string, bool>& events_occurred);
236 const GRAPH_T& graph,
const size_t iter,
const size_t max_iter,
237 const double cur_sq_error);
329 std::set<mrpt::graphs::TNodeID>* nodes_set,
std::shared_ptr< CObservation > Ptr
size_t m_max_ignored_consec_lcs
Number of consecutive loop closures to ignore after m_max_used_consec_lcs have already been issued.
mrpt::img::TColor optimization_distance_color
GraphVisualizationParams()
void initializeVisuals()
Initialize visual objects in CDisplayWindow (e.g.
std::shared_ptr< CSensoryFrame > Ptr
size_t m_last_total_num_of_nodes
size_t m_curr_used_consec_lcs
Number of consecutive loop closures that are currently registered.
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.
Interface for implementing graphSLAM optimizer classes.
bool checkForLoopClosures()
Check if a loop closure edge was added in the graph.
Interface for implementing node/edge registration deciders or optimizer classes.
mrpt::system::TParametersDouble cfg
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.
size_t m_max_used_consec_lcs
Number of maximum cosecutive loop closures that are allowed to be issued.
size_t m_curr_ignored_consec_lcs
Consecutive Loop Closures that have currently been ignored.
uint64_t TNodeID
A generic numeric type for unique IDs of nodes or entities.
GRAPH_T::edges_map_t last_pair_nodes_to_edge
GraphVisualizationParams viz_params
Parameters relevant to the visualization of the graph.
std::shared_ptr< CRenderizable > Ptr
~GraphVisualizationParams()
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
double distance(const TPoint2D &p1, const TPoint2D &p2)
Gets the distance between two points in a 2D space.
void fitGraphInView()
Set the camera parameters of the CDisplayWindow3D so that the whole graph is viewed in the window.
int text_index_optimization_distance
void updateGraphVisualization()
Called internally for updating the visualization scene for the graph building procedure.
GLsizei GLsizei GLchar * source
void getDescriptiveReport(std::string *report_str) const
Fill the provided string with a detailed report of the decider/optimizer state.
std::string keystroke_graph_autofit
mrpt::opengl::CRenderizable::Ptr initOptDistanceVisualizationInternal(const mrpt::poses::CPose2D &p_unused)
Setup the corresponding Disk/Sphere instance.
std::string keystroke_optimize_graph
Keystroke to manually trigger a full graph optimization.
double optimization_distance
optimize only for the nodes found in a certain distance from the current position.
Struct for holding the optimization-related variables in a compact form.
bool visualize_optimized_graph
This class allows loading and storing values and vectors of different types from a configuration text...
struct for holding the graph visualization-related variables in a compact form
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).
std::string keystroke_optimization_distance
Keystroke to toggle the optimization distance on/off.
std::string keystroke_graph_toggle
This is a virtual base class for sets of options than can be loaded from and/or saved to configuratio...
void _optimizeGraph(bool is_full_update=false)
Optimize the given graph.
void updateVisuals()
Update the relevant visual features in CDisplayWindow.
bool checkForFullOptimization()
Decide whether to issue a full graph optimization.
void optimizeGraph()
Wrapper around _optimizeGraph which first locks the section and then calls the _optimizeGraph method.
bool optimization_on_second_thread
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.
void dumpToTextStream(std::ostream &out) const
This method should clearly display all the contents of the structure in textual form,...
void toggleOptDistanceVisualization()
toggle the optimization distance object on and off
void initGraphVisualization()
Initialize objects relateed to the Graph Visualization.
OptimizationParams opt_params
Parameters relevant to the optimizatio nfo the graph.
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.
bool justFullyOptimizedGraph() const
void dumpToTextStream(std::ostream &out) const
This method should clearly display all the contents of the structure in textual form,...
typename GRAPH_T::constraint_t::type_value pose_t
type of underlying poses (2D/3D)
void initOptDistanceVisualization()
Initialize the Disk/Sphere used for visualizing the optimization distance.
FullOptimizationPolicy
Enumeration that defines the behaviors towards using or ignoring a newly added loop closure to fully ...
void toggleGraphVisualization()
Toggle the graph visualization on and off.
bool m_just_fully_optimized_graph
Indicates whether a full graph optimization was just issued.
typename GRAPH_T::constraint_t constraint_t
Handy typedefs.
FullOptimizationPolicy m_optimization_policy
Should I fully optimize the graph on loop closure?
void loadParams(const std::string &source_fname)
Load the necessary for the decider/optimizer configuration parameters.
GLsizei const GLchar ** string
void notifyOfWindowEvents(const std::map< std::string, bool > &events_occurred)
Get a list of the window events that happened since the last call.
Levenberg-Marquardt non-linear graph slam optimization scheme.
double offset_y_optimization_distance
size_t m_min_nodes_for_optimization
Minimum number of nodes before we try optimizing the graph.
mrpt::system::TParametersDouble cfg
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.
std::shared_ptr< CActionCollection > Ptr
std::thread m_thread_optimize
void updateOptDistanceVisualization()
Update the position of the disk indicating the distance in which Levenberg-Marquardt graph optimizati...
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST | |