Main MRPT website > C++ reference
MRPT logo
create_kf2kf_edge.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2015, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+ */
9 
10 #pragma once
11 
12 namespace mrpt { namespace srba {
13 
14 template <class KF2KF_POSE_TYPE,class LM_TYPE,class OBS_TYPE,class RBA_OPTIONS>
16  const TKeyFrameID new_kf_id,
17  const TPairKeyFrameID & new_edge,
18  const typename traits_t::new_kf_observations_t & obs,
19  const pose_t &init_inv_pose_val )
20 {
21  // 1) Create new kf2kf structures (all but stuff related to the spanning trees)
22  // ---------------------------------------------------------------------------------
23  const size_t ed_id = rba_state.alloc_kf2kf_edge( new_edge, init_inv_pose_val ); // O(1)
24 
25  m_profiler.enter("define_new_keyframe.st.update_symbolic");
26 
27  // 2) Update symbolic spanning trees:
28  // ---------------------------------------------------------------------------------
29  rba_state.spanning_tree.update_symbolic_new_node(
30  new_kf_id,
31  new_edge,
32  parameters.srba.max_tree_depth,
33  (parameters.srba.edge_creation_policy==ecpLinearGraph), // check_all_obs_are_connected
34  &obs // Only needed under the "linear graph" policy, to determine missing parts of the spanning tree to be filled in here
35  );
36 
37  m_profiler.leave("define_new_keyframe.st.update_symbolic");
38 
39  return ed_id;
40 }
41 
42 } } // end NS
KF2KF_POSE_TYPE::pose_t pose_t
The type of relative poses (e.g. mrpt::poses::CPose3D)
Definition: RbaEngine.h:87
std::deque< new_kf_observation_t > new_kf_observations_t
A set of all the observations made from a new KF, as provided by the user.
Definition: srba_types.h:422
Each keyframe is only connected to its predecessor (no loop closures)
Definition: srba_types.h:168
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
std::pair< TKeyFrameID, TKeyFrameID > TPairKeyFrameID
Used to represent the IDs of a directed edge (first –> second)
Definition: srba_types.h:34
size_t create_kf2kf_edge(const TKeyFrameID new_kf_id, const TPairKeyFrameID &new_edge, const typename traits_t::new_kf_observations_t &obs, const pose_t &init_inv_pose_val=pose_t())
Users normally won't need to call this directly.
uint64_t TKeyFrameID
Numeric IDs for key-frames (KFs)
Definition: srba_types.h:31



Page generated by Doxygen 1.8.9.1 for MRPT 1.3.0 SVN: at Sun Sep 13 03:55:12 UTC 2015