![]() |
Visual Servoing Platform
version 3.1.0
|
#include <vpExponentialMap.h>
Static Public Member Functions | |
| static vpHomogeneousMatrix | direct (const vpColVector &v) |
| static vpHomogeneousMatrix | direct (const vpColVector &v, const double &delta_t) |
| static vpColVector | inverse (const vpHomogeneousMatrix &M) |
| static vpColVector | inverse (const vpHomogeneousMatrix &M, const double &delta_t) |
Direct or inverse exponential map computation.
The exponential map is the relationship between the velocity of a moving body and its pose. The exponential map transforms exponentially the velocity skew vector
applied during a given time
to its corresponding pose. The exponential map is usually written using homogeneous matrices as:
where
is a pose before applied velocity and
the result.
This class allows to compute the direct or the inverse exponential map.
from a velocity vector skew
applied during a sampling time
. With direct() the sampling time is set to 1 second. With direct(const vpColVector &, const double &) the sampling time can be set to an other value where the second argument is
.
from a displacement measured during a time interval
. With inverse() the time interval also called sampling time is set to 1 second. With inverse(const vpHomogeneousMatrix &, const double &) the sampling time can be set to an other value where the second argument is
.The displacement is represented as an homogeneous matrix implemented in vpHomogeneousMatrix. Velocities
are represented as a velocity skew 6 dimension vector
, where
is a velocity translation vector with values in m/s and
a velocity rotation vector with values expressed in rad/s.
Definition at line 91 of file vpExponentialMap.h.
|
static |
Compute the exponential map. The inverse function is inverse(). The sampling time is here set to 1 second. To use an other value you should use direct(const vpColVector &, const double &).
| v | : Instantaneous velocity skew represented by a 6 dimension vector where is a translation velocity vector and is a rotation velocity vector. |
computed from an instantaneous velocity
, where
is the displacement of the object when the velocity
is applied during 1 second.Definition at line 59 of file vpExponentialMap.cpp.
Referenced by vpCalibration::calibrationTsai(), vpPoseFeatures::computePose(), vpMbDepthDenseTracker::computeVVS(), vpMbDepthNormalTracker::computeVVS(), vpMbGenericTracker::computeVVS(), vpMbKltMultiTracker::computeVVS(), vpMbEdgeKltTracker::computeVVS(), vpMbEdgeMultiTracker::computeVVS(), vpMbEdgeKltMultiTracker::computeVVS(), vpMbKltTracker::computeVVS(), vpMbEdgeTracker::computeVVS(), vpMbEdgeMultiTracker::computeVVSFirstPhasePoseEstimation(), vpMbEdgeTracker::computeVVSFirstPhasePoseEstimation(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpSimulatorCamera::setVelocity(), vpRobotCamera::setVelocity(), and vpMbGenericTracker::track().
|
static |
Compute the exponential map. The inverse function is inverse().
| v | : Instantaneous velocity skew represented by a 6 dimension vector where is a translation velocity vector and is a rotation velocity vector. |
| delta_t | : Sampling time . Time during which the velocity is applied. |
computed from an instantaneous velocity
, where
is the displacement of the object when the velocity
is applied during
seconds.Definition at line 79 of file vpExponentialMap.cpp.
References vpRotationMatrix::buildFrom(), vpHomogeneousMatrix::insert(), vpMath::mcosc(), vpMath::msinc(), and vpMath::sinc().
|
static |
Computes an instantaneous velocity skew from an homogeneous matrix. The inverse function is the exponential map, see direct().
| M | : An homogeneous matrix corresponding to the displacement of an object during 1 second. |
represented by a 6 dimension vector
where
is a translation velocity vector and
is a rotation velocity vector.Definition at line 197 of file vpExponentialMap.cpp.
Referenced by vpRobotBiclops::getDisplacement(), vpRobotAfma4::getVelocity(), vpRobotAfma6::getVelocity(), vpRobotViper650::getVelocity(), and vpRobotViper850::getVelocity().
|
static |
Compute an instantaneous velocity from an homogeneous matrix. The inverse function is the exponential map, see direct().
| M | : An homogeneous matrix corresponding to the displacement of an object during seconds. |
| delta_t | : Sampling time . Time during which the displacement is applied. |
represented by a 6 dimension vector
where
is a translation velocity vector and
is a rotation velocity vector.Definition at line 216 of file vpExponentialMap.cpp.
References vpThetaUVector::buildFrom(), vpHomogeneousMatrix::extract(), vpMath::mcosc(), vpMath::msinc(), and vpMath::sinc().