opentl::core::cvdata::PoseArticulated Class Reference

Implemented class for storing 2D/3D articulated and multi-part objects. More...

Inherits opentl::core::cvdata::Pose.

List of all members.

Public Member Functions

virtual PoseArticulatedclone () const
virtual double getAngleX ()
virtual double getAngleY ()
virtual double getAngleZ ()
virtual void getIncT (math::Transform &incT, int linkId=0)
 Function to get the stored value information.
virtual void getLocalT (math::Transform &T, int linkId=0)
 Function to get the local, finite T matrix (= inter-link).
virtual void getRefT (math::Transform &refT, int linkId=0)
 Return the reference T matrix.
virtual double getScaleX ()
virtual double getScaleY ()
virtual double getScaleZ ()
cvdata::PosegetSinglePose (int linkId) const
 Return the single INTER-LINK Pose class, for a given link.
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)
 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)
 Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.
virtual PoseArticulatedoperator= (const PoseArticulated &value)
 PoseArticulated (const PoseArticulated &value)
 Constructor. Initialize object with existing value object.
 PoseArticulated (opentl::core::cvdata::Skeleton *skel, opentl::core::cvdata::CvData::DataReprClass poseClass, opentl::core::cvdata::Pose::T_UPDATEMODE updateMode, std::vector< math::Vector2 > *poseLimits=NULL)
 Default constructor.
virtual void resetData ()
 Reset to 0 the incremental pose parameters, and the update flag as well.
virtual void resetIncData ()
 Reset to 0 the incremental pose parameters, and the update flag as well.
virtual void resetRefT (int linkId=-1)
 Reset the reference T matrices (to identity).
virtual void setAngleX (double sX)
virtual void setAngleY (double sY)
virtual void setAngleZ (double sZ)
virtual void setDataFromVec (const math::Vector &value)
 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)!
virtual void setIncDataFromVec (const math::Vector &value)
 Set INTER-LINK incremental T matrices, by using a global vector.
virtual void setLocalIncT (const std::vector< math::Transform > &matT)
 Set pose parameters by homog. transformation matrix data.
virtual void setLocalT (const std::vector< math::Transform > &matT)
 Set pose parameters by homog. transformation matrix data.
virtual void setRefT (const math::Transform &refT, int linkId=0)
 Set the reference T matrix.
virtual void setScaleX (double sX)
virtual void setScaleY (double sY)
virtual void setScaleZ (double sZ)
virtual void setX (double X)
virtual void setY (double Y)
virtual void setZ (double Z)
virtual void updateAdditiveJacT ()
 Jacobians of T matrix, in the additive case.
virtual void updateCompositionalJacT ()
 Function to get the pose derivatives as homog. transformation matrices, mJacT.
void updateFromRootPose ()
virtual ~PoseArticulated ()
 Destructor.

Protected Member Functions

virtual void additiveUpdate ()
 Perform additive updates for all links.
virtual void compositionalUpdate ()
 Perform compositional updates for all links.
virtual bool forcePoseLimits ()
 Check the current pose against the limits, and force the overflowing parameters to the bounds.
virtual void initLieAlgGen ()
 Initialize Lie algebra generators for all INTER-LINK poses.
virtual void setPoseLimits (std::vector< math::Vector2 > &poseLimits)
 Set the pose limits.
virtual void updateDataFromLocalT ()
 Set a single INTER-LINK transform, by the T matrix.
void updateIncDataFromT ()
 Set a single INTER-LINK incremental transform, by the T matrix.
void updateIncTFromData ()
 Function to get the incremental homog. transformation matrix T of link ID.
virtual void updateWorldTFromData ()
 Function to get the WORLD homog. transformation matrix T of link ID.

Protected Attributes

std::vector< cvdata::Pose * > mPoses
 List of poses (=skeleton nodes).
opentl::core::cvdata::SkeletonmSkel
 Pointer to the ShapeAppearance skeleton.


Detailed Description

Implemented class for storing 2D/3D articulated and multi-part objects.

Author:
G. Panin <panin@in.tum.de>

Constructor & Destructor Documentation

opentl::core::cvdata::PoseArticulated::PoseArticulated ( opentl::core::cvdata::Skeleton skel,
opentl::core::cvdata::CvData::DataReprClass  poseClass,
opentl::core::cvdata::Pose::T_UPDATEMODE  updateMode,
std::vector< math::Vector2 > *  poseLimits = NULL 
)

Default constructor.

Parameters:
skel Skeleton model (required)
poseClass It can be POSE_2D or POSE_3D. Reason: the skeleton can contain EITHER 2D OR 3D poses, but not both types!
poseLimits (optional) Upper and lower bounds for internal pose parameters (finite P values)

opentl::core::cvdata::PoseArticulated::PoseArticulated ( const PoseArticulated value  ) 

Constructor. Initialize object with existing value object.

virtual opentl::core::cvdata::PoseArticulated::~PoseArticulated (  )  [virtual]

Destructor.


Member Function Documentation

virtual void opentl::core::cvdata::PoseArticulated::additiveUpdate (  )  [protected, virtual]

Perform additive updates for all links.

Reimplemented from opentl::core::cvdata::Pose.

virtual PoseArticulated* opentl::core::cvdata::PoseArticulated::clone (  )  const [virtual]

virtual void opentl::core::cvdata::PoseArticulated::compositionalUpdate (  )  [protected, virtual]

Perform compositional updates for all links.

Reimplemented from opentl::core::cvdata::Pose.

virtual bool opentl::core::cvdata::PoseArticulated::forcePoseLimits (  )  [protected, virtual]

Check the current pose against the limits, and force the overflowing parameters to the bounds.

Returns:
true if the pose has been changed (i.e. it was beyond the limits)

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getAngleX (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getAngleY (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getAngleZ (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::getIncT ( math::Transform incT,
int  linkId = 0 
) [inline, virtual]

Function to get the stored value information.

Parameters:
T Input and output incremental world T matrix
linkId Input which link we refer to.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::getLocalT ( math::Transform T,
int  linkId = 0 
) [inline, virtual]

Function to get the local, finite T matrix (= inter-link).

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::getRefT ( math::Transform refT,
int  linkId = 0 
) [inline, virtual]

Return the reference T matrix.

Parameters:
refT input T matrix: this is pre-multiplied by the local T, to obtain the world T
linkId Input which link we refer to.

virtual double opentl::core::cvdata::PoseArticulated::getScaleX (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getScaleY (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getScaleZ (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

cvdata::Pose* opentl::core::cvdata::PoseArticulated::getSinglePose ( int  linkId  )  const [inline]

Return the single INTER-LINK Pose class, for a given link.

virtual double opentl::core::cvdata::PoseArticulated::getX (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getY (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual double opentl::core::cvdata::PoseArticulated::getZ (  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual int opentl::core::cvdata::PoseArticulated::initFromPoints ( const math::Matrix bodyPoints,
const math::Matrix screenPoints,
const math::SquareMatrix intrinsicMat,
const math::Vector linkIdx = NULL 
) [virtual]

Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem").

Parameters:
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)
Returns:
Error condition (0 = OK)

Implements opentl::core::cvdata::Pose.

virtual int opentl::core::cvdata::PoseArticulated::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 
) [virtual]

Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.

Parameters:
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)
Returns:
Error condition (0 = OK)

Implements opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::initLieAlgGen (  )  [protected, virtual]

Initialize Lie algebra generators for all INTER-LINK poses.

Implements opentl::core::cvdata::Pose.

virtual PoseArticulated& opentl::core::cvdata::PoseArticulated::operator= ( const PoseArticulated value  )  [virtual]

virtual void opentl::core::cvdata::PoseArticulated::resetData (  )  [virtual]

Reset to 0 the incremental pose parameters, and the update flag as well.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::resetIncData (  )  [virtual]

Reset to 0 the incremental pose parameters, and the update flag as well.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::resetRefT ( int  linkId = -1  )  [inline, virtual]

Reset the reference T matrices (to identity).

Parameters:
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 from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setAngleX ( double  sX  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setAngleY ( double  sY  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setAngleZ ( double  sZ  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setDataFromVec ( const math::Vector value  )  [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)!

Set INTER-LINK T matrices, by using a global vector.

Parameters:
value Global or single-link pose vector (inc. representation)
linkId Update a single link, or all the body (-1)

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setIncDataFromVec ( const math::Vector value  )  [virtual]

Set INTER-LINK incremental T matrices, by using a global vector.

Parameters:
value Global or single-link pose vector (inc. representation)
linkId Update a single link, or all the body (-1)

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setLocalIncT ( const std::vector< math::Transform > &  matT  )  [inline, virtual]

Set pose parameters by homog. transformation matrix data.

Parameters:
matT Homog. transformation matrix.
linkId Update only one link (by default, link 0).

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setLocalT ( const std::vector< math::Transform > &  matT  )  [inline, virtual]

Set pose parameters by homog. transformation matrix data.

Parameters:
matT Homog. transformation matrix.
linkId Update only one link (by default, link 0).

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setPoseLimits ( std::vector< math::Vector2 > &  poseLimits  )  [protected, virtual]

Set the pose limits.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setRefT ( const math::Transform refT,
int  linkId = 0 
) [inline, virtual]

Set the reference T matrix.

Parameters:
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 from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setScaleX ( double  sX  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setScaleY ( double  sY  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setScaleZ ( double  sZ  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setX ( double  X  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setY ( double  Y  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::setZ ( double  Z  )  [inline, virtual]

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::updateAdditiveJacT (  )  [inline, virtual]

Jacobians of T matrix, in the additive case.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::updateCompositionalJacT (  )  [virtual]

Function to get the pose derivatives as homog. transformation matrices, mJacT.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::updateDataFromLocalT (  )  [protected, virtual]

Set a single INTER-LINK transform, by the T matrix.

Parameters:
linkId link we refer to.

Implements opentl::core::cvdata::Pose.

void opentl::core::cvdata::PoseArticulated::updateFromRootPose (  )  [inline]

void opentl::core::cvdata::PoseArticulated::updateIncDataFromT (  )  [protected, virtual]

Set a single INTER-LINK incremental transform, by the T matrix.

Parameters:
linkId link we refer to.

Reimplemented from opentl::core::cvdata::Pose.

void opentl::core::cvdata::PoseArticulated::updateIncTFromData (  )  [protected, virtual]

Function to get the incremental homog. transformation matrix T of link ID.

Parameters:
linkId link we refer to.

Reimplemented from opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::PoseArticulated::updateWorldTFromData (  )  [protected, virtual]

Function to get the WORLD homog. transformation matrix T of link ID.

Parameters:
linkId link we refer to. NOTE: In this function implementation, the global data vector is not used. But the name must stay the same of the abstract class!

Implements opentl::core::cvdata::Pose.


Member Data Documentation

List of poses (=skeleton nodes).

Pointer to the ShapeAppearance skeleton.


Generated on Fri Jul 31 17:38:38 2009 for OpenTL by  doxygen 1.5.8