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< VOType1 > | buildVOObject () |
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:
| |
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) |
Namespace containing implementation of visual odometry.
shared_ptr<OneDetectorNodeBuilder<PoseGraph> > vslam::buildFASTbRIEFNBuilder | ( | ) |
construct OneDetectorNodeBuilder that uses FAST/BRIEF (it is not rotation invariant).
shared_ptr<OneDetectorNodeBuilder<PoseGraph> > vslam::buildOrbNBuilder | ( | ) |
construct OneDetectorNodeBuilder that uses ORB as detector/descriptor.
shared_ptr<VOType1> vslam::buildVOObject | ( | ) |
Construct VisualOdometry class with given OneDetectorNodeBuilder and EdgeBuilder.
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.
void vslam::displayScene | ( | std::ostream & | out, |
PtIt | points_begin, | ||
PtIt | points_end | ||
) |
Definition at line 187 of file data_dump.h.
void vslam::drawGraph | ( | G & | g | ) |
Definition at line 139 of file data_dump.h.
void vslam::readTrajectory | ( | std::istream & | in, |
PointsIt | points, | ||
TrajectoryIt | trajectory | ||
) |
Definition at line 19 of file data_dump.h.
ImageMatchVec vslam::votrack | ( | G & | g | ) |
Definition at line 101 of file data_dump.h.
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.
void vslam::writeTrajectory | ( | std::ostream & | out, |
TrIt | trajectory_begin, | ||
TrIt | trajectory_end | ||
) |
Definition at line 154 of file data_dump.h.
boost::filesystem::path vslam::debug_output_path |
std::string vslam::image_mask_file |
std::string vslam::image_sample_file |