|
svo
Semi-Direct Visual Odometry
|
Monocular Visual Odometry Pipeline as described in the SVO paper. More...
#include <frame_handler_mono.h>
Public Member Functions | |
| FrameHandlerMono (vk::AbstractCamera *cam) | |
| virtual | ~FrameHandlerMono () |
| void | addImage (const cv::Mat &img, double timestamp) |
| Provide an image. | |
| void | setFirstFrame (const FramePtr &first_frame) |
| Set the first frame (used for synthetic datasets in benchmark node) | |
| FramePtr | lastFrame () |
| Get the last frame that has been processed. | |
| const set< FramePtr > & | coreKeyframes () |
| Get the set of spatially closest keyframes of the last frame. | |
| const vector< cv::Point2f > & | initFeatureTrackRefPx () const |
| Return the feature track to visualize the KLT tracking during initialization. | |
| const vector< cv::Point2f > & | initFeatureTrackCurPx () const |
| DepthFilter * | depthFilter () const |
| Access the depth filter. | |
| bool | relocalizeFrameAtPose (const int keyframe_id, const SE3 &T_kf_f, const cv::Mat &img, const double timestamp) |
| An external place recognition module may know where to relocalize. | |
Protected Member Functions | |
| virtual void | initialize () |
| Initialize the visual odometry algorithm. | |
| virtual UpdateResult | processFirstFrame () |
| Processes the first frame and sets it as a keyframe. | |
| virtual UpdateResult | processSecondFrame () |
| Processes all frames after the first frame until a keyframe is selected. | |
| virtual UpdateResult | processFrame () |
| Processes all frames after the first two keyframes. | |
| virtual UpdateResult | relocalizeFrame (const SE3 &T_cur_ref, FramePtr ref_keyframe) |
| Try relocalizing the frame at relative position to provided keyframe. | |
| virtual void | resetAll () |
| Reset the frame handler. Implement in derived class. | |
| virtual bool | needNewKf (double scene_depth_mean) |
| Keyframe selection criterion. | |
| void | setCoreKfs (size_t n_closest) |
Protected Attributes | |
| vk::AbstractCamera * | cam_ |
| Camera model, can be ATAN, Pinhole or Ocam (see vikit). | |
| Reprojector | reprojector_ |
| Projects points from other keyframes into the current frame. | |
| FramePtr | new_frame_ |
| Current frame. | |
| FramePtr | last_frame_ |
| Last frame, not necessarily a keyframe. | |
| set< FramePtr > | core_kfs_ |
| Keyframes in the closer neighbourhood. | |
| vector< pair< FramePtr, size_t > > | overlap_kfs_ |
| All keyframes with overlapping field of view. the paired number specifies how many common mappoints are observed TODO: why vector!? | |
| initialization::KltHomographyInit | klt_homography_init_ |
| Used to estimate pose of the first two keyframes by estimating a homography. | |
| DepthFilter * | depth_filter_ |
| Depth estimation algorithm runs in a parallel thread and is used to initialize new 3D points. | |
Monocular Visual Odometry Pipeline as described in the SVO paper.
| svo::FrameHandlerMono::FrameHandlerMono | ( | vk::AbstractCamera * | cam | ) |
| virtual svo::FrameHandlerMono::~FrameHandlerMono | ( | ) | [virtual] |
| void svo::FrameHandlerMono::addImage | ( | const cv::Mat & | img, |
| double | timestamp | ||
| ) |
Provide an image.
| const set<FramePtr>& svo::FrameHandlerMono::coreKeyframes | ( | ) | [inline] |
Get the set of spatially closest keyframes of the last frame.
| DepthFilter* svo::FrameHandlerMono::depthFilter | ( | ) | const [inline] |
Access the depth filter.
| const vector<cv::Point2f>& svo::FrameHandlerMono::initFeatureTrackCurPx | ( | ) | const [inline] |
| const vector<cv::Point2f>& svo::FrameHandlerMono::initFeatureTrackRefPx | ( | ) | const [inline] |
Return the feature track to visualize the KLT tracking during initialization.
| virtual void svo::FrameHandlerMono::initialize | ( | ) | [protected, virtual] |
Initialize the visual odometry algorithm.
| FramePtr svo::FrameHandlerMono::lastFrame | ( | ) | [inline] |
Get the last frame that has been processed.
| virtual bool svo::FrameHandlerMono::needNewKf | ( | double | scene_depth_mean | ) | [protected, virtual] |
Keyframe selection criterion.
| virtual UpdateResult svo::FrameHandlerMono::processFirstFrame | ( | ) | [protected, virtual] |
Processes the first frame and sets it as a keyframe.
| virtual UpdateResult svo::FrameHandlerMono::processFrame | ( | ) | [protected, virtual] |
Processes all frames after the first two keyframes.
| virtual UpdateResult svo::FrameHandlerMono::processSecondFrame | ( | ) | [protected, virtual] |
Processes all frames after the first frame until a keyframe is selected.
| virtual UpdateResult svo::FrameHandlerMono::relocalizeFrame | ( | const SE3 & | T_cur_ref, |
| FramePtr | ref_keyframe | ||
| ) | [protected, virtual] |
Try relocalizing the frame at relative position to provided keyframe.
| bool svo::FrameHandlerMono::relocalizeFrameAtPose | ( | const int | keyframe_id, |
| const SE3 & | T_kf_f, | ||
| const cv::Mat & | img, | ||
| const double | timestamp | ||
| ) |
An external place recognition module may know where to relocalize.
| virtual void svo::FrameHandlerMono::resetAll | ( | ) | [protected, virtual] |
Reset the frame handler. Implement in derived class.
Reimplemented from svo::FrameHandlerBase.
| void svo::FrameHandlerMono::setCoreKfs | ( | size_t | n_closest | ) | [protected] |
| void svo::FrameHandlerMono::setFirstFrame | ( | const FramePtr & | first_frame | ) |
Set the first frame (used for synthetic datasets in benchmark node)
vk::AbstractCamera* svo::FrameHandlerMono::cam_ [protected] |
Camera model, can be ATAN, Pinhole or Ocam (see vikit).
set<FramePtr> svo::FrameHandlerMono::core_kfs_ [protected] |
Keyframes in the closer neighbourhood.
DepthFilter* svo::FrameHandlerMono::depth_filter_ [protected] |
Depth estimation algorithm runs in a parallel thread and is used to initialize new 3D points.
Used to estimate pose of the first two keyframes by estimating a homography.
FramePtr svo::FrameHandlerMono::last_frame_ [protected] |
Last frame, not necessarily a keyframe.
FramePtr svo::FrameHandlerMono::new_frame_ [protected] |
Current frame.
vector< pair<FramePtr,size_t> > svo::FrameHandlerMono::overlap_kfs_ [protected] |
All keyframes with overlapping field of view. the paired number specifies how many common mappoints are observed TODO: why vector!?
Reprojector svo::FrameHandlerMono::reprojector_ [protected] |
Projects points from other keyframes into the current frame.
1.7.6.1