Namespaces | Classes | Typedefs | Functions | Variables
vslam Namespace Reference

Namespace containing implementation of visual odometry. More...

Namespaces

namespace  details
namespace  g2o_types
 

types that for g2o framework that are specific to our task.


namespace  lmdetails
 

Implementation details of Landmark Manager module.


Classes

class  AllWeightsOneWeightMap
 property map that represents edge weights in the graph, where all edges have weight 1. More...
class  CameraModel
 Interface for camera models that have one-to-one map between imaged rays and imaging surface. More...
struct  Cell
class  ConcentricCameraModel
class  CovisibilityKeyframeVisualOdometry
 Keyframe manager based on covisibility (i.e. number of matched features) between keyframes. More...
class  CustomOneDetectorNodeBuilder
class  CustomOneDetectorNodeBuilderFeature2D
class  CylindricalCCMCartRays
 Spherical camera model with panoramatic image plane and rays in cartesian coordinates. More...
class  CylindricalCCMSphRays
 Spherical camera model with panoramatic image plane and rays in spherical coordinates. More...
class  DummyVodomLogger
class  EdgeBuilder
 Interface for adding edges to the pose-graph. More...
class  FeatureID
 unique identification af landmark observation (feature) in the pose-graph. More...
class  FieldOfViewCCM
class  G2OConstActiveDistanceBuilder
 Optimizes all poses in fixed distance from a given vertex and all landmarks that are visible from the optimized poses. More...
class  G2OGraphBuilder
 Interface for building g2o graph. More...
class  G2ORunner2
 Interfaces g2o representation with our representation and runs BA. More...
class  Grid
 Fast lookup of content by image coordinates. More...
class  KeyframeVisualOdometry
 Specialized interface for Keyframe Manager where pose-graph is a tree. More...
class  MonoFtrClassEdgeBuilder
 Implementation of EdgeBuilder, where there is only one kind of feature detector-descriptor pair. More...
class  MultiCameraRigFromCCM
 Non-central model for camera composed of multiple central spherical models. More...
class  NMSOptions
 Set up non-maxima supression (NMS) functionality of OneDetectorNodeBuilder. More...
class  OneDetectorNodeBuilder
 Interface for adding and removing nodes in the pose-graph. More...
class  PerformanceLogger
 Records time elapsed between construction and destruction of this object. More...
struct  Point
 Representation of a landmark. More...
class  Points
class  ScaleErrorKeyframeVisualOdometry
 Keyframe policy based on accuraccy of scale estimate. After the acuraccy decreases new keyframe is created. More...
class  SimpleVisualOdometry
 All frames are considered keyframes (useful for debugging and testing). More...
class  SphericalCM
 Spherical camera model with unit sphere as imaging surface. More...
struct  SphericalCoord
class  VertexDebugInfo
 Debugging info for a vertex. More...
class  VertexDebugInfoLogger
class  VisualOdometry
 This is top-level calss for VO. More...
class  VodomLogger
class  VORosInterface
 The class that interfaces visual odometry with ROS. More...

Typedefs

typedef ALIGNED< pair< int,
Vector3d > >::vector 
IdxPoint3dVec
typedef graph_traits
< PoseGraph >::edge_descriptor 
PGEdgeD
typedef graph_traits
< PoseGraph >
::vertex_descriptor 
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 > > > > 
PoseGraph
 representation of a pose-graph.
typedef
CovisibilityKeyframeVisualOdometry
< OneDetectorNodeBuilder,
PoseGraph
VOType1

Functions

shared_ptr
< OneDetectorNodeBuilder
< PoseGraph > > 
buildFASTbRIEFNBuilder ()
 construct OneDetectorNodeBuilder that uses FAST/BRIEF (it is not rotation invariant).
shared_ptr
< OneDetectorNodeBuilder
< PoseGraph > > 
buildOrbNBuilder ()
 construct OneDetectorNodeBuilder that uses ORB as detector/descriptor.
shared_ptr< VOType1buildVOObject ()
 Construct VisualOdometry class with given OneDetectorNodeBuilder and EdgeBuilder.
int col (const Cell &c)
std::tr1::shared_ptr
< RobustFeatureMatcher
constructRMatcher (std::tr1::shared_ptr< cv::DescriptorMatcher > _dmatcher, std::tr1::shared_ptr< EMatrixModelBuilder > _minbuilder, std::tr1::shared_ptr< EMatrixModelBuilder > _builder)
template<class PtIt >
void displayMatches (std::ostream &out, PtIt points_begin, PtIt points_end, const SE3 &T_cw)
template<class PtIt >
void displayScene (std::ostream &out, PtIt points_begin, PtIt points_end)
template<class G >
void drawGraph (G &g)
template<class G >
void drawLandmarkReprojections (cv::Mat &image, typename graph_traits< G >::vertex_descriptor vd, const G &g, const Points< G > &points)
template<class G >
void drawMatchedNodeKeypoints (const cv::Mat &image, typename graph_traits< G >::vertex_descriptor vd_img, typename graph_traits< G >::vertex_descriptor matched_vd, const G &g, cv::Mat out_image)
 Given an edge and frame in the edge, draws keypoints which have matches in the edge.
template<class G >
void drawMatches (const cv::Mat &srci, typename graph_traits< G >::vertex_descriptor srcv, const cv::Mat &desti, typename graph_traits< G >::vertex_descriptor destv, const G &g)
template<class G >
void drawMatches2 (cv::Mat &srci, typename graph_traits< G >::vertex_descriptor srcv, cv::Mat &desti, typename graph_traits< G >::vertex_descriptor destv, const G &g)
template<class G >
void drawMatches3 (cv::Mat &srci, typename graph_traits< G >::vertex_descriptor srcv, cv::Mat &desti, typename graph_traits< G >::vertex_descriptor destv, const G &g, const Points< G > &points)
void drawMyKpt (cv::Mat &image, cv::Point pt, cv::Scalar color)
template<class G >
void drawNodeKeypoints (typename graph_traits< G >::vertex_descriptor vd, const G &g, const cv::Mat &image, cv::Mat &out_image)
template<class G >
void edgeVisualization (const cv::Mat &img1, const cv::Mat &img2, G &graph, typename graph_traits< G >::vertex_descriptor vd1, typename graph_traits< G >::vertex_descriptor vd2)
 not used.
template<class G >
void extendLandmarks (typename graph_traits< G >::vertex_descriptor convd, typename graph_traits< G >::vertex_descriptor newvd, Points< G > &points, G &g)
 Extends existing feature tracks.
template<class PoseGraphT >
void findLocalMatchesSE3 (const PoseGraphT &g, typename graph_traits< PoseGraphT >::vertex_descriptor vd1, typename graph_traits< PoseGraphT >::vertex_descriptor vd2, shared_ptr< RobustFeatureMatcher > rmatcher, vector< cv::DMatch > &matches)
 Performs guided matching.
template<class PoseGraphT >
void findLocalMatchesSO3 (const PoseGraphT &g, typename graph_traits< PoseGraphT >::vertex_descriptor tvd, typename graph_traits< PoseGraphT >::vertex_descriptor qvd, shared_ptr< RobustFeatureMatcher > rmatcher, Vector2d grid_dim, bool skip_landmarks, vector< cv::DMatch > &matches)
template<class G >
void findNewLandmarks (typename graph_traits< G >::vertex_descriptor convd, typename graph_traits< G >::vertex_descriptor newvd, Points< G > &points, G &g)
 Match scale for the new edge with the rest of the graph and find new landmarks.
template<class PoseGraphT >
int 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.
template<class G >
Vector2d getFeaturePixel (const G &g, const FeatureID< G > f)
 Returns pixel coordinates of a feature.
template<class G >
bool isLandmakFeature (const G &g, const FeatureID< G > &fid)
 Test if given feature has landmark associated with it.
template<class G >
void landmarkObservationsBySize (const G &g, Points< G > &points, typename graph_traits< G >::vertex_descriptor vd, vector< vector< int > > &all_result, vector< vector< int > > &kf_result)
template<class G >
double maxFeatureDistance (const G &g, const Points< G > &points, typename Point< G >::VertexD v)
void nonMaximaSuppresion (const vector< cv::KeyPoint > &keypoints, double max_num, vector< int > &supressed_keypoint_idxs)
 Reduces number of detected fetures. Causes features to be more evenly distributed across the image.
template<class ErrorAccumT >
ErrorAccumT::ErrorT outlierRemoval (const Matrix3d &E, const ErrorAccumT &ea, const ImageMatchVec &matches_c1c2, const vector< cv::DMatch > &dmatches_c1c2, vector< cv::DMatch > &filtered_matches_c1c2)
 Outlier Removal for image correspondences in 2-view geometry given by an essential matrix.
template<class G >
std::string printVertexId (const G &g, typename graph_traits< G >::vertex_descriptor vd)
 returns human-readable vertex-id as string.
template<class PointsIt , class TrajectoryIt >
void readTrajectory (std::istream &in, PointsIt points, TrajectoryIt trajectory)
int row (const Cell &c)
template<class G >
void setRelTranslationError (double r_min, double r_max, typename graph_traits< G >::vertex_descriptor vs, typename graph_traits< G >::vertex_descriptor vt, G &g)
Vector2d two3dLinesAngle (const Vector3d vec1, const Vector3d &vec2)
 compute horizontal and vertical angles between two direction vectors.
template<class G >
ImageMatchVec votrack (G &g)
template<class PointsIt , class TrajectoryIt >
void writeTrajectory (std::ostream &out, PointsIt points_begin, PointsIt points_end, TrajectoryIt trajectory_begin, TrajectoryIt trajectory_end, int id)
template<class TrIt >
void writeTrajectory (std::ostream &out, TrIt trajectory_begin, TrIt trajectory_end)
Feature manipulation utils

Uses:

  • Adding and removing feature-feature matches.
  • Feature lookup.
  • Common feature tracks.
template<class G >
int getFeatureIdx (const G &g, int source_idx, typename graph_traits< G >::vertex_descriptor source_vd, typename graph_traits< G >::vertex_descriptor target_vd)
template<class G >
int getFeatureIdx (const G &g, FeatureID< G > srcf, typename graph_traits< G >::vertex_descriptor target_vd)
 get feature index in the target pose...
template<typename G >
void remove_idx_pair (int sidx, typename graph_traits< G >::vertex_descriptor src, typename graph_traits< G >::vertex_descriptor dest, G &g)
 delete feature-feature match.
template<typename G >
void add_idx_pair (int src_idx, int dest_idx, typename graph_traits< G >::vertex_descriptor src, typename graph_traits< G >::vertex_descriptor dest, G &g)
 insert feature-feature match.
template<typename G >
void add_idx_pair_from_dmatch (const cv::DMatch &dmatch, typename graph_traits< G >::vertex_descriptor tvd, typename graph_traits< G >::vertex_descriptor qvd, G &g)
 insert feature-feature match.
template<typename G >
bool filter_index_pair_duplicates (const cv::DMatch &dmatch, typename graph_traits< G >::vertex_descriptor src, typename graph_traits< G >::vertex_descriptor dest, G &g)
 returns false if feature-feature match from dmatch is present in the pose-graph.
vector< cv::DMatch > remapDMatchIdxs (const vector< cv::DMatch > &dmatches, const vector< int > &tidx, const vector< int > &qidx)
 Remap feature indexes.
cv::DMatch dmatchFromPair (const pair< int, int > &p)
pair< int, int > pairFromDMatch (const cv::DMatch &dmatch)
template<template< class, class > class CT, class G >
CT< int, std::allocator< int > > common_feature_tracks (G &g, typename graph_traits< G >::vertex_descriptor vad, typename graph_traits< G >::vertex_descriptor vbd, typename graph_traits< G >::vertex_descriptor vcd)
 Find feature-tracks common to given 3 vertices.
Creation of ImageMatch and ImageMatchVec
template<class G >
ImageMatch computeMatch (const G &g, FeatureID< G > source, FeatureID< G > target)
template<class G >
ImageMatch computeMatch (const G &g, int source_idx, typename graph_traits< G >::vertex_descriptor source_vd, typename graph_traits< G >::vertex_descriptor target_vd)
template<typename G >
ImageMatchVec computeMatches (typename graph_traits< G >::vertex_descriptor src, typename graph_traits< G >::vertex_descriptor dest, const G &g)
Edge Transform
template<class PoseGraphT >
SE3 getEdgeTransform (const PoseGraphT &g, typename graph_traits< PoseGraphT >::vertex_descriptor vd1, typename graph_traits< PoseGraphT >::vertex_descriptor vd2)
 Get RBT from 'vd1' CF to 'vd2' CF.
template<class G >
void setEdgeTransform (const SE3 &T_tvd_qvd, typename graph_traits< G >::vertex_descriptor tvd, typename graph_traits< G >::vertex_descriptor qvd, G &g)
 Sets edge rigid body transform constraint and updates transform for qvd vertex accordingly.
Disparity

Computation of various disparity-related quantities.

double vectorAngle (const Vector3d &vec1, const Vector3d &vec2)
template<class PoseGraphT >
double disparityAngle (const PoseGraphT &g, FeatureID< PoseGraphT > f1, FeatureID< PoseGraphT > f2)
template<class PoseGraphT >
double minEdgeDisparityAngle (PoseGraphT &g, typename graph_traits< PoseGraphT >::vertex_descriptor srcv, typename graph_traits< PoseGraphT >::vertex_descriptor destv)
SFM
template<class G >
Vector3d triangulatePointWrtWorld (const G &g, FeatureID< G > f1, FeatureID< G > f2)
 Triangulates landmark determined by two features in the pose-graph wrt. to world CF.
template<class G >
Vector3d triangulatePointWrtWorldPos (const G &g, FeatureID< G > f1, FeatureID< G > f2)
bool isEstimateInFrontOfCamera (const LandmarkObservation &obs, const Vector3d &estimate)

Variables

projectionCoordinateAdaptorCM __pad0__
 !!! XXX
const int BAD_INDEX = -1
 value for undefined array index.
boost::filesystem::path debug_output_path
 directory for internal (non ROS) debugging and log files
std::string image_mask_file
 location of image mask file
std::string image_sample_file
 location of sample image file (used when actual camera image is unavilable)

Detailed Description

Namespace containing implementation of visual odometry.


Typedef Documentation

Definition at line 192 of file pe.cpp.


Function Documentation

construct OneDetectorNodeBuilder that uses FAST/BRIEF (it is not rotation invariant).

Definition at line 208 of file pe.cpp.

construct OneDetectorNodeBuilder that uses ORB as detector/descriptor.

Definition at line 198 of file pe.cpp.

shared_ptr<VOType1> vslam::buildVOObject ( )

Construct VisualOdometry class with given OneDetectorNodeBuilder and EdgeBuilder.

See also:
OneDetectorNodeBuilder
EdgeBuilder

Definition at line 225 of file pe.cpp.

template<class PtIt >
void vslam::displayMatches ( std::ostream &  out,
PtIt  points_begin,
PtIt  points_end,
const SE3 &  T_cw 
)

Definition at line 175 of file data_dump.h.

template<class PtIt >
void vslam::displayScene ( std::ostream &  out,
PtIt  points_begin,
PtIt  points_end 
)

Definition at line 187 of file data_dump.h.

template<class G >
void vslam::drawGraph ( G &  g)

Definition at line 139 of file data_dump.h.

template<class PointsIt , class TrajectoryIt >
void vslam::readTrajectory ( std::istream &  in,
PointsIt  points,
TrajectoryIt  trajectory 
)

Definition at line 19 of file data_dump.h.

template<class G >
ImageMatchVec vslam::votrack ( G &  g)

Definition at line 101 of file data_dump.h.

template<class PointsIt , class TrajectoryIt >
void vslam::writeTrajectory ( std::ostream &  out,
PointsIt  points_begin,
PointsIt  points_end,
TrajectoryIt  trajectory_begin,
TrajectoryIt  trajectory_end,
int  id 
)

Definition at line 43 of file data_dump.h.

template<class TrIt >
void vslam::writeTrajectory ( std::ostream &  out,
TrIt  trajectory_begin,
TrIt  trajectory_end 
)

Definition at line 154 of file data_dump.h.


Variable Documentation

boost::filesystem::path vslam::debug_output_path

directory for internal (non ROS) debugging and log files

This file is acessible across all modules (using extern)

Definition at line 71 of file pe.cpp.

location of image mask file

This file is acessible across all modules (using extern)

Definition at line 65 of file pe.cpp.

location of sample image file (used when actual camera image is unavilable)

This file is acessible across all modules (using extern)

Definition at line 68 of file pe.cpp.

 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:16