OKVIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T > Class Template Reference

The ProbabilisticStereoTriangulator class. More...

#include <ProbabilisticStereoTriangulator.hpp>

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW ProbabilisticStereoTriangulator (double pixelSigma=0.5)
 Default constructor; make sure to call resetFrames before triangulation! More...
 
 ProbabilisticStereoTriangulator (std::shared_ptr< okvis::MultiFrame > frameA_ptr, std::shared_ptr< okvis::MultiFrame > frameB_ptr, size_t camIdA, size_t camIdB, const okvis::kinematics::Transformation &T_AB, const Eigen::Matrix< double, 6, 6 > &UOplus, double pixelSigma=0.5)
 Constructor to set frames and relative transformation. More...
 
void resetFrames (std::shared_ptr< okvis::MultiFrame > frameA_ptr, std::shared_ptr< okvis::MultiFrame > frameB_ptr, size_t camIdA, size_t camIdB, const okvis::kinematics::Transformation &T_AB, const Eigen::Matrix< double, 6, 6 > &UOplus)
 Reset frames and relative transformation. More...
 
 ~ProbabilisticStereoTriangulator ()
 Default destructor. More...
 
bool stereoTriangulate (size_t keypointIdxA, size_t keypointIdxB, Eigen::Vector4d &outHomogeneousPoint_A, bool &outCanBeInitializedInaccuarate, double sigmaRay=-1.0) const
 Triangulation. More...
 
bool stereoTriangulate (size_t keypointIdxA, size_t keypointIdxB, Eigen::Vector4d &outHomogeneousPoint_A, Eigen::Matrix3d &outPointUOplus_A, bool &outCanBeInitialized, double sigmaRay=-1.0) const
 Triangulation. More...
 
void getUncertainty (size_t keypointIdxA, size_t keypointIdxB, const Eigen::Vector4d &homogeneousPoint_A, Eigen::Matrix3d &outPointUOplus_A, bool &outCanBeInitialized) const
 Get triangulation uncertainty. More...
 

Protected Member Functions

bool computeReprojectionError4 (const std::shared_ptr< okvis::MultiFrame > &frame, size_t camId, size_t keypointId, const Eigen::Vector4d &homogeneousPoint, double &outError) const
 Compute the reprojection error. More...
 

Protected Attributes

double sigmaRay_
 
std::shared_ptr
< okvis::MultiFrame
frameA_
 The multiframe A. More...
 
std::shared_ptr
< okvis::MultiFrame
frameB_
 The multiframe B. More...
 
size_t camIdA_
 Camera ID for frame A. More...
 
size_t camIdB_
 Camera ID for frame B. More...
 
Eigen::Matrix< double, 6, 6 > UOplus_
 Local copy of relative uncertainty. More...
 
Eigen::Matrix< double, 9, 9 > H_
 Information matrix of pose and landmark. More...
 
Local copy of the relative transformation.
okvis::kinematics::Transformation T_AB_
 
::okvis::ceres::PoseParameterBlock poseA_
 
::okvis::ceres::PoseParameterBlock poseB_
 
::okvis::ceres::PoseParameterBlock extrinsics_
 
okvis::kinematics::Transformation T_BA_
 

Detailed Description

template<class CAMERA_GEOMETRY_T>
class okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >

The ProbabilisticStereoTriangulator class.

Template Parameters
CAMERA_GEOMETRY_TCamera geometry model. See also okvis::cameras::CameraBase.

Constructor & Destructor Documentation

template<class CAMERA_GEOMETRY_T >
okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::ProbabilisticStereoTriangulator ( double  pixelSigma = 0.5)

Default constructor; make sure to call resetFrames before triangulation!

Parameters
pixelSigmaA (conservative) estimate of the pixel one-sigma uncertainty in the keypoint location.
template<class CAMERA_GEOMETRY_T >
okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::ProbabilisticStereoTriangulator ( std::shared_ptr< okvis::MultiFrame frameA_ptr,
std::shared_ptr< okvis::MultiFrame frameB_ptr,
size_t  camIdA,
size_t  camIdB,
const okvis::kinematics::Transformation T_AB,
const Eigen::Matrix< double, 6, 6 > &  UOplus,
double  pixelSigma = 0.5 
)

Constructor to set frames and relative transformation.

Parameters
frameA_ptrFirst multiframe.
frameB_ptrSecond multiframe.
camIdACamera ID for first frame.
camIdBCamera ID for second frame.
T_ABRelative transformation from frameA to frameB.
UOplusOplus-type uncertainty of T_AB.
pixelSigmaA (conservative) estimate of the pixel one-sigma uncertainty in the keypoint location.
template<class CAMERA_GEOMETRY_T >
okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::~ProbabilisticStereoTriangulator ( )

Default destructor.

Member Function Documentation

template<class CAMERA_GEOMETRY_T >
bool okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::computeReprojectionError4 ( const std::shared_ptr< okvis::MultiFrame > &  frame,
size_t  camId,
size_t  keypointId,
const Eigen::Vector4d &  homogeneousPoint,
double &  outError 
) const
protected

Compute the reprojection error.

Parameters
[in]frameMultiframe.
[in]camIdCamera ID.
[in]keypointIdID of keypoint to calculate error for.
[in]homogeneousPointHomogeneous coordinates of point to calculate error for
[out]outErrorReprojection error.
Returns
True if reprojection was successful.
template<class CAMERA_GEOMETRY_T >
void okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::getUncertainty ( size_t  keypointIdxA,
size_t  keypointIdxB,
const Eigen::Vector4d &  homogeneousPoint_A,
Eigen::Matrix3d &  outPointUOplus_A,
bool &  outCanBeInitialized 
) const

Get triangulation uncertainty.

Parameters
[in]keypointIdxAIndex of keypoint to be triangulated in frame A.
[in]keypointIdxBIndex of keypoint to be triangulated in frame B.
[in]homogeneousPoint_AInput triangulated point in A-coordinates.
[out]outPointUOplus_AOutput uncertainty, represented w.r.t. ceres disturbance, in A-coordinates.
[out]outCanBeInitializedWhether or not the triangulation can be considered initialized.
template<class CAMERA_GEOMETRY_T >
void okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::resetFrames ( std::shared_ptr< okvis::MultiFrame frameA_ptr,
std::shared_ptr< okvis::MultiFrame frameB_ptr,
size_t  camIdA,
size_t  camIdB,
const okvis::kinematics::Transformation T_AB,
const Eigen::Matrix< double, 6, 6 > &  UOplus 
)

Reset frames and relative transformation.

Parameters
frameA_ptrFirst multiframe.
frameB_ptrSecond multiframe.
camIdACamera ID for first frame.
camIdBCamera ID for second frame.
T_ABRelative transformation from frameA to frameB.
UOplusOplus-type uncertainty of T_AB.
template<class CAMERA_GEOMETRY_T >
bool okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::stereoTriangulate ( size_t  keypointIdxA,
size_t  keypointIdxB,
Eigen::Vector4d &  outHomogeneousPoint_A,
bool &  outCanBeInitializedInaccuarate,
double  sigmaRay = -1.0 
) const

Triangulation.

Parameters
[in]keypointIdxAIndex of keypoint to be triangulated in frame A.
[in]keypointIdxBIndex of keypoint to be triangulated in frame B.
[out]outHomogeneousPoint_AOutput triangulation in A-coordinates.
[out]outCanBeInitializedInaccuarateThis will be set to false, if it can certainly not be initialised (conservative, but inaccurate guess)
[in]sigmaRayRay uncertainty.
Returns
3-sigma consistency check result, in A-coordinates.
template<class CAMERA_GEOMETRY_T >
bool okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::stereoTriangulate ( size_t  keypointIdxA,
size_t  keypointIdxB,
Eigen::Vector4d &  outHomogeneousPoint_A,
Eigen::Matrix3d &  outPointUOplus_A,
bool &  outCanBeInitialized,
double  sigmaRay = -1.0 
) const

Triangulation.

Parameters
[in]keypointIdxAIndex of keypoint to be triangulated in frame A.
[in]keypointIdxBIndex of keypoint to be triangulated in frame B.
[out]outHomogeneousPoint_AOutput triangulation in A-coordinates.
[out]outPointUOplus_AOutput uncertainty, represented w.r.t. ceres disturbance, in A-coordinates.
[out]outCanBeInitializedWhether or not the triangulation can be considered initialized.
[in]sigmaRayRay uncertainty.
Returns
3-sigma consistency check result.

Member Data Documentation

template<class CAMERA_GEOMETRY_T>
size_t okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::camIdA_
protected

Camera ID for frame A.

template<class CAMERA_GEOMETRY_T>
size_t okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::camIdB_
protected

Camera ID for frame B.

template<class CAMERA_GEOMETRY_T>
::okvis::ceres::PoseParameterBlock okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::extrinsics_
protected
template<class CAMERA_GEOMETRY_T>
std::shared_ptr<okvis::MultiFrame> okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::frameA_
protected

The multiframe A.

template<class CAMERA_GEOMETRY_T>
std::shared_ptr<okvis::MultiFrame> okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::frameB_
protected

The multiframe B.

template<class CAMERA_GEOMETRY_T>
Eigen::Matrix<double, 9, 9> okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::H_
protected

Information matrix of pose and landmark.

template<class CAMERA_GEOMETRY_T>
::okvis::ceres::PoseParameterBlock okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::poseA_
protected
template<class CAMERA_GEOMETRY_T>
::okvis::ceres::PoseParameterBlock okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::poseB_
protected
template<class CAMERA_GEOMETRY_T>
double okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::sigmaRay_
protected

ray uncertainty

template<class CAMERA_GEOMETRY_T>
okvis::kinematics::Transformation okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::T_AB_
protected
template<class CAMERA_GEOMETRY_T>
okvis::kinematics::Transformation okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::T_BA_
protected
template<class CAMERA_GEOMETRY_T>
Eigen::Matrix<double, 6, 6> okvis::triangulation::ProbabilisticStereoTriangulator< CAMERA_GEOMETRY_T >::UOplus_
protected

Local copy of relative uncertainty.


The documentation for this class was generated from the following files: