Definition at line 499 of file srba_types.h.
#include <mrpt/srba/srba_types.h>
Classes | |
| struct | TSpanningTreeSym |
| The "symbolic" part of the spanning tree. More... | |
Public Types | |
| typedef mrpt::utils::map_as_vector< TKeyFrameID, std::map< TKeyFrameID, TSpanTreeEntry >, std::deque< std::pair< TKeyFrameID, std::map< TKeyFrameID, TSpanTreeEntry > > > > | next_edge_maps_t |
| The definition seems complex but behaves just like: std::map< TKeyFrameID, std::map<TKeyFrameID,TSpanTreeEntry> > More... | |
| typedef mrpt::utils::map_as_vector< TKeyFrameID, std::map< TKeyFrameID, k2k_edge_vector_t >, std::deque< std::pair< TKeyFrameID, std::map< TKeyFrameID, k2k_edge_vector_t > > > > | all_edges_maps_t |
| The definition seems complex but behaves just like: std::map< TKeyFrameID, std::map<TKeyFrameID, k2k_edge_vector_t> > More... | |
Public Member Functions | |
Spanning tree main operations | |
| void | clear () |
| Empty all sym & num data. More... | |
| void | update_symbolic_new_node (const TKeyFrameID new_node_id, const TPairKeyFrameID &new_edge, const topo_dist_t max_depth, const bool check_all_obs_are_connected=false, const new_kf_observations_t *obs=NULL) |
| Incremental update of spanning trees after the insertion of ONE new node and ONE OR MORE edges. More... | |
| size_t | update_numeric (bool skip_marked_as_uptodate=false) |
| Updates all the numeric SE(3) poses from ALL the sym.all_edges. More... | |
| size_t | update_numeric (const std::set< TKeyFrameID > &kfs_to_update, bool skip_marked_as_uptodate=false) |
| idem, for the set of edges that have as "from" node any of the IDs in the passed set. More... | |
| size_t | update_numeric_only_all_from_node (const typename all_edges_maps_t::const_iterator &it, bool skip_marked_as_uptodate=false) |
| Updates all the numeric SE(3) poses from a given entry from sym.all_edges[i]. More... | |
Spanning tree misc. operations | |
| void | dump_as_text (std::string &s) const |
| Useful for debugging. More... | |
| bool | dump_as_text_to_file (const std::string &sFileName) const |
| Useful for debugging. More... | |
| bool | save_as_dot_file (const std::string &sFileName, const std::vector< TKeyFrameID > &kf_roots_to_save=std::vector< TKeyFrameID >()) const |
| Saves all (or a subset of all) the spanning trees If kf_roots_to_save is left empty, all STs are saved. More... | |
| void | get_stats (size_t &num_nodes_min, size_t &num_nodes_max, double &num_nodes_mean, double &num_nodes_std) const |
| Returns min/max and mean/std stats on the number of nodes found on all the spanning trees. More... | |
Public Attributes | |
| const TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS > * | m_parent |
Data structures | |
| struct mrpt::srba::TRBA_Problem_state::TSpanningTree::TSpanningTreeSym | sym |
| kf2kf_pose_traits< KF2KF_POSE_TYPE >::TRelativePosesForEachTarget | num |
| "Numeric" spanning tree: the SE(3) pose of each node wrt to any other: num[SOURCE] |–> map[TARGET] = CPose3D of TARGET as seen from SOURCE (typ: SOURCE is the observing KF, TARGET is the reference base of the observed landmark) More... | |
| typedef mrpt::utils::map_as_vector< TKeyFrameID, std::map<TKeyFrameID, k2k_edge_vector_t>, std::deque<std::pair<TKeyFrameID,std::map<TKeyFrameID, k2k_edge_vector_t > > > > mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::all_edges_maps_t |
The definition seems complex but behaves just like: std::map< TKeyFrameID, std::map<TKeyFrameID, k2k_edge_vector_t> >
Definition at line 513 of file srba_types.h.
| typedef mrpt::utils::map_as_vector< TKeyFrameID, std::map<TKeyFrameID,TSpanTreeEntry>, std::deque<std::pair<TKeyFrameID,std::map<TKeyFrameID,TSpanTreeEntry> > > > mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::next_edge_maps_t |
The definition seems complex but behaves just like: std::map< TKeyFrameID, std::map<TKeyFrameID,TSpanTreeEntry> >
Definition at line 506 of file srba_types.h.
| void mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::clear | ( | void | ) |
Empty all sym & num data.
Definition at line 19 of file spantree_misc.h.
References mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::TSpanningTreeSym::all_edges, mrpt::utils::map_as_vector< KEY, VALUE, VECTOR_T >::clear(), mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::TSpanningTreeSym::next_edge, mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::num, and mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::sym.
Referenced by mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::clear().
| void mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::dump_as_text | ( | std::string & | s | ) | const |
Useful for debugging.
Definition at line 28 of file spantree_misc.h.
References mrpt::format(), and mrpt::mrpt::format().
| bool mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::dump_as_text_to_file | ( | const std::string & | sFileName | ) | const |
Useful for debugging.
Definition at line 71 of file spantree_misc.h.
Referenced by mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_symbolic_new_node().
| void mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::get_stats | ( | size_t & | num_nodes_min, |
| size_t & | num_nodes_max, | ||
| double & | num_nodes_mean, | ||
| double & | num_nodes_std | ||
| ) | const |
Returns min/max and mean/std stats on the number of nodes found on all the spanning trees.
Runs in O(N), N=number of keyframes.
Definition at line 258 of file spantree_misc.h.
References mrpt::math::meanAndStd(), and mrpt::math::minimum_maximum().
| bool mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::save_as_dot_file | ( | const std::string & | sFileName, |
| const std::vector< TKeyFrameID > & | kf_roots_to_save = std::vector<TKeyFrameID>() |
||
| ) | const |
Saves all (or a subset of all) the spanning trees If kf_roots_to_save is left empty, all STs are saved.
Otherwise, only those with the given roots.
Definition at line 122 of file spantree_misc.h.
References ASSERT_, mrpt::format(), and mrpt::mrpt::format().
Referenced by mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_symbolic_new_node().
| size_t mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_numeric | ( | bool | skip_marked_as_uptodate = false | ) |
Updates all the numeric SE(3) poses from ALL the sym.all_edges.
Definition at line 99 of file spantree_update_numeric.h.
| size_t mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_numeric | ( | const std::set< TKeyFrameID > & | kfs_to_update, |
| bool | skip_marked_as_uptodate = false |
||
| ) |
idem, for the set of edges that have as "from" node any of the IDs in the passed set.
Definition at line 111 of file spantree_update_numeric.h.
| size_t mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_numeric_only_all_from_node | ( | const typename all_edges_maps_t::const_iterator & | it, |
| bool | skip_marked_as_uptodate = false |
||
| ) |
Updates all the numeric SE(3) poses from a given entry from sym.all_edges[i].
Definition at line 19 of file spantree_update_numeric.h.
References mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::num.
| void mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_symbolic_new_node | ( | const TKeyFrameID | new_node_id, |
| const TPairKeyFrameID & | new_edge, | ||
| const topo_dist_t | max_depth, | ||
| const bool | check_all_obs_are_connected = false, |
||
| const new_kf_observations_t * | obs = NULL |
||
| ) |
Incremental update of spanning trees after the insertion of ONE new node and ONE OR MORE edges.
| [in] | max_distance | Is the maximum distance at which a neighbor can be so we store the shortest path to it. |
Definition at line 19 of file spantree_update_symbolic.h.
References mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::TSpanningTreeSym::all_edges, ASSERT_, ASSERT_NOT_EQUAL_, ASSERTDEB_, mrpt::utils::map_as_vector< KEY, VALUE, VECTOR_T >::begin(), mrpt::srba::TSpanTreeEntry::distance, mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::dump_as_text_to_file(), mrpt::utils::map_as_vector< KEY, VALUE, VECTOR_T >::end(), mrpt::srba::observation_traits< OBS_TRAITS >::observation_t::feat_id, mrpt::mrpt::format(), mrpt::srba::getTheOtherFromPair(), mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::m_parent, mrpt::srba::TSpanTreeEntry::next, mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::TSpanningTreeSym::next_edge, mrpt::srba::rba_joint_parameterization_traits_t< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE >::new_kf_observation_t::obs, mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::save_as_dot_file(), mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::sym, and THROW_EXCEPTION.
| const TRBA_Problem_state<KF2KF_POSE_TYPE,LM_TYPE,OBS_TYPE,RBA_OPTIONS>* mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::m_parent |
| kf2kf_pose_traits<KF2KF_POSE_TYPE>::TRelativePosesForEachTarget mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::num |
"Numeric" spanning tree: the SE(3) pose of each node wrt to any other: num[SOURCE] |–> map[TARGET] = CPose3D of TARGET as seen from SOURCE (typ: SOURCE is the observing KF, TARGET is the reference base of the observed landmark)
Numeric poses are valid after calling update_numeric()
NOTE: Both symmetric poses, e.g. (i,j) and also (j,i), are stored for convenience of being able to get references/pointers to them.
Definition at line 550 of file srba_types.h.
Referenced by mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::clear(), and mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::update_numeric_only_all_from_node().
| struct mrpt::srba::TRBA_Problem_state::TSpanningTree::TSpanningTreeSym mrpt::srba::TRBA_Problem_state< KF2KF_POSE_TYPE, LM_TYPE, OBS_TYPE, RBA_OPTIONS >::TSpanningTree::sym |
| Page generated by Doxygen 1.8.9.1 for MRPT 1.3.0 SVN: at Sun Sep 13 03:55:12 UTC 2015 |