![]() |
Visual Servoing Platform version 3.7.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 gives the relationship between the velocity of a moving body and its displacement:
where
is the velocity skew vector at the previous iteration applied during
seconds at point
in frame
, while
is the corresponding displacement.
This class allows to compute the direct or the inverse exponential map.
A displacement
is represented as an homogeneous matrix implemented in vpHomogeneousMatrix. A velocity
is represented as a 6 dimension velocity skew 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 89 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 |
Definition at line 54 of file vpExponentialMap.cpp.
References direct().
Referenced by vpMbDepthDenseTracker::computeVVS(), vpMbDepthNormalTracker::computeVVS(), vpMbEdgeKltTracker::computeVVS(), vpMbEdgeTracker::computeVVS(), vpMbGenericTracker::computeVVS(), vpMbKltTracker::computeVVS(), vpMbEdgeTracker::computeVVSFirstPhasePoseEstimation(), direct(), vpRBVisualOdometryUtils::levenbergMarquardtKeypoints2D(), vpRBVisualOdometryUtils::levenbergMarquardtKeypoints3D(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpPose::poseVirtualVSWithDepth(), vpRobotBebop2::setVelocity(), vpRobotCamera::setVelocity(), vpSimulatorCamera::setVelocity(), and vpRBTracker::track().
|
static |
Compute the exponential map. The inverse function is inverse().
| v | : Instantaneous velocity skew represented by a 6 dimension vector |
| delta_t | : Sampling time |
Definition at line 74 of file vpExponentialMap.cpp.
References vpRotationMatrix::buildFrom(), vpException::dimensionError, 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 141 of file vpExponentialMap.cpp.
References inverse().
Referenced by vpRobotBiclops::getDisplacement(), vpRobotAfma6::getVelocity(), vpRobotViper650::getVelocity(), vpRobotViper850::getVelocity(), and inverse().
|
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 |
| delta_t | : Sampling time |
Definition at line 160 of file vpExponentialMap.cpp.
References vpHomogeneousMatrix::extract(), vpMath::mcosc(), vpMath::msinc(), and vpMath::sinc().