Visual Servoing Platform
version 3.1.0
|
#include <visp3/core/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.
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. |
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. |
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. |
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. |
Definition at line 216 of file vpExponentialMap.cpp.
References vpThetaUVector::buildFrom(), vpHomogeneousMatrix::extract(), vpMath::mcosc(), vpMath::msinc(), and vpMath::sinc().