Specialized interface for Keyframe Manager where pose-graph is a tree. More...
#include <vo.h>
Public Member Functions | |
virtual bool | buildNewKeyframe ()=0 |
decides if current frame should be keyframe. | |
KeyframeVisualOdometry (shared_ptr< NodeBuilderTT< PoseGraphT > > _nbuilder, shared_ptr< EdgeBuilder< PoseGraphT > > _ebuilder, size_t _target_past_verticies_size=1, shared_ptr< VodomLogger< PoseGraphT > > _logger=shared_ptr< VodomLogger< PoseGraphT > >()) | |
virtual void | newKeyframeBuilt ()=0 |
stuff that needs to be done after creating new keyframe. | |
virtual shared_ptr< VertexD > | processPose0 (typename NodeBuilderTT< PoseGraphT >::InputType input, int pose_id, uint64_t pose_timestamp, bool debug_images=false, bool trajectory_file=false) |
Protected Types | |
typedef graph_traits < PoseGraphT > ::vertex_descriptor | VertexD |
Protected Attributes | |
VertexD | current_keyframe |
bool | has_pvd |
bool | initial_pose_registred |
NodeBuilderTT< PoseGraphT > ::InputType | keyframe_image |
G2ORunner2< PoseGraphT > | opt |
NodeBuilderTT< PoseGraphT > ::InputType | pvd_image |
int | total_vertex_count |
NodeBuilderTT< PoseGraphT > ::InputType | vd_image |
int | window_idx |
vector< VertexD > | window_vertices |
Specialized interface for Keyframe Manager where pose-graph is a tree.
This is specialization of Keyframe Manager where pose-graph is a tree. For each node in the tree, lists correspond to non-keyframe poses and first or the first and the last poses of the trajectory. When calling KeyframeVisualOdometry::processPose0, new node is allways connected to the last keyframe.
After adding new vertex to the pose-graph, KeyframeVisualOdometry::buildNewKeyframe determines if the added vertex is a keyframe.
After addition of each new vertex, the pose-graph is optimalized. After that, poses that are no longer useful for optimalization are removed.
typedef graph_traits<PoseGraphT>::vertex_descriptor vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::VertexD [protected] |
vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::KeyframeVisualOdometry | ( | shared_ptr< NodeBuilderTT< PoseGraphT > > | _nbuilder, |
shared_ptr< EdgeBuilder< PoseGraphT > > | _ebuilder, | ||
size_t | _target_past_verticies_size = 1 , |
||
shared_ptr< VodomLogger< PoseGraphT > > | _logger = shared_ptr<VodomLogger<PoseGraphT> >() |
||
) | [inline] |
virtual bool vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::buildNewKeyframe | ( | ) | [pure virtual] |
decides if current frame should be keyframe.
Implemented in vslam::ScaleErrorKeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >, vslam::CovisibilityKeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >, and vslam::SimpleVisualOdometry< NodeBuilderTT, PoseGraphT >.
virtual void vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::newKeyframeBuilt | ( | ) | [pure virtual] |
stuff that needs to be done after creating new keyframe.
Implemented in vslam::ScaleErrorKeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >, vslam::CovisibilityKeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >, and vslam::SimpleVisualOdometry< NodeBuilderTT, PoseGraphT >.
virtual shared_ptr<VertexD> vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::processPose0 | ( | typename NodeBuilderTT< PoseGraphT >::InputType | input, |
int | pose_id, | ||
uint64_t | pose_timestamp, | ||
bool | debug_images = false , |
||
bool | trajectory_file = false |
||
) | [inline, virtual] |
Implements vslam::VisualOdometry< NodeBuilderTT, PoseGraphT >.
VertexD vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::current_keyframe [protected] |
Reimplemented in vslam::ScaleErrorKeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >.
bool vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::has_pvd [protected] |
bool vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::initial_pose_registred [protected] |
Reimplemented in vslam::ScaleErrorKeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >.
NodeBuilderTT<PoseGraphT>::InputType vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::keyframe_image [protected] |
G2ORunner2<PoseGraphT> vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::opt [protected] |
NodeBuilderTT<PoseGraphT>::InputType vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::pvd_image [protected] |
int vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::total_vertex_count [protected] |
NodeBuilderTT<PoseGraphT>::InputType vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::vd_image [protected] |
int vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::window_idx [protected] |
vector<VertexD> vslam::KeyframeVisualOdometry< NodeBuilderTT, PoseGraphT >::window_vertices [protected] |