SLAM methods related to graphs of pose constraints.
Classes | |
struct | graphslam_traits |
Auxiliary traits template for use among graph-slam problems to make life easier with these complicated, long data type names. More... | |
struct | TResultInfoSpaLevMarq |
Output information for mrpt::graphslam::optimize_graph_spa_levmarq(). More... | |
Functions | |
template<class EDGE_TYPE , class MAPS_IMPLEMENTATION > | |
void SLAM_IMPEXP | optimize_graph_spa_levmarq (mrpt::poses::CNetworkOfPoses< EDGE_TYPE, MAPS_IMPLEMENTATION > &graph, TResultInfoSpaLevMarq &out_info, const std::set< mrpt::utils::TNodeID > *nodes_to_optimize=NULL, const mrpt::utils::TParametersDouble &extra_params=mrpt::utils::TParametersDouble(), typename graphslam_traits< EDGE_TYPE, MAPS_IMPLEMENTATION >::TFunctorFeedback functor_feedback=NULL) |
Optimize a graph of pose constraints using the Sparse Pose Adjustment (SPA) sparse representation and a Levenberg-Marquartd optimizer. |
void SLAM_IMPEXP mrpt::graphslam::optimize_graph_spa_levmarq | ( | mrpt::poses::CNetworkOfPoses< EDGE_TYPE, MAPS_IMPLEMENTATION > & | graph, | |
TResultInfoSpaLevMarq & | out_info, | |||
const std::set< mrpt::utils::TNodeID > * | nodes_to_optimize = NULL , |
|||
const mrpt::utils::TParametersDouble & | extra_params = mrpt::utils::TParametersDouble() , |
|||
typename graphslam_traits< EDGE_TYPE, MAPS_IMPLEMENTATION >::TFunctorFeedback | functor_feedback = NULL | |||
) |
Optimize a graph of pose constraints using the Sparse Pose Adjustment (SPA) sparse representation and a Levenberg-Marquartd optimizer.
This method works for all types of graphs derived from CNetworkOfPoses (see its reference mrpt::poses::CNetworkOfPoses for the list). The input data are all the pose constraints in graph (graph.edges), and the gross first estimations of the "global" pose coordinates (in graph.nodes).
Note that these first coordinates can be obtained with mrpt::poses::CNetworkOfPoses::dijkstra_nodes_estimate().
The method implemented in this file is based on this work:
[in,out] | graph | The input edges and output poses. |
[out] | out_info | Some basic output information on the process. |
[in] | nodes_to_optimize | The list of nodes whose global poses are to be optimized. If NULL (default), all the node IDs are optimized (but that marked as root in the graph). |
[in] | extra_params | Optional parameters, see below. |
[in] | functor_feedback | Optional: a pointer to a user function can be set here to be called on each LM loop iteration (eg to refresh the current state and error, refresh a GUI, etc.) |
List of optional parameters by name in "extra_params":
EDGE_TYPE | The type of the edges. Typically users won't have to write this template argument by hand, since the compiler will auto-fit it depending on the type of the graph object. | |
MAPS_IMPLEMENTATION | The implementation for the map: NodeID -> node_pose. Read more on this in mrpt::poses::CNetworkOfPoses |
Page generated by Doxygen 1.7.1 for MRPT 0.9.4 SVN: at Mon Jan 10 23:33:19 UTC 2011 |