Basic Image AlgorithmS Library
2.8.0
|
Transformations between different representations of poses and their covariances (e.g. More...
#include <Geometry/CovTransformPose.hh>
Public Member Functions | |
void | AddDebugLevel (const long int lv) |
void | AddDebugLevel (const std::string &name) |
CovTransformPose () | |
Standard Ctor, no params needed. More... | |
bool | DebugLevelIsSet (const long int lv) const |
bool | DebugLevelIsSet (const std::string &name) const |
int | GetDebugLevel () const |
std::ostream & | GetDebugStream () const |
void | GetDebugStream (std::ostream &os) const |
long int | Name2DebugLevel (const std::string &name) const |
looks up a debuglevel in the internal map, returns 0 if not found More... | |
long int | NewDebugLevel (const std::string &name) |
creates a new debuglevel More... | |
int | PoseEulerZYXToQuat (const Vector3< double > &posE, const Vector3< double > &rotE, const Matrix< double > &covE, Vector3< double > &posQ, Quaternion< double > &rotQ, Matrix< double > &covQ) |
Same as above, just other way around! More... | |
int | PoseQuatToEulerZYX (const Vector3< double > &posQ, const Quaternion< double > &rotQ, const Matrix< double > &covQ, Vector3< double > &posE, Vector3< double > &rotE, Matrix< double > &covE) |
Convert a pose given as a position, a quaternion and the according 7x7-covariance-matrix to a pose given as position (same as bevor), rotation in euler-angles (order of rotation-axis: ZYX) and the according 6x6-covariance-matrix. More... | |
void | PrintDebugLevel (std::ostream &os=std::cout) const |
void | RemoveDebugLevel (const long int lv) |
void | RemoveDebugLevel (const std::string &name) |
void | SetAlpha (const double alpha) |
Sets the alpha parameter. More... | |
void | SetBeta (const double beta) |
Sets the beta parameter. More... | |
void | SetDebugLevel (const long int lv) |
void | SetDebugLevel (const std::string &name) |
void | SetDebugStream (const std::ostream &os) |
void | SetUseSVD (const bool use_svd) |
void | ShowDebugLevel (std::ostream &os=std::cout) const |
prints all internally known debuglevels More... | |
int | Transform (const Vector< double > &src_mean, const Matrix< double > &src_cov, Vector< double > &dst_mean, Matrix< double > &dst_cov) const |
computes the second order approximation of the transformations of the mean and the associated covariance for the point transformation Transform_(). More... | |
int | TransformPoint3D (const Vector3< double > &point3D, const Matrix3x3< double > &cov3D, const Vector3< double > &translate, const Quaternion< double > &rotate, const Matrix< double > &transformCov, Vector3< double > &resultPoint3D, Matrix3x3< double > &resultCov3D) |
Transforms a 3D point X by a rigid transformation Q,t such that the resulting 3D point is Q*X*Q' + t. More... | |
int | TransformPose (const Vector3< double > &inputPos, const Quaternion< double > &inputRot, const Matrix< double > &inputCov, const Vector3< double > &translate, const Quaternion< double > &rotate, const Matrix< double > &transformCov, Vector3< double > &resultPos, Quaternion< double > &resultRot, Matrix< double > &resultCov) |
Transforms a pose Q,C by a rigid transformation dQ,dt such that the resulting pose is dQ*Q, dQ*C*dQ' + dt. More... | |
virtual | ~CovTransformPose () |
Static Public Member Functions | |
static long int | GetGlobalDebugLevel () |
static void | SetGlobalDebugLevel (long int lev) |
Protected Member Functions | |
int | ComputeSigmaPoints_ (const Vector< double > &src_mean, const Matrix< double > &src_cov, std::vector< WeightedSigmaPoint > &sigma_points) const |
The covariance of a n-dimensional vector is approximated using 2n+1 so called sigma points with associated weights. More... | |
long | ConsumeNextFreeDebuglevel_ () |
returns the next available debuglevel More... | |
virtual int | Transform_ (const Vector< double > &src, Vector< double > &dst) const |
implements a point transformation More... | |
Protected Attributes | |
long int | _liDebugLevel |
long int | _liNextDebugLevel |
new concept, debuglevel are managed here in the debug class More... | |
std::map< std::string, long int > | _String2Debuglevel |
double | Alpha_ |
the alpha parameter determines the spread of the sigma points More... | |
double | Beta_ |
beta is used to incorporate prior knowledge of the distribution of x. More... | |
double | Kappa_ |
kappa is a secondary scaling parameter. More... | |
ETransformType | tType_ |
bool | UseSVD_ |
Static Protected Attributes | |
static std::ostream | _zDebugStream |
static long int | GlobalDebugLevel = 0 |
Transformations between different representations of poses and their covariances (e.g.
convert a pose with given cov. represented by position and euler-angles to a pose with according cov. represented by position and a unit-quaternion).
apetersen 04/2008
Definition at line 27 of file CovTransformPose.hh.
CovTransformPose::CovTransformPose | ( | ) |
Standard Ctor, no params needed.
Definition at line 11 of file CovTransformPose.cpp.
References BIAS::NONE.
|
inlinevirtual |
Definition at line 33 of file CovTransformPose.hh.
|
inlineinherited |
Definition at line 355 of file Debug.hh.
Referenced by BIAS::GLProjectionParametersBase::AddDebugLevel(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::FilterBase< InputStorageType, OutputStorageType >::FilterBase(), BIAS::ShowCamWxVideoSourceFactory::OpenDevice(), and BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph().
|
inlineinherited |
|
protectedinherited |
The covariance of a n-dimensional vector is approximated using 2n+1 so called sigma points with associated weights.
The points and weights are computed in this function
Definition at line 138 of file UnscentedTransform.cpp.
References BIAS::UnscentedTransform::Alpha_, BIAS::UnscentedTransform::Beta_, BIAS::Debug::DebugLevelIsSet(), BIAS::Matrix< T >::GetCol(), BIAS::Matrix< T >::GetCols(), BIAS::UnscentedTransform::Kappa_, Lapack_Cholesky_SymmetricPositiveDefinit(), BIAS::Less(), TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), BIAS::Vector< T >::Size(), BIAS::SVD::SqrtT(), and BIAS::UnscentedTransform::UseSVD_.
Referenced by BIAS::UnscentedTransform::Transform().
|
inlineprotectedinherited |
|
inlineinherited |
Definition at line 341 of file Debug.hh.
Referenced by BIAS::GenSynthMatches::_AddUniformDistributedOutliers(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic2DPoints(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::Triangulation::CorrectCorrespondences(), BIAS::GenSynthMatches::GetGTNormalizedF(), BIAS::MonteCarloTransform::GetSamples_(), and BIAS::MonteCarloTransform::Transform().
|
inlineinherited |
|
inlineinherited |
Definition at line 332 of file Debug.hh.
Referenced by BIAS::listenthread(), BIAS::Image< StorageType >::operator=(), and BIAS::ImageBase::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inlineinherited |
|
inlineinherited |
creates a new debuglevel
Definition at line 474 of file Debug.hh.
Referenced by BIAS::COSAC< SolutionType >::COSAC(), BIAS::ProjectionParametersPerspectiveDepth::Init(), BIAS::MonteCarloTransform::MonteCarloTransform(), BIAS::PMatrixEstimation::PMatrixEstimation(), BIAS::PreemptiveRANSAC< SolutionType >::PreemptiveRANSAC(), BIAS::RANSACPreKnowledge< SolutionType >::RANSACPreKnowledge(), BIAS::ROI::ROI(), BIAS::RotationAveraging::RotationAveraging(), BIAS::SceneOpenSceneGraph::SceneOpenSceneGraph(), BIAS::ThreeDOutOpenSceneGraph::ThreeDOutOpenSceneGraph(), BIAS::Triangulation::Triangulation(), and BIAS::UnscentedTransform::UnscentedTransform().
int CovTransformPose::PoseEulerZYXToQuat | ( | const Vector3< double > & | posE, |
const Vector3< double > & | rotE, | ||
const Matrix< double > & | covE, | ||
Vector3< double > & | posQ, | ||
Quaternion< double > & | rotQ, | ||
Matrix< double > & | covQ | ||
) |
Same as above, just other way around!
Definition at line 50 of file CovTransformPose.cpp.
References BIAS::EulerZYX2Quat, BIAS::NONE, TNT::Matrix< T >::num_cols(), and TNT::Matrix< T >::num_rows().
int CovTransformPose::PoseQuatToEulerZYX | ( | const Vector3< double > & | posQ, |
const Quaternion< double > & | rotQ, | ||
const Matrix< double > & | covQ, | ||
Vector3< double > & | posE, | ||
Vector3< double > & | rotE, | ||
Matrix< double > & | covE | ||
) |
Convert a pose given as a position, a quaternion and the according 7x7-covariance-matrix to a pose given as position (same as bevor), rotation in euler-angles (order of rotation-axis: ZYX) and the according 6x6-covariance-matrix.
| pos rotXpos | cov-Mat = | posXrot rot |
Definition at line 17 of file CovTransformPose.cpp.
References BIAS::NONE, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), and BIAS::Quat2EulerZYX.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Sets the alpha parameter.
The alpha parameter determines the spread of the sigma points
Definition at line 80 of file UnscentedTransform.hh.
|
inlineinherited |
Sets the beta parameter.
beta is used to incorporate prior knowledge of the distribution of x. For Gaussian distributions beta = 2.0 is optiomal
Definition at line 86 of file UnscentedTransform.hh.
|
inlineinherited |
Definition at line 318 of file Debug.hh.
Referenced by BIAS::ShowCamWxVideoSourceFactory::CreateBumbleBee(), BIAS::ShowCamWxVideoSourceFactory::CreateDCAM(), BIAS::VideoSource_MDcam::ScanBus(), BIAS::GLProjectionParametersBase::SetDebugLevel(), BIAS::VideoSource_Disk::VideoSource_Disk(), BIAS::VideoSource_DV2::VideoSource_DV2(), BIAS::VideoSource_DV::VideoSource_DV_Internal_Init_(), and BIAS::VideoSource_V4L::VideoSource_V4L().
|
inlineinherited |
|
inlineinherited |
|
inlinestaticinherited |
|
inlineinherited |
Definition at line 89 of file UnscentedTransform.hh.
|
inlineinherited |
|
virtualinherited |
computes the second order approximation of the transformations of the mean and the associated covariance for the point transformation Transform_().
Implements BIAS::UncertaintyTransformBase.
Definition at line 52 of file UnscentedTransform.cpp.
References BIAS::UnscentedTransform::ComputeSigmaPoints_(), TNT::Matrix< T >::newsize(), TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), BIAS::Vector< T >::OuterProduct(), BIAS::Vector< T >::SetZero(), BIAS::Matrix< T >::SetZero(), BIAS::Vector< T >::Size(), TNT::Vector< T >::size(), BIAS::Matrix< T >::Trace(), and BIAS::UnscentedTransform::Transform_().
Referenced by BIAS::EssentialPoint2Line::Compute(), BIAS::CovEuler2Quaternion::CTransform(), BIAS::Covariance3Dto2D::Project(), BIAS::Covariance3Dto2DHomg::Project(), and BIAS::Cov3Dto2DPoseCertain::Transform().
|
protectedvirtual |
implements a point transformation
Implements BIAS::UnscentedTransform.
Definition at line 198 of file CovTransformPose.cpp.
References BIAS::EulerZYX2Quat, BIAS::RMatrixBase::GetRotationAnglesZYX(), BIAS::Quaternion< T >::MultVec(), TNT::Vector< T >::newsize(), BIAS::Point3DTransform, BIAS::PoseTransform, BIAS::Quat2EulerZYX, BIAS::RMatrixBase::SetFromQuaternion(), and BIAS::Quaternion< T >::SetZYX().
int CovTransformPose::TransformPoint3D | ( | const Vector3< double > & | point3D, |
const Matrix3x3< double > & | cov3D, | ||
const Vector3< double > & | translate, | ||
const Quaternion< double > & | rotate, | ||
const Matrix< double > & | transformCov, | ||
Vector3< double > & | resultPoint3D, | ||
Matrix3x3< double > & | resultCov3D | ||
) |
Transforms a 3D point X by a rigid transformation Q,t such that the resulting 3D point is Q*X*Q' + t.
Definition at line 140 of file CovTransformPose.cpp.
References BIAS::Matrix< T >::MakeSymmetric(), BIAS::MatrixZero, BIAS::NONE, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), and BIAS::Point3DTransform.
int CovTransformPose::TransformPose | ( | const Vector3< double > & | inputPos, |
const Quaternion< double > & | inputRot, | ||
const Matrix< double > & | inputCov, | ||
const Vector3< double > & | translate, | ||
const Quaternion< double > & | rotate, | ||
const Matrix< double > & | transformCov, | ||
Vector3< double > & | resultPos, | ||
Quaternion< double > & | resultRot, | ||
Matrix< double > & | resultCov | ||
) |
Transforms a pose Q,C by a rigid transformation dQ,dt such that the resulting pose is dQ*Q, dQ*C*dQ' + dt.
Definition at line 84 of file CovTransformPose.cpp.
References BIAS::MatrixZero, BIAS::NONE, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), and BIAS::PoseTransform.
|
protectedinherited |
Definition at line 510 of file Debug.hh.
Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().
|
protectedinherited |
new concept, debuglevel are managed here in the debug class
Definition at line 516 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
Definition at line 517 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
staticprotectedinherited |
Definition at line 511 of file Debug.hh.
Referenced by BIAS::Debug::operator=().
|
protectedinherited |
the alpha parameter determines the spread of the sigma points
Definition at line 94 of file UnscentedTransform.hh.
Referenced by BIAS::UnscentedTransform::ComputeSigmaPoints_().
|
protectedinherited |
beta is used to incorporate prior knowledge of the distribution of x.
For Gaussian distributions beta = 2.0 is optiomal
Definition at line 97 of file UnscentedTransform.hh.
Referenced by BIAS::UnscentedTransform::ComputeSigmaPoints_().
|
staticprotectedinherited |
|
protectedinherited |
kappa is a secondary scaling parameter.
In other papers from Uhlman kappa is fixed to 1.0
Definition at line 100 of file UnscentedTransform.hh.
Referenced by BIAS::UnscentedTransform::ComputeSigmaPoints_().
|
protected |
Definition at line 99 of file CovTransformPose.hh.
|
protectedinherited |
Definition at line 102 of file UnscentedTransform.hh.
Referenced by BIAS::UnscentedTransform::ComputeSigmaPoints_().