Go to the documentation of this file.
116 template <
class GRAPH_T =
typename mrpt::graphs::CNetworkOfPoses2DInf>
127 using pose_t =
typename GRAPH_T::constraint_t::type_value;
129 double, constraint_t::state_length, constraint_t::state_length>;
148 const std::map<std::string, bool>& events_occurred)
override;
160 const std::string& section)
override;
198 const std::string& section)
override;
210 void loadParams(
const std::string& source_fname)
override;
226 const GRAPH_T& graph,
const size_t iter,
const size_t max_iter,
227 const double cur_sq_error);
319 std::set<mrpt::graphs::TNodeID>* nodes_set,
std::shared_ptr< CObservation > Ptr
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
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()
OptimizationPolicy
Enumeration that defines the behaviors towards using or ignoring a newly added loop closure to fully ...
void optimizeGraph() override
Wrapper around _optimizeGraph which first locks the section and then calls the _optimizeGraph method.
void loadParams(const std::string &source_fname) override
Load the necessary for the decider/optimizer configuration parameters.
size_t m_last_total_num_of_nodes
OptimizationPolicy m_optimization_policy
size_t m_curr_used_consec_lcs
Number of consecutive loop closures that are currently registered.
std::shared_ptr< mrpt::obs ::CSensoryFrame > Ptr
bool updateState(mrpt::obs::CActionCollection::Ptr action, mrpt::obs::CSensoryFrame::Ptr observations, mrpt::obs::CObservation::Ptr observation) override
Generic method for fetching the incremental action-observations (or observation-only) measurements.
Interface for implementing graphSLAM optimizer classes.
void loadFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion) override
This method load the options from a ".ini"-like file or memory-stored string list.
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 getDescriptiveReport(std::string *report_str) const override
Fill the provided string with a detailed report of the decider/optimizer state.
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.
void notifyOfWindowEvents(const std::map< std::string, bool > &events_occurred) override
Get a list of the window events that happened since the last call.
uint64_t TNodeID
A generic numeric type for unique IDs of nodes or entities.
~CLevMarqGSO() override=default
GRAPH_T::edges_map_t last_pair_nodes_to_edge
std::shared_ptr< mrpt::obs ::CActionCollection > Ptr
mrpt::vision::TStereoCalibResults out
GraphVisualizationParams viz_params
Parameters relevant to the visualization of the graph.
~OptimizationParams() override
std::shared_ptr< CRenderizable > Ptr
double distance(const TPoint2D &p1, const TPoint2D &p2)
Gets the distance between two points in a 2D space.
void initializeVisuals() override
Initialize visual objects in CDisplayWindow (e.g.
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.
std::string keystroke_graph_autofit
mrpt::opengl::CRenderizable::Ptr initOptDistanceVisualizationInternal(const mrpt::poses::CPose2D &p_unused)
Setup the corresponding Disk/Sphere instance.
~GraphVisualizationParams() override
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.
bool justFullyOptimizedGraph() const override
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.
bool checkForFullOptimization()
Decide whether to issue a full graph optimization.
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 override
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.
void updateVisuals() override
Update the relevant visual features in CDisplayWindow.
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.
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.
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.
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 printParams() const override
void dumpToTextStream(std::ostream &out) const override
This method should clearly display all the contents of the structure in textual form,...
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 2.0.3 at Thu May 21 21:53:32 UTC 2020 | |