Inherits opentl::core::cvdata::CvData.
Inherited by opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
Public Types | |
Public Member Functions | |
virtual Pose * | clone () const =0 |
virtual void | computePoseIncrement (Pose &refPose, math::Vector &increment, bool bModifyCurrentPose=true) |
Compute the difference (incremental Pose vector) between a reference pose and this one. | |
virtual void | createWorldData (int dimP, int dof, int nLinks=1) |
Allocate the world-related quantities (at construction time) NOTE 1: here we suppose to have already the information about all degrees of freedom, and internal poses (articulated models) Therefore, this function should be called right at the end of the constructor (or copy constructor) NOTE 2: the camera-related matrices cannot be allocated here, but only by the Warp class (we do not know how many cameras)! | |
int | dimension () const |
Return the number of finite pose parameters. | |
int | dof () const |
Return the number of incremental parameters (= actual degrees of freedom). | |
virtual bool | forcePoseLimits () |
Check the current pose against the limits, and force the overflowing parameters to the bounds. | |
virtual double | getAngleX () |
virtual double | getAngleY () |
virtual double | getAngleZ () |
std::vector< double > & | getCamK (std::size_t cameraIdx=0) |
Copy camera K matrix. | |
std::vector< double > & | getCamT (std::size_t cameraIdx=0, std::size_t linkIdx=0) const |
Copy camera-related T matrix. | |
double | getCamTDepth (std::size_t cameraIdx=0, std::size_t linkIdx=0) const |
double | getData (std::size_t index) |
void | getData (math::Vector &vec) |
Function to get the stored value information. | |
void | getIncData (math::Vector &vec) |
Function to copy the stored incremental pose information. | |
virtual void | getIncT (opentl::math::Transform &T, int linkId=0) |
Function to get the stored value information. | |
std::vector< std::vector < double > > & | getJacScreen (std::size_t cameraIdx=0, std::size_t linkIdx=0) |
Return camera T Jacobians (one matrix for each dof, stored as a vector of double). | |
bool | getJacScreenRefreshFlag (std::size_t cameraIdx=0) |
Return refresh flag for given camera Jacobians. | |
void | getJacT (opentl::math::Transform &jacT, std::size_t dof, int linkId=0) |
Function to get the stored value information. | |
bool | getJacTRefreshFlag () const |
Set the dirty flag for world T Jacobians. | |
std::vector< std::vector < opentl::math::Transform > > * | getJacTVector () |
Get vector of world-T matrices. | |
void | getLieGen (std::size_t iD, opentl::math::Transform &G) |
Function to get the i-th Lie generator. | |
virtual void | getLocalT (opentl::math::Transform &T, int linkId=0) |
Function to get the finite T matrix. | |
std::vector < opentl::math::Vector2 > * | getPoseLimitsVector () |
Get the pose limits. | |
virtual void | getRefT (opentl::math::Transform &refT, int linkId=0) const |
Return the reference T matrix. | |
bool | getRefTSetFlag () const |
Get the flag, indicating whether the reference T matrix is set (different from I) or not. | |
virtual double | getScaleX () |
virtual double | getScaleY () |
virtual double | getScaleZ () |
T_UPDATEFLAG | getUpdateFlag () const |
Return the update flag for finite parameters. | |
T_UPDATEFLAG | getUpdateIncFlag () const |
Return the update flag for finite parameters. | |
T_UPDATEMODE | getUpdateMode () const |
Return Update mode of this Pose (additive/compositional). | |
void | getWorldT (opentl::math::Transform &T, int linkId=0) |
Function to get the stored value information. | |
std::vector < opentl::math::Transform > * | getWorldTVector () |
Get vector of world-T matrices. | |
virtual double | getX () |
virtual double | getY () |
virtual double | getZ () |
virtual int | initFromPoints (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdx=NULL)=0 |
Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem"). | |
virtual int | initFromPointsAndLines (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::Matrix &bodyLines, const math::Matrix &screenLines, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdxForPoint=NULL, const math::Vector *linkIdxForLine=NULL)=0 |
Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences. | |
int | links () const |
Return link count. (= 1 for non-articulated objects). | |
virtual Pose & | operator= (const Pose &value) |
Pose (opentl::core::cvdata::CvData::DataReprType posetype, T_UPDATEMODE updateMode) | |
Constructor. | |
virtual void | poseUpdate () |
Do a pose update with the incremental parameters. | |
virtual void | resetData () |
Reset to 0 all parameters, and the update flag as well. | |
virtual void | resetIncData () |
Reset to 0 only the incremental parameters, and the update flag as well. | |
virtual void | resetRefT (int linkId=-1) |
Reset the reference T matrix (to identity). | |
virtual void | setAngleX (double) |
virtual void | setAngleY (double) |
virtual void | setAngleZ (double) |
void | setCamK (std::vector< double > &camK, std::size_t cameraIdx=0) |
Set camera K matrix. | |
void | setCamT (std::vector< double > &camT, std::size_t cameraIdx=0, std::size_t linkIdx=0) |
Set camera-related T matrix. | |
virtual void | setDataFromVec (const math::Vector &value) |
Function to set the value of this pose. | |
virtual void | setIncDataFromVec (const math::Vector &value) |
Function to set the infinitesimal pose from the matrix. | |
void | setJacScreenRefreshFlag (bool val, std::size_t cameraIdx=0) |
Set refresh flag for given camera Jacobians. | |
void | setJacTRefreshFlag (bool flag) |
Set the dirty flag for world T Jacobians. | |
virtual void | setLocalIncT (const std::vector< opentl::math::Transform > &matT) |
Set pose parameters by homog. transformation matrix data. | |
virtual void | setLocalT (const std::vector< opentl::math::Transform > &matT) |
Set pose parameters by homog. transformation matrix data. | |
virtual void | setPoseLimits (std::vector< opentl::math::Vector2 > &poseLimits) |
Set the pose limits. | |
virtual void | setRefT (const opentl::math::Transform &refT, int linkId=0) |
Set the reference T matrix. | |
void | setRefTSetFlag (bool flag) |
Set the flag, indicating whether the reference T matrix is set (different from I) or not. | |
virtual void | setScaleX (double) |
virtual void | setScaleY (double) |
virtual void | setScaleZ (double) |
void | setUpdateFlag (T_UPDATEFLAG flag) |
Set the update flag for finite parameters. | |
void | setUpdateIncFlag (T_UPDATEFLAG flag) |
Set the update flag for finite parameters. | |
virtual void | setX (double) |
virtual void | setY (double) |
virtual void | setZ (double) |
virtual void | updateJacT () |
Function to update the pose derivatives of homog. transformation matrix T. | |
virtual | ~Pose () |
Destructor. | |
Protected Member Functions | |
virtual void | additiveUpdate () |
Add finite and incremental pose parameters for all links, store the result in mValue, and set mIncValue to 0. | |
virtual void | compositionalUpdate () |
Multiply worldT and incT for all links, store the result in worldT, and reset incT. | |
void | copyPoseData (const Pose &pvalue) |
Internal function for the operator =. | |
virtual void | initLieAlgGen ()=0 |
Function to generate Lie Algebra Generator matrices, required for calculation of Jacobians, based on a specific pose representation type. | |
virtual void | updateAdditiveJacT () |
Jacobian of T matrix, for the additive case: J = dT/dp. | |
virtual void | updateCompositionalJacT () |
Jacobian of T matrix, for the compositional case (using Lie algebras): J(i) = T*G{i} with G(i) the Lie generator for the i-th degree of freedom dp(i). | |
virtual void | updateDataFromLocalT ()=0 |
Compute pose parameters from homog. transformation matrix data. | |
virtual void | updateIncDataFromT () |
Function to set the infinitesimal pose, as the logarithm of small homog. transformation matrix T. | |
virtual void | updateIncTFromData () |
Function to get the incremental homog. transformation matrix T. | |
virtual void | updateWorldTFromData ()=0 |
Function to get the pose as homog. transformation matrix T. | |
Protected Attributes | |
int | mDim |
Overall number of finite pose parameters (mValue) NOTE: for articulated poses, this is the sum of dimensions for all internal poses. | |
unsigned int | mIncDim |
Overall number of Lie generators (= actual degrees of freedom) NOTE: for articulated poses, this is the sum of degrees of freedom for all internal poses. | |
std::vector < opentl::math::Transform > * | mLieGen |
Lie generator matrices NOTE: for articulated poses, this is just a collection of all Lie generators of internal poses! | |
Friends | |
class | modelprojection::Warp |
The meaning of the value within the Pose class is defined in the derived classes.
IMPORTANT: The Pose class shall store the actual degrees of freedom (DOFs) of the object to be tracked ONLY. Otherwise it will lead to problems when using optimization algorithms.
Possible update status for the pose data (finite and incremental) Semantics:.
NOTE: for 1-link poses, world and local T are the same. But not for multi-link poses!
Possible update modalities: ADDITIVE: finite and incremental pose values are added together (which makes T dirty and P up-to-date) COMPOSITIONAL (default): finite and incremental T matrices are multiplied together (which makes P dirty and T up-to-date) NOTE: after any kind of update, both incremental parameters are reset (dP=0, dT=I).
opentl::core::cvdata::Pose::Pose | ( | opentl::core::cvdata::CvData::DataReprType | posetype, | |
T_UPDATEMODE | updateMode | |||
) |
Constructor.
posetype | Input pose representation type (see the CvData types) | |
updateMode | Input update modality (default: compositional update) |
virtual opentl::core::cvdata::Pose::~Pose | ( | ) | [virtual] |
Destructor.
virtual void opentl::core::cvdata::Pose::additiveUpdate | ( | ) | [protected, virtual] |
Add finite and incremental pose parameters for all links, store the result in mValue, and set mIncValue to 0.
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual Pose* opentl::core::cvdata::Pose::clone | ( | ) | const [pure virtual] |
Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::compositionalUpdate | ( | ) | [protected, virtual] |
Multiply worldT and incT for all links, store the result in worldT, and reset incT.
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::computePoseIncrement | ( | Pose & | refPose, | |
math::Vector & | increment, | |||
bool | bModifyCurrentPose = true | |||
) | [virtual] |
Compute the difference (incremental Pose vector) between a reference pose and this one.
refPose | Reference Pose vector (T0) | |
increment | Output incremental pose vector between reference and current Pose (dp) | |
bModifyCurrentPose | Whether to modify the current Pose or the reference one, for doing the computation NOTE: The modified Pose will need a warpUpdate afterwards (since the incremental data are non-zero anymore)! This is performed differently, according to the update rule:
|
void opentl::core::cvdata::Pose::copyPoseData | ( | const Pose & | pvalue | ) | [inline, protected] |
Internal function for the operator =.
virtual void opentl::core::cvdata::Pose::createWorldData | ( | int | dimP, | |
int | dof, | |||
int | nLinks = 1 | |||
) | [virtual] |
Allocate the world-related quantities (at construction time) NOTE 1: here we suppose to have already the information about all degrees of freedom, and internal poses (articulated models) Therefore, this function should be called right at the end of the constructor (or copy constructor) NOTE 2: the camera-related matrices cannot be allocated here, but only by the Warp class (we do not know how many cameras)!
int opentl::core::cvdata::Pose::dimension | ( | ) | const [inline] |
Return the number of finite pose parameters.
int opentl::core::cvdata::Pose::dof | ( | ) | const [inline] |
Return the number of incremental parameters (= actual degrees of freedom).
virtual bool opentl::core::cvdata::Pose::forcePoseLimits | ( | ) | [virtual] |
Check the current pose against the limits, and force the overflowing parameters to the bounds.
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual double opentl::core::cvdata::Pose::getAngleX | ( | ) | [inline, virtual] |
virtual double opentl::core::cvdata::Pose::getAngleY | ( | ) | [inline, virtual] |
virtual double opentl::core::cvdata::Pose::getAngleZ | ( | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotationZaxis, and opentl::core::cvdata::PoseArticulated.
std::vector<double >& opentl::core::cvdata::Pose::getCamK | ( | std::size_t | cameraIdx = 0 |
) | [inline] |
Copy camera K matrix.
camK | Camera K (stored as a vector of double) | |
cameraIdx | Camera index |
std::vector<double>& opentl::core::cvdata::Pose::getCamT | ( | std::size_t | cameraIdx = 0 , |
|
std::size_t | linkIdx = 0 | |||
) | const [inline] |
Copy camera-related T matrix.
camT | Camera-to-object T (stored as a vector of double) | |
cameraIdx | Camera index | |
linkIdx | Link index |
double opentl::core::cvdata::Pose::getCamTDepth | ( | std::size_t | cameraIdx = 0 , |
|
std::size_t | linkIdx = 0 | |||
) | const [inline] |
double opentl::core::cvdata::Pose::getData | ( | std::size_t | index | ) | [inline] |
void opentl::core::cvdata::Pose::getData | ( | math::Vector & | vec | ) | [inline] |
Function to get the stored value information.
vec | Input and output vector with pose data |
void opentl::core::cvdata::Pose::getIncData | ( | math::Vector & | vec | ) | [inline] |
Function to copy the stored incremental pose information.
vec | Input and output vector with pose data |
virtual void opentl::core::cvdata::Pose::getIncT | ( | opentl::math::Transform & | T, | |
int | linkId = 0 | |||
) | [inline, virtual] |
Function to get the stored value information.
T | Input and output incremental world T matrix | |
linkId | Input which link we refer to. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
std::vector<std::vector<double> >& opentl::core::cvdata::Pose::getJacScreen | ( | std::size_t | cameraIdx = 0 , |
|
std::size_t | linkIdx = 0 | |||
) | [inline] |
Return camera T Jacobians (one matrix for each dof, stored as a vector of double).
cameraIdx | Camera index | |
linkIdx | Link index |
bool opentl::core::cvdata::Pose::getJacScreenRefreshFlag | ( | std::size_t | cameraIdx = 0 |
) | [inline] |
Return refresh flag for given camera Jacobians.
cameraIdx | Camera index |
void opentl::core::cvdata::Pose::getJacT | ( | opentl::math::Transform & | jacT, | |
std::size_t | dof, | |||
int | linkId = 0 | |||
) | [inline] |
Function to get the stored value information.
T | output world T matrix | |
linkId | Input which link we refer to. |
bool opentl::core::cvdata::Pose::getJacTRefreshFlag | ( | ) | const [inline] |
Set the dirty flag for world T Jacobians.
std::vector<std::vector<opentl::math::Transform> >* opentl::core::cvdata::Pose::getJacTVector | ( | ) | [inline] |
Get vector of world-T matrices.
void opentl::core::cvdata::Pose::getLieGen | ( | std::size_t | iD, | |
opentl::math::Transform & | G | |||
) | [inline] |
Function to get the i-th Lie generator.
virtual void opentl::core::cvdata::Pose::getLocalT | ( | opentl::math::Transform & | T, | |
int | linkId = 0 | |||
) | [inline, virtual] |
Function to get the finite T matrix.
T | output inter-link T matrix | |
linkId | Input which link we refer to. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
std::vector<opentl::math::Vector2>* opentl::core::cvdata::Pose::getPoseLimitsVector | ( | ) | [inline] |
Get the pose limits.
virtual void opentl::core::cvdata::Pose::getRefT | ( | opentl::math::Transform & | refT, | |
int | linkId = 0 | |||
) | const [inline, virtual] |
Return the reference T matrix.
refT | input T matrix: this is pre-multiplied by the local T, to obtain the world T | |
linkId | Input which link we refer to. |
bool opentl::core::cvdata::Pose::getRefTSetFlag | ( | ) | const [inline] |
Get the flag, indicating whether the reference T matrix is set (different from I) or not.
virtual double opentl::core::cvdata::Pose::getScaleX | ( | ) | [inline, virtual] |
virtual double opentl::core::cvdata::Pose::getScaleY | ( | ) | [inline, virtual] |
virtual double opentl::core::cvdata::Pose::getScaleZ | ( | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::PoseArticulated.
T_UPDATEFLAG opentl::core::cvdata::Pose::getUpdateFlag | ( | ) | const [inline] |
Return the update flag for finite parameters.
T_UPDATEFLAG opentl::core::cvdata::Pose::getUpdateIncFlag | ( | ) | const [inline] |
Return the update flag for finite parameters.
T_UPDATEMODE opentl::core::cvdata::Pose::getUpdateMode | ( | ) | const [inline] |
Return Update mode of this Pose (additive/compositional).
void opentl::core::cvdata::Pose::getWorldT | ( | opentl::math::Transform & | T, | |
int | linkId = 0 | |||
) | [inline] |
Function to get the stored value information.
T | output world T matrix | |
linkId | Input which link we refer to. |
std::vector<opentl::math::Transform>* opentl::core::cvdata::Pose::getWorldTVector | ( | ) | [inline] |
Get vector of world-T matrices.
virtual double opentl::core::cvdata::Pose::getX | ( | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.
virtual double opentl::core::cvdata::Pose::getY | ( | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.
virtual double opentl::core::cvdata::Pose::getZ | ( | ) | [inline, virtual] |
virtual int opentl::core::cvdata::Pose::initFromPoints | ( | const math::Matrix & | bodyPoints, | |
const math::Matrix & | screenPoints, | |||
const math::SquareMatrix & | intrinsicMat, | |||
const math::Vector * | linkIdx = NULL | |||
) | [pure virtual] |
Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem").
bodyPoints | Input points in object space (3xN) or (2xN) | |
screenPoints | Input corresponding points in image space (2xN) | |
intrinsicMat | Input camera calibration matrix (3x3) | |
linkIdx | Input Link ID of each point (for articulated Poses only) |
Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
virtual int opentl::core::cvdata::Pose::initFromPointsAndLines | ( | const math::Matrix & | bodyPoints, | |
const math::Matrix & | screenPoints, | |||
const math::Matrix & | bodyLines, | |||
const math::Matrix & | screenLines, | |||
const math::SquareMatrix & | intrinsicMat, | |||
const math::Vector * | linkIdxForPoint = NULL , |
|||
const math::Vector * | linkIdxForLine = NULL | |||
) | [pure virtual] |
Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.
bodyPoints | Input points in object space (3xN1) or (2xN1) | |
screenPoints | Input corresponding points in image space (2xN1) | |
bodyLines | Input line segments in object space (3x2*N2) | |
screenLines | Input corresponding lines in image space (3xN2 for 2D represantation) | |
intrinsicMat | Input camera calibration matrix (3x3) | |
linkIdxForPoint | Input Link ID of each point (for articulated Poses only) | |
linkIdxForLine | Input Link ID of each line (for articulated Poses only) | |
preProcessLines | for articulated poses, if the screenlines are already precossed before |
Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::initLieAlgGen | ( | ) | [protected, pure virtual] |
Function to generate Lie Algebra Generator matrices, required for calculation of Jacobians, based on a specific pose representation type.
mLieGen | STL vector to store matrices. |
Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
int opentl::core::cvdata::Pose::links | ( | ) | const [inline] |
Return link count. (= 1 for non-articulated objects).
virtual void opentl::core::cvdata::Pose::poseUpdate | ( | ) | [virtual] |
Do a pose update with the incremental parameters.
virtual void opentl::core::cvdata::Pose::resetData | ( | ) | [virtual] |
Reset to 0 all parameters, and the update flag as well.
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::resetIncData | ( | ) | [virtual] |
Reset to 0 only the incremental parameters, and the update flag as well.
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::resetRefT | ( | int | linkId = -1 |
) | [virtual] |
Reset the reference T matrix (to identity).
linkId | Input which link we refer to (-1 = reset all links) NOTE: This also resets the internal flag (to speed-up computations, we do not multiply by I!) |
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::setAngleX | ( | double | ) | [inline, virtual] |
virtual void opentl::core::cvdata::Pose::setAngleY | ( | double | ) | [inline, virtual] |
virtual void opentl::core::cvdata::Pose::setAngleZ | ( | double | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dRotationZaxis, and opentl::core::cvdata::PoseArticulated.
void opentl::core::cvdata::Pose::setCamK | ( | std::vector< double > & | camK, | |
std::size_t | cameraIdx = 0 | |||
) | [inline] |
Set camera K matrix.
camK | Camera K (stored as a vector of double) | |
cameraIdx | Camera index |
void opentl::core::cvdata::Pose::setCamT | ( | std::vector< double > & | camT, | |
std::size_t | cameraIdx = 0 , |
|||
std::size_t | linkIdx = 0 | |||
) | [inline] |
Set camera-related T matrix.
camT | Camera-to-object T (stored as a vector of double) | |
cameraIdx | Camera index | |
linkIdx | Link index |
virtual void opentl::core::cvdata::Pose::setDataFromVec | ( | const math::Vector & | value | ) | [virtual] |
Function to set the value of this pose.
value | Set data by vector. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::setIncDataFromVec | ( | const math::Vector & | value | ) | [virtual] |
Function to set the infinitesimal pose from the matrix.
value | Input inf. pose vector. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
void opentl::core::cvdata::Pose::setJacScreenRefreshFlag | ( | bool | val, | |
std::size_t | cameraIdx = 0 | |||
) | [inline] |
Set refresh flag for given camera Jacobians.
cameraIdx | Camera index |
void opentl::core::cvdata::Pose::setJacTRefreshFlag | ( | bool | flag | ) | [inline] |
Set the dirty flag for world T Jacobians.
virtual void opentl::core::cvdata::Pose::setLocalIncT | ( | const std::vector< opentl::math::Transform > & | matT | ) | [virtual] |
Set pose parameters by homog. transformation matrix data.
matT | Homog. transformation matrix. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::setLocalT | ( | const std::vector< opentl::math::Transform > & | matT | ) | [virtual] |
Set pose parameters by homog. transformation matrix data.
matT | Homog. transformation matrix. | |
linkId | Update only one link (by default, link 0). |
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::setPoseLimits | ( | std::vector< opentl::math::Vector2 > & | poseLimits | ) | [virtual] |
virtual void opentl::core::cvdata::Pose::setRefT | ( | const opentl::math::Transform & | refT, | |
int | linkId = 0 | |||
) | [virtual] |
Set the reference T matrix.
refT | input T matrix: this is pre-multiplied by the local T, to obtain the world T | |
linkId | Input which link we refer to. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
void opentl::core::cvdata::Pose::setRefTSetFlag | ( | bool | flag | ) | [inline] |
Set the flag, indicating whether the reference T matrix is set (different from I) or not.
virtual void opentl::core::cvdata::Pose::setScaleX | ( | double | ) | [inline, virtual] |
virtual void opentl::core::cvdata::Pose::setScaleY | ( | double | ) | [inline, virtual] |
virtual void opentl::core::cvdata::Pose::setScaleZ | ( | double | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::PoseArticulated.
void opentl::core::cvdata::Pose::setUpdateFlag | ( | T_UPDATEFLAG | flag | ) | [inline] |
Set the update flag for finite parameters.
void opentl::core::cvdata::Pose::setUpdateIncFlag | ( | T_UPDATEFLAG | flag | ) | [inline] |
Set the update flag for finite parameters.
virtual void opentl::core::cvdata::Pose::setX | ( | double | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::setY | ( | double | ) | [inline, virtual] |
Reimplemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dTranslation, and opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::setZ | ( | double | ) | [inline, virtual] |
virtual void opentl::core::cvdata::Pose::updateAdditiveJacT | ( | ) | [inline, protected, virtual] |
Jacobian of T matrix, for the additive case: J = dT/dp.
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::updateCompositionalJacT | ( | ) | [protected, virtual] |
Jacobian of T matrix, for the compositional case (using Lie algebras): J(i) = T*G{i} with G(i) the Lie generator for the i-th degree of freedom dp(i).
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::updateDataFromLocalT | ( | ) | [protected, pure virtual] |
Compute pose parameters from homog. transformation matrix data.
linkId | Update only one link (by default, link 0). |
Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::updateIncDataFromT | ( | ) | [protected, virtual] |
Function to set the infinitesimal pose, as the logarithm of small homog. transformation matrix T.
linkId | Input which link we refer to. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::updateIncTFromData | ( | ) | [protected, virtual] |
Function to get the incremental homog. transformation matrix T.
matT | Return incremental matrix T. | |
linkId | Input which link we refer to. |
Reimplemented in opentl::core::cvdata::PoseArticulated.
virtual void opentl::core::cvdata::Pose::updateJacT | ( | ) | [virtual] |
Function to update the pose derivatives of homog. transformation matrix T.
virtual void opentl::core::cvdata::Pose::updateWorldTFromData | ( | ) | [protected, pure virtual] |
Function to get the pose as homog. transformation matrix T.
linkId | If (-1) compute all link matrices |
Implemented in opentl::core::cvdata::Pose2d1ScaleRotoTranslation, opentl::core::cvdata::Pose2d1ScaleTranslation, opentl::core::cvdata::Pose2d2ScaleRotation, opentl::core::cvdata::Pose2d2ScaleRotoTranslation, opentl::core::cvdata::Pose2d2ScaleTranslation, opentl::core::cvdata::Pose2dAffine, opentl::core::cvdata::Pose2dHomography, opentl::core::cvdata::Pose2dRotation, opentl::core::cvdata::Pose2dRotoTranslation, opentl::core::cvdata::Pose2dTranslation, opentl::core::cvdata::Pose3dEulerRotation, opentl::core::cvdata::Pose3dEulerRotoTranslation, opentl::core::cvdata::Pose3dPlanarRotoTranslation, opentl::core::cvdata::Pose3dProjective, opentl::core::cvdata::Pose3dRotationXaxis, opentl::core::cvdata::Pose3dRotationXYaxis, opentl::core::cvdata::Pose3dRotationYaxis, opentl::core::cvdata::Pose3dRotationZaxis, opentl::core::cvdata::Pose3dTranslation, opentl::core::cvdata::Pose3dTwist, and opentl::core::cvdata::PoseArticulated.
friend class modelprojection::Warp [friend] |
int opentl::core::cvdata::Pose::mDim [protected] |
Overall number of finite pose parameters (mValue) NOTE: for articulated poses, this is the sum of dimensions for all internal poses.
unsigned int opentl::core::cvdata::Pose::mIncDim [protected] |
Overall number of Lie generators (= actual degrees of freedom) NOTE: for articulated poses, this is the sum of degrees of freedom for all internal poses.
std::vector<opentl::math::Transform>* opentl::core::cvdata::Pose::mLieGen [protected] |
Lie generator matrices NOTE: for articulated poses, this is just a collection of all Lie generators of internal poses!