NASA Astrobee Robot Software  0.19.1
Flight software for the Astrobee robots operating inside the International Space Station.
vision_common Namespace Reference

Classes

class  BriskFeatureDetectorAndMatcher
 
struct  BriskFeatureDetectorAndMatcherParams
 
class  Distorter
 
class  FeatureDetectorAndMatcher
 
class  FeatureImage
 
struct  FeatureMatch
 
struct  FeaturePoint
 
class  FeatureTrack
 
class  FeatureTracker
 
struct  FeatureTrackerParams
 
class  FovDistorter
 
struct  GoodFeaturesToTrackDetectorParams
 
class  IdentityDistorter
 
class  InverseDepthMeasurement
 
class  LKOpticalFlowFeatureDetectorAndMatcher
 
struct  LKOpticalFlowFeatureDetectorAndMatcherParams
 
struct  PoseWithCovarianceAndInliers
 
class  RadDistorter
 
class  RadTanDistorter
 
struct  RansacPnPParams
 
class  RegistrationCorrespondences
 
struct  ReprojectionPoseEstimateParams
 
class  SpacedFeatureTrack
 
class  SpacedFeatureTracker
 
struct  SpacedFeatureTrackerParams
 
struct  StandstillParams
 
class  SurfFeatureDetectorAndMatcher
 
struct  SurfFeatureDetectorAndMatcherParams
 

Typedefs

using FeatureMatches = std::vector< FeatureMatch >
 
using FeatureId = int
 
using ImageId = int
 
using FeaturePoints = std::vector< FeaturePoint >
 

Functions

void LoadBriskFeatureDetectorAndMatcherParams (config_reader::ConfigReader &config, BriskFeatureDetectorAndMatcherParams &params)
 
void LoadGoodFeaturesToTrackDetectorParams (config_reader::ConfigReader &config, GoodFeaturesToTrackDetectorParams &params)
 
void LoadLKOpticalFlowFeatureDetectorAndMatcherParams (config_reader::ConfigReader &config, LKOpticalFlowFeatureDetectorAndMatcherParams &params)
 
void LoadSurfFeatureDetectorAndMatcherParams (config_reader::ConfigReader &config, SurfFeatureDetectorAndMatcherParams &params)
 
void UndistortedPnP (const std::vector< cv::Point2d > &undistorted_image_points, const std::vector< cv::Point3d > &points_3d, const cv::Mat &intrinsics, const int pnp_method, cv::Mat &rotation, cv::Mat &translation)
 
std::vector< int > RandomNIndices (const int num_possible_indices, const int num_sampled_indices)
 
template<typename DISTORTER >
int Inliers (const std::vector< Eigen::Vector2d > &image_points, const std::vector< Eigen::Vector3d > &points_3d, const Eigen::Matrix3d &intrinsics, const Eigen::VectorXd &distortion, const Eigen::Isometry3d &pose_estimate, const double max_inlier_threshold, boost::optional< std::vector< int > & > inliers=boost::none)
 
template<typename T >
std::vector< T > SampledValues (const std::vector< T > &values, const std::vector< int > &indices)
 
template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliersRansacPnP (const std::vector< Eigen::Vector2d > &image_points, const std::vector< Eigen::Vector3d > &points_3d, const Eigen::Matrix3d &intrinsics, const Eigen::VectorXd &distortion, const RansacPnPParams &params)
 
template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliersReprojectionPoseEstimate (const std::vector< Eigen::Vector2d > &image_points, const std::vector< Eigen::Vector3d > &points_3d, const Eigen::Vector2d &focal_lengths, const Eigen::Vector2d &principal_points, const Eigen::VectorXd &distortion, const ReprojectionPoseEstimateParams &params)
 
template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliersReprojectionPoseEstimate (const std::vector< Eigen::Vector2d > &image_points, const std::vector< Eigen::Vector3d > &points_3d, const Eigen::Matrix3d &intrinsics, const Eigen::VectorXd &distortion, const ReprojectionPoseEstimateParams &params)
 
template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliersReprojectionPoseEstimateWithInitialEstimate (const std::vector< Eigen::Vector2d > &image_points, const std::vector< Eigen::Vector3d > &points_3d, const Eigen::Vector2d &focal_lengths, const Eigen::Vector2d &principal_points, const Eigen::VectorXd &distortion, const ReprojectionPoseEstimateParams &params, const Eigen::Isometry3d &initial_estimate, const std::vector< int > &initial_inliers)
 
template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliersReprojectionPoseEstimateWithInitialEstimate (const std::vector< Eigen::Vector2d > &image_points, const std::vector< Eigen::Vector3d > &points_3d, const Eigen::Matrix3d &intrinsics, const Eigen::VectorXd &distortion, const ReprojectionPoseEstimateParams &params, const Eigen::Isometry3d &initial_estimate, const std::vector< int > &initial_inliers)
 
void SetFocalLengths (const Eigen::Vector2d &focal_lengths, Eigen::Matrix3d &intrinsics)
 
void SetPrincipalPoints (const Eigen::Vector2d &principal_points, Eigen::Matrix3d &intrinsics)
 
LKOpticalFlowFeatureDetectorAndMatcherParams DefaultLKOpticalFlowFeatureDetectorAndMatcherParams ()
 
cv::Mat MarkerImage (const int row_spacing, const int col_spacing, int &num_markers_added, const cv::Point2i &offset=cv::Point2i(0, 0))
 
int AddMarkers (const int row_spacing, const int col_spacing, cv::Mat &image, const cv::Point2i &offset=cv::Point2i(0, 0))
 
optimization_common::OptimizationParams DefaultOptimizationParams ()
 
RansacPnPParams DefaultRansacPnPParams ()
 
ReprojectionPoseEstimateParams DefaultReprojectionPoseEstimateParams ()
 
Eigen::VectorXd RandomFovDistortion ()
 
Eigen::VectorXd RandomRadDistortion ()
 
Eigen::VectorXd RandomRadTanDistortion ()
 
std::vector< Eigen::Isometry3d > EvenlySpacedTargetPoses (const int num_rows=3, const int num_cols=5, const int num_y_levels=2)
 
std::vector< Eigen::Vector3d > TargetPoints (const int points_per_row, const int points_per_col, const double row_spacing=0.1, const double col_spacing=0.1)
 
template<typename T >
Eigen::Matrix< T, 2, 1 > RelativeCoordinates (const Eigen::Matrix< T, 2, 1 > &absolute_point, const Eigen::Matrix< T, 3, 3 > &intrinsics)
 
template<typename T >
Eigen::Matrix< T, 2, 1 > AbsoluteCoordinates (const Eigen::Matrix< T, 2, 1 > &relative_point, const Eigen::Matrix< T, 3, 3 > &intrinsics)
 
Eigen::Vector3d Backproject (const Eigen::Vector2d &measurement, const Eigen::Matrix3d &intrinsics, const double depth, gtsam::OptionalJacobian< 3, 1 > d_backprojected_point_d_depth=boost::none)
 
Eigen::Vector2d FocalLengths (const Eigen::Matrix3d &intrinsics)
 
Eigen::Vector2d PrincipalPoints (const Eigen::Matrix3d &intrinsics)
 
Eigen::Vector2d Project (const Eigen::Vector3d &cam_t_point, const Eigen::Matrix3d &intrinsics, gtsam::OptionalJacobian< 2, 3 > d_projected_point_d_cam_t_point=boost::none)
 
template<typename DISTORTER >
Eigen::Vector2d ProjectWithDistortion (const Eigen::Vector3d &cam_t_point, const Eigen::Matrix3d &intrinsics, const Eigen::VectorXd &distortion_params)
 
Eigen::Isometry3d Isometry3d (const cv::Mat &rodrigues_rotation_cv, const cv::Mat &translation_cv)
 
double AverageDistanceFromMean (const std::vector< FeaturePoint > &points)
 
double AverageDistanceFromMean (const std::vector< localization_common::TimestampedValue< FeaturePoint >> &timestamped_points)
 
template<typename FeatureTracksMapType >
bool Standstill (const FeatureTracksMapType &feature_tracks, const StandstillParams &params)
 
double AverageDistanceFromMean (const std::vector< lc::TimestampedValue< FeaturePoint >> &timestamped_points)
 

Typedef Documentation

◆ FeatureId

using vision_common::FeatureId = typedef int

◆ FeatureMatches

using vision_common::FeatureMatches = typedef std::vector<FeatureMatch>

◆ FeaturePoints

using vision_common::FeaturePoints = typedef std::vector<FeaturePoint>

◆ ImageId

using vision_common::ImageId = typedef int

Function Documentation

◆ AbsoluteCoordinates()

template<typename T >
Eigen::Matrix< T, 2, 1 > vision_common::AbsoluteCoordinates ( const Eigen::Matrix< T, 2, 1 > &  relative_point,
const Eigen::Matrix< T, 3, 3 > &  intrinsics 
)

◆ AddMarkers()

int vision_common::AddMarkers ( const int  row_spacing,
const int  col_spacing,
cv::Mat &  image,
const cv::Point2i &  offset = cv::Point2i(0, 0) 
)

◆ AverageDistanceFromMean() [1/3]

double vision_common::AverageDistanceFromMean ( const std::vector< FeaturePoint > &  points)

◆ AverageDistanceFromMean() [2/3]

double vision_common::AverageDistanceFromMean ( const std::vector< lc::TimestampedValue< FeaturePoint >> &  timestamped_points)

◆ AverageDistanceFromMean() [3/3]

double vision_common::AverageDistanceFromMean ( const std::vector< localization_common::TimestampedValue< FeaturePoint >> &  timestamped_points)

◆ Backproject()

Eigen::Vector3d vision_common::Backproject ( const Eigen::Vector2d &  measurement,
const Eigen::Matrix3d &  intrinsics,
const double  depth,
gtsam::OptionalJacobian< 3, 1 >  d_backprojected_point_d_depth = boost::none 
)

◆ DefaultLKOpticalFlowFeatureDetectorAndMatcherParams()

LKOpticalFlowFeatureDetectorAndMatcherParams vision_common::DefaultLKOpticalFlowFeatureDetectorAndMatcherParams ( )

◆ DefaultOptimizationParams()

optimization_common::OptimizationParams vision_common::DefaultOptimizationParams ( )

◆ DefaultRansacPnPParams()

RansacPnPParams vision_common::DefaultRansacPnPParams ( )

◆ DefaultReprojectionPoseEstimateParams()

ReprojectionPoseEstimateParams vision_common::DefaultReprojectionPoseEstimateParams ( )

◆ EvenlySpacedTargetPoses()

std::vector< Eigen::Isometry3d > vision_common::EvenlySpacedTargetPoses ( const int  num_rows = 3,
const int  num_cols = 5,
const int  num_y_levels = 2 
)

◆ FocalLengths()

Eigen::Vector2d vision_common::FocalLengths ( const Eigen::Matrix3d &  intrinsics)

◆ Inliers()

template<typename DISTORTER >
int vision_common::Inliers ( const std::vector< Eigen::Vector2d > &  image_points,
const std::vector< Eigen::Vector3d > &  points_3d,
const Eigen::Matrix3d &  intrinsics,
const Eigen::VectorXd &  distortion,
const Eigen::Isometry3d &  pose_estimate,
const double  max_inlier_threshold,
boost::optional< std::vector< int > & >  inliers = boost::none 
)

◆ Isometry3d()

Eigen::Isometry3d vision_common::Isometry3d ( const cv::Mat &  rodrigues_rotation_cv,
const cv::Mat &  translation_cv 
)

◆ LoadBriskFeatureDetectorAndMatcherParams()

void vision_common::LoadBriskFeatureDetectorAndMatcherParams ( config_reader::ConfigReader config,
BriskFeatureDetectorAndMatcherParams params 
)

◆ LoadGoodFeaturesToTrackDetectorParams()

void vision_common::LoadGoodFeaturesToTrackDetectorParams ( config_reader::ConfigReader config,
GoodFeaturesToTrackDetectorParams params 
)

◆ LoadLKOpticalFlowFeatureDetectorAndMatcherParams()

void vision_common::LoadLKOpticalFlowFeatureDetectorAndMatcherParams ( config_reader::ConfigReader config,
LKOpticalFlowFeatureDetectorAndMatcherParams params 
)

◆ LoadSurfFeatureDetectorAndMatcherParams()

void vision_common::LoadSurfFeatureDetectorAndMatcherParams ( config_reader::ConfigReader config,
SurfFeatureDetectorAndMatcherParams params 
)

◆ MarkerImage()

cv::Mat vision_common::MarkerImage ( const int  row_spacing,
const int  col_spacing,
int &  num_markers_added,
const cv::Point2i &  offset = cv::Point2i(0, 0) 
)

◆ PrincipalPoints()

Eigen::Vector2d vision_common::PrincipalPoints ( const Eigen::Matrix3d &  intrinsics)

◆ Project()

Eigen::Vector2d vision_common::Project ( const Eigen::Vector3d &  cam_t_point,
const Eigen::Matrix3d &  intrinsics,
gtsam::OptionalJacobian< 2, 3 >  d_projected_point_d_cam_t_point = boost::none 
)

◆ ProjectWithDistortion()

template<typename DISTORTER >
Eigen::Vector2d vision_common::ProjectWithDistortion ( const Eigen::Vector3d &  cam_t_point,
const Eigen::Matrix3d &  intrinsics,
const Eigen::VectorXd &  distortion_params 
)

◆ RandomFovDistortion()

Eigen::VectorXd vision_common::RandomFovDistortion ( )

◆ RandomNIndices()

std::vector< int > vision_common::RandomNIndices ( const int  num_possible_indices,
const int  num_sampled_indices 
)

◆ RandomRadDistortion()

Eigen::VectorXd vision_common::RandomRadDistortion ( )

◆ RandomRadTanDistortion()

Eigen::VectorXd vision_common::RandomRadTanDistortion ( )

◆ RansacPnP()

template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliers > vision_common::RansacPnP ( const std::vector< Eigen::Vector2d > &  image_points,
const std::vector< Eigen::Vector3d > &  points_3d,
const Eigen::Matrix3d &  intrinsics,
const Eigen::VectorXd &  distortion,
const RansacPnPParams params 
)

◆ RelativeCoordinates()

template<typename T >
Eigen::Matrix< T, 2, 1 > vision_common::RelativeCoordinates ( const Eigen::Matrix< T, 2, 1 > &  absolute_point,
const Eigen::Matrix< T, 3, 3 > &  intrinsics 
)

◆ ReprojectionPoseEstimate() [1/2]

template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliers > vision_common::ReprojectionPoseEstimate ( const std::vector< Eigen::Vector2d > &  image_points,
const std::vector< Eigen::Vector3d > &  points_3d,
const Eigen::Matrix3d &  intrinsics,
const Eigen::VectorXd &  distortion,
const ReprojectionPoseEstimateParams params 
)

◆ ReprojectionPoseEstimate() [2/2]

template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliers > vision_common::ReprojectionPoseEstimate ( const std::vector< Eigen::Vector2d > &  image_points,
const std::vector< Eigen::Vector3d > &  points_3d,
const Eigen::Vector2d &  focal_lengths,
const Eigen::Vector2d &  principal_points,
const Eigen::VectorXd &  distortion,
const ReprojectionPoseEstimateParams params 
)

◆ ReprojectionPoseEstimateWithInitialEstimate() [1/2]

template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliers > vision_common::ReprojectionPoseEstimateWithInitialEstimate ( const std::vector< Eigen::Vector2d > &  image_points,
const std::vector< Eigen::Vector3d > &  points_3d,
const Eigen::Matrix3d &  intrinsics,
const Eigen::VectorXd &  distortion,
const ReprojectionPoseEstimateParams params,
const Eigen::Isometry3d &  initial_estimate,
const std::vector< int > &  initial_inliers 
)

◆ ReprojectionPoseEstimateWithInitialEstimate() [2/2]

template<typename DISTORTER >
boost::optional< PoseWithCovarianceAndInliers > vision_common::ReprojectionPoseEstimateWithInitialEstimate ( const std::vector< Eigen::Vector2d > &  image_points,
const std::vector< Eigen::Vector3d > &  points_3d,
const Eigen::Vector2d &  focal_lengths,
const Eigen::Vector2d &  principal_points,
const Eigen::VectorXd &  distortion,
const ReprojectionPoseEstimateParams params,
const Eigen::Isometry3d &  initial_estimate,
const std::vector< int > &  initial_inliers 
)

◆ SampledValues()

template<typename T >
std::vector< T > vision_common::SampledValues ( const std::vector< T > &  values,
const std::vector< int > &  indices 
)

◆ SetFocalLengths()

void vision_common::SetFocalLengths ( const Eigen::Vector2d &  focal_lengths,
Eigen::Matrix3d &  intrinsics 
)

◆ SetPrincipalPoints()

void vision_common::SetPrincipalPoints ( const Eigen::Vector2d &  principal_points,
Eigen::Matrix3d &  intrinsics 
)

◆ Standstill()

template<typename FeatureTracksMapType >
bool vision_common::Standstill ( const FeatureTracksMapType &  feature_tracks,
const StandstillParams params 
)

◆ TargetPoints()

std::vector< Eigen::Vector3d > vision_common::TargetPoints ( const int  points_per_row,
const int  points_per_col,
const double  row_spacing = 0.1,
const double  col_spacing = 0.1 
)

◆ UndistortedPnP()

void vision_common::UndistortedPnP ( const std::vector< cv::Point2d > &  undistorted_image_points,
const std::vector< cv::Point3d > &  points_3d,
const cv::Mat &  intrinsics,
const int  pnp_method,
cv::Mat &  rotation,
cv::Mat &  translation 
)