Classes | Namespaces | Modules | Files | Typedefs | Enumerator | Functions | Variables
Pose-Graph

Declaration of the pose-graph Data types and implementation of NodeBuilder and EdgeBuilder interfaces. More...

Collaboration diagram for Pose-Graph:

Classes

class  vslam::AllWeightsOneWeightMap< PoseGraphT >
 property map that represents edge weights in the graph, where all edges have weight 1. More...
class  vslam::FeatureID< G >
 unique identification af landmark observation (feature) in the pose-graph. More...
class  vslam::PerformanceLogger< G >
 Records time elapsed between construction and destruction of this object. More...
class  vslam::Points< G >
struct  boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >
 property map that represents edge weights in the graph, where all edges have weight 1. More...
class  vslam::VertexDebugInfo
 Debugging info for a vertex. More...

Namespaces

namespace  vslam::lmdetails
 

Implementation details of Landmark Manager module.


Modules

 Utils
 

Set of utilities useful across multiple modules that operate on pose-graph.


 BGL Graph Properties
 

Boost Graph Library (BGL) properties for BGL graph PoseGraph forms the representation of of pose-graph part of our Main Data Structure (MDS).


 Node Builder
 Edge Builder

Files

file  graph_builder.h
 

Contains code that performs functionality of Node Builder, Node Destroyer, Edge Builder and Landmark Manager (which are components of Main Data Structure).


file  graph_utils.h
file  pose_graph.h
 

Interface for Main Data Structure.


Typedefs

typedef readable_property_map_tag boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::category
typedef graph_traits< G >
::edge_descriptor 
vslam::EdgeBuilder< G >::EdgeD
typedef graph_traits< G >
::edge_descriptor 
vslam::MonoFtrClassEdgeBuilder< G >::EdgeD
typedef ALIGNED< pair< int,
Vector3d > >::vector 
vslam::IdxPoint3dVec
typedef cv::Mat vslam::OneDetectorNodeBuilder< PoseGraphT >::InputType
typedef cv::Mat vslam::CustomOneDetectorNodeBuilder< PoseGraphT >::InputType
typedef cv::Mat vslam::CustomOneDetectorNodeBuilderFeature2D< PoseGraphT >::InputType
typedef graph_traits
< PoseGraphT >
::edge_descriptor 
boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::key_type
typedef graph_traits
< PoseGraph >::edge_descriptor 
vslam::PGEdgeD
typedef graph_traits
< PoseGraph >
::vertex_descriptor 
vslam::PGVertexD
typedef boost::adjacency_list
< boost::vecS, boost::vecS,
boost::directedS,
boost::property< vertex_kp_t,
std::vector< cv::KeyPoint >
, boost::property
< vertex_desc_t, cv::Mat,
boost::property
< vertex_fix_idx_t, vector
< int >, boost::property
< vertex_seq_t, int,
boost::property
< boost::vertex_keyframe_flag_t,
int, boost::property
< boost::vertex_debug_info_t,
VertexDebugInfo,
boost::property
< boost::vertex_timestamp_t,
uint64_t, boost::property
< vertex_transform_t, SE3 >
> > > > > > >, boost::property
< edge_kp_idx_map_t, map< int,
int >, boost::property
< edge_transform_t, SE3,
boost::property
< edge_rel_scale_error_t,
double > > > > 
vslam::PoseGraph
 representation of a pose-graph.
typedef int boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::reference
typedef int boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::value_type
typedef boost::graph_traits< G >
::vertex_descriptor 
vslam::PerformanceLogger< G >::VDT
typedef graph_traits< G >
::vertex_descriptor 
vslam::EdgeBuilder< G >::VertexD
typedef graph_traits< G >
::vertex_descriptor 
vslam::MonoFtrClassEdgeBuilder< G >::VertexD

Functions

bool vslam::EdgeBuilder< G >::build (const VertexD &src, const VertexD &dst, Points< G > &points, G &g)
 Constructs edge between nodes in the pose-graph.
bool vslam::OneDetectorNodeBuilder< PoseGraphT >::build (const cv::Mat &image, int image_seq_num, uint64_t pose_timestamp, typename graph_traits< PoseGraphT >::vertex_descriptor &vd, PoseGraphT &g)
virtual bool vslam::EdgeBuilder< G >::buildImpl (const VertexD &src, const VertexD &dst, Points< G > &points, G &g)=0
virtual bool vslam::MonoFtrClassEdgeBuilder< G >::buildImpl (const VertexD &src, const VertexD &dst, Points< G > &points, G &g)
 vslam::CustomOneDetectorNodeBuilder< PoseGraphT >::CustomOneDetectorNodeBuilder (std::tr1::shared_ptr< cv::FeatureDetector > _detector, std::tr1::shared_ptr< cv::DescriptorExtractor > _extractor)
 vslam::CustomOneDetectorNodeBuilderFeature2D< PoseGraphT >::CustomOneDetectorNodeBuilderFeature2D (std::tr1::shared_ptr< cv::ORB > _feature_2d_detector)
void vslam::OneDetectorNodeBuilder< PoseGraphT >::demolish (PoseGraphT &g, Points< PoseGraphT > &points, typename graph_traits< PoseGraphT >::vertex_descriptor &vd)
 vslam::FeatureID< G >::FeatureID (typename graph_traits< G >::vertex_descriptor _vd, int _vidx)
void vslam::PerformanceLogger< G >::forceStop ()
template<class PoseGraphT >
int vslam::get (AllWeightsOneWeightMap< PoseGraphT > pmap, typename boost::property_traits< AllWeightsOneWeightMap< PoseGraphT > >::key_type vd)
 interface for property map that represents edge weights in the graph, where all edges have weight 1.
cv::Mat vslam::OneDetectorNodeBuilder< PoseGraphT >::getPoseImage (const InputType &in)
template<class G >
bool vslam::isLandmakFeature (const G &g, const FeatureID< G > &fid)
 Test if given feature has landmark associated with it.
 vslam::MonoFtrClassEdgeBuilder< G >::MonoFtrClassEdgeBuilder (std::tr1::shared_ptr< RobustFeatureMatcher > _rmatcher)
 vslam::NMSOptions::NMSOptions ()
 turn-off NMS.
 vslam::NMSOptions::NMSOptions (int _target_num_points)
 vslam::OneDetectorNodeBuilder< PoseGraphT >::OneDetectorNodeBuilder (NMSOptions _nms_options=NMSOptions())
 vslam::PerformanceLogger< G >::PerformanceLogger (G &_g, VDT _vd, std::string name_tag)
 vslam::PerformanceLogger< G >::~PerformanceLogger ()

Variables

double vslam::VertexDebugInfo::avg_reprojection_error
const int vslam::BAD_INDEX = -1
 value for undefined array index.
shared_ptr< cv::FeatureDetector > vslam::OneDetectorNodeBuilder< PoseGraphT >::detector
bool vslam::NMSOptions::do_nms
map< std::string, double > vslam::VertexDebugInfo::double_propmap
PoseGraphT * vslam::AllWeightsOneWeightMap< PoseGraphT >::dummy
shared_ptr
< cv::DescriptorExtractor > 
vslam::OneDetectorNodeBuilder< PoseGraphT >::extractor
shared_ptr< cv::ORB > vslam::OneDetectorNodeBuilder< PoseGraphT >::feature_2d_detector
G & vslam::PerformanceLogger< G >::g
SE3 vslam::VertexDebugInfo::gt_T_wc
bool vslam::VertexDebugInfo::is_kf
cv::Mat vslam::OneDetectorNodeBuilder< PoseGraphT >::mask
double vslam::VertexDebugInfo::max_reprojection_error
NMSOptions vslam::OneDetectorNodeBuilder< PoseGraphT >::nms_options
int vslam::VertexDebugInfo::num_discontinued_landmarks
int vslam::VertexDebugInfo::num_extended_landmarks
int vslam::VertexDebugInfo::num_init_landmarks
int vslam::VertexDebugInfo::num_uinit_landmarks
lmdetails::PointsLoc< G > vslam::Points< G >::points
std::tr1::shared_ptr
< RobustFeatureMatcher
vslam::MonoFtrClassEdgeBuilder< G >::rmatcher
uint64_t vslam::VertexDebugInfo::seq
ros::WallTime vslam::PerformanceLogger< G >::start_time
bool vslam::PerformanceLogger< G >::stop_forced
std::string vslam::PerformanceLogger< G >::str
int vslam::NMSOptions::target_num_points
uint64_t vslam::VertexDebugInfo::timestamp
graph_traits< G >
::vertex_descriptor 
vslam::FeatureID< G >::vd
VDT vslam::PerformanceLogger< G >::vd
int vslam::FeatureID< G >::vidx

Detailed Description

Declaration of the pose-graph Data types and implementation of NodeBuilder and EdgeBuilder interfaces.

Defines pose-graph part of Main Data Structure. This is discussed here BGL Graph Properties [here].


Typedef Documentation

template<class PoseGraphT >
typedef readable_property_map_tag boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::category

Definition at line 517 of file pose_graph.h.

template<typename G >
typedef graph_traits<G>::edge_descriptor vslam::EdgeBuilder< G >::EdgeD

Reimplemented in vslam::MonoFtrClassEdgeBuilder< G >.

Definition at line 330 of file pose_graph.h.

template<typename G >
typedef graph_traits<G>::edge_descriptor vslam::MonoFtrClassEdgeBuilder< G >::EdgeD

Reimplemented from vslam::EdgeBuilder< G >.

Definition at line 366 of file pose_graph.h.

typedef ALIGNED<pair<int, Vector3d> >::vector vslam::IdxPoint3dVec

Definition at line 276 of file pose_graph.h.

template<class PoseGraphT >
typedef cv::Mat vslam::OneDetectorNodeBuilder< PoseGraphT >::InputType
template<class PoseGraphT >
typedef cv::Mat vslam::CustomOneDetectorNodeBuilder< PoseGraphT >::InputType

Reimplemented from vslam::OneDetectorNodeBuilder< PoseGraphT >.

Definition at line 471 of file pose_graph.h.

template<class PoseGraphT >
typedef cv::Mat vslam::CustomOneDetectorNodeBuilderFeature2D< PoseGraphT >::InputType

Reimplemented from vslam::OneDetectorNodeBuilder< PoseGraphT >.

Definition at line 483 of file pose_graph.h.

template<class PoseGraphT >
typedef graph_traits<PoseGraphT>::edge_descriptor boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::key_type

Definition at line 516 of file pose_graph.h.

typedef graph_traits<PoseGraph>::edge_descriptor vslam::PGEdgeD

Definition at line 274 of file pose_graph.h.

typedef graph_traits<PoseGraph>::vertex_descriptor vslam::PGVertexD

Definition at line 273 of file pose_graph.h.

typedef boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS, boost::property<vertex_kp_t, std::vector<cv::KeyPoint>, boost::property<vertex_desc_t, cv::Mat, boost::property<vertex_fix_idx_t, vector<int>, boost::property<vertex_seq_t, int, boost::property<boost::vertex_keyframe_flag_t, int, boost::property<boost::vertex_debug_info_t, VertexDebugInfo, boost::property<boost::vertex_timestamp_t, uint64_t, boost::property<vertex_transform_t, SE3> > > > > > > >, boost::property<edge_kp_idx_map_t, map<int,int>, boost::property<edge_transform_t, SE3, boost::property<edge_rel_scale_error_t, double> > > > vslam::PoseGraph

representation of a pose-graph.

Todo:
check under which conditions vertex descriptors are invalidated

Definition at line 271 of file pose_graph.h.

template<class PoseGraphT >
typedef int boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::reference

Definition at line 515 of file pose_graph.h.

template<class PoseGraphT >
typedef int boost::property_traits< vslam::AllWeightsOneWeightMap< PoseGraphT > >::value_type

Definition at line 514 of file pose_graph.h.

template<class G>
typedef boost::graph_traits<G>::vertex_descriptor vslam::PerformanceLogger< G >::VDT

Definition at line 287 of file pose_graph.h.

template<typename G >
typedef graph_traits<G>::vertex_descriptor vslam::EdgeBuilder< G >::VertexD

Reimplemented in vslam::MonoFtrClassEdgeBuilder< G >.

Definition at line 329 of file pose_graph.h.

template<typename G >
typedef graph_traits<G>::vertex_descriptor vslam::MonoFtrClassEdgeBuilder< G >::VertexD

Reimplemented from vslam::EdgeBuilder< G >.

Definition at line 365 of file pose_graph.h.


Function Documentation

template<typename G >
bool vslam::EdgeBuilder< G >::build ( const VertexD src,
const VertexD dst,
Points< G > &  points,
G &  g 
) [inline]

Constructs edge between nodes in the pose-graph.

Invariant:
after sucessfull call the following holds
  • all intended 2-view matching is done on the edge and enough correspondences survived (i.e. edge_kp_idx_map contains final values)
  • feature-landmark association is called on the results of 2-view matching
  • initial estimate for RBT T_wc is stored in vertex_transform.
  • edge_transform is computed and is consistent with vertex_transform.
Note:
Pose-graph is oriented graph where edge (u,v) is present iff edge (v,u) is present. Thus tvd and qvd parameters are interchangable.
Method implemented as virtual.

Definition at line 350 of file pose_graph.h.

template<class PoseGraphT >
bool vslam::OneDetectorNodeBuilder< PoseGraphT >::build ( const cv::Mat &  image,
int  image_seq_num,
uint64_t  pose_timestamp,
typename graph_traits< PoseGraphT >::vertex_descriptor &  vd,
PoseGraphT &  g 
)
Parameters:
imagecamera image recorded at the node
image_seq_numunique node id, it is requred for debugging and for identifying vertices in graph-opt.h
vdvertex descriptor for newly constructed vertex.
Returns:
indicates sucess of the call.
Invariant:
after calling this sucessfully, properties vertex_kp, vertex_desc, vertex_fix_idx, vertex_seq contain correct values for vertex vd. If the call fails, g is not modyfied.

Definition at line 178 of file graph_builder.h.

template<typename G >
virtual bool vslam::EdgeBuilder< G >::buildImpl ( const VertexD src,
const VertexD dst,
Points< G > &  points,
G &  g 
) [pure virtual]
template<class G >
bool vslam::MonoFtrClassEdgeBuilder< G >::buildImpl ( const VertexD src,
const VertexD dst,
Points< G > &  points,
G &  g 
) [virtual]
Todo:
remove minimum idsparity check.

Implements vslam::EdgeBuilder< G >.

Definition at line 668 of file graph_builder.h.

template<class PoseGraphT >
vslam::CustomOneDetectorNodeBuilder< PoseGraphT >::CustomOneDetectorNodeBuilder ( std::tr1::shared_ptr< cv::FeatureDetector >  _detector,
std::tr1::shared_ptr< cv::DescriptorExtractor >  _extractor 
) [inline]

Definition at line 472 of file pose_graph.h.

template<class PoseGraphT >
vslam::CustomOneDetectorNodeBuilderFeature2D< PoseGraphT >::CustomOneDetectorNodeBuilderFeature2D ( std::tr1::shared_ptr< cv::ORB >  _feature_2d_detector) [inline]

Definition at line 484 of file pose_graph.h.

template<class PoseGraphT >
void vslam::OneDetectorNodeBuilder< PoseGraphT >::demolish ( PoseGraphT &  g,
Points< PoseGraphT > &  points,
typename graph_traits< PoseGraphT >::vertex_descriptor &  vd 
)
Todo:
what does it exactly do?

Definition at line 221 of file graph_builder.h.

template<class G>
vslam::FeatureID< G >::FeatureID ( typename graph_traits< G >::vertex_descriptor  _vd,
int  _vidx 
) [inline]

Definition at line 177 of file pose_graph.h.

template<class G>
void vslam::PerformanceLogger< G >::forceStop ( ) [inline]

Definition at line 305 of file pose_graph.h.

template<class PoseGraphT >
int vslam::get ( AllWeightsOneWeightMap< PoseGraphT >  pmap,
typename boost::property_traits< AllWeightsOneWeightMap< PoseGraphT > >::key_type  vd 
)

interface for property map that represents edge weights in the graph, where all edges have weight 1.

Definition at line 526 of file pose_graph.h.

template<class PoseGraphT >
cv::Mat vslam::OneDetectorNodeBuilder< PoseGraphT >::getPoseImage ( const InputType in) [inline]

Definition at line 445 of file pose_graph.h.

template<class G >
bool vslam::isLandmakFeature ( const G &  g,
const FeatureID< G > &  fid 
)

Test if given feature has landmark associated with it.

Definition at line 182 of file pose_graph.h.

template<typename G >
vslam::MonoFtrClassEdgeBuilder< G >::MonoFtrClassEdgeBuilder ( std::tr1::shared_ptr< RobustFeatureMatcher _rmatcher) [inline]

Definition at line 389 of file pose_graph.h.

turn-off NMS.

Definition at line 417 of file pose_graph.h.

vslam::NMSOptions::NMSOptions ( int  _target_num_points) [inline]
Parameters:
_target_num_pointsapproximate number of points to retain after NMS.

Definition at line 419 of file pose_graph.h.

template<class PoseGraphT >
vslam::OneDetectorNodeBuilder< PoseGraphT >::OneDetectorNodeBuilder ( NMSOptions  _nms_options = NMSOptions()) [inline, protected]

Definition at line 438 of file pose_graph.h.

template<class G>
vslam::PerformanceLogger< G >::PerformanceLogger ( G &  _g,
VDT  _vd,
std::string  name_tag 
) [inline]

Definition at line 295 of file pose_graph.h.

template<class G>
vslam::PerformanceLogger< G >::~PerformanceLogger ( ) [inline]

Definition at line 301 of file pose_graph.h.


Variable Documentation

Definition at line 245 of file pose_graph.h.

const int vslam::BAD_INDEX = -1

value for undefined array index.

Definition at line 168 of file pose_graph.h.

template<class PoseGraphT >
shared_ptr<cv::FeatureDetector> vslam::OneDetectorNodeBuilder< PoseGraphT >::detector [protected]

Definition at line 433 of file pose_graph.h.

Definition at line 413 of file pose_graph.h.

map<std::string, double> vslam::VertexDebugInfo::double_propmap

Definition at line 250 of file pose_graph.h.

template<class PoseGraphT >
PoseGraphT* vslam::AllWeightsOneWeightMap< PoseGraphT >::dummy [private]

Definition at line 507 of file pose_graph.h.

template<class PoseGraphT >
shared_ptr<cv::DescriptorExtractor> vslam::OneDetectorNodeBuilder< PoseGraphT >::extractor [protected]

Definition at line 432 of file pose_graph.h.

template<class PoseGraphT >
shared_ptr<cv::ORB> vslam::OneDetectorNodeBuilder< PoseGraphT >::feature_2d_detector [protected]

Definition at line 434 of file pose_graph.h.

template<class G>
G& vslam::PerformanceLogger< G >::g [private]

Definition at line 289 of file pose_graph.h.

Definition at line 249 of file pose_graph.h.

Definition at line 238 of file pose_graph.h.

template<class PoseGraphT >
cv::Mat vslam::OneDetectorNodeBuilder< PoseGraphT >::mask [protected]

Definition at line 435 of file pose_graph.h.

Definition at line 246 of file pose_graph.h.

template<class PoseGraphT >
NMSOptions vslam::OneDetectorNodeBuilder< PoseGraphT >::nms_options [protected]

Definition at line 436 of file pose_graph.h.

Definition at line 247 of file pose_graph.h.

Definition at line 248 of file pose_graph.h.

Definition at line 243 of file pose_graph.h.

Definition at line 244 of file pose_graph.h.

template<class G>
lmdetails::PointsLoc<G> vslam::Points< G >::points [private]

Definition at line 204 of file pose_graph.h.

template<typename G >
std::tr1::shared_ptr<RobustFeatureMatcher> vslam::MonoFtrClassEdgeBuilder< G >::rmatcher [protected]

Definition at line 368 of file pose_graph.h.

Definition at line 236 of file pose_graph.h.

template<class G>
ros::WallTime vslam::PerformanceLogger< G >::start_time [private]

Definition at line 292 of file pose_graph.h.

template<class G>
bool vslam::PerformanceLogger< G >::stop_forced [private]

Definition at line 293 of file pose_graph.h.

template<class G>
std::string vslam::PerformanceLogger< G >::str [private]

Definition at line 291 of file pose_graph.h.

Definition at line 414 of file pose_graph.h.

Definition at line 237 of file pose_graph.h.

template<class G>
graph_traits<G>::vertex_descriptor vslam::FeatureID< G >::vd

Definition at line 174 of file pose_graph.h.

template<class G>
VDT vslam::PerformanceLogger< G >::vd [private]

Definition at line 290 of file pose_graph.h.

template<class G>
int vslam::FeatureID< G >::vidx

Definition at line 175 of file pose_graph.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines


pose_estimation
Author(s): Jiri Divis/jiridivis@gmail.com
autogenerated on Wed Mar 27 2013 21:00:14