Visual Servoing Platform  version 3.0.1
vpExponentialMap Class Reference

#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)

Detailed Description

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 direct exponential map allows to determine the displacement 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 .
• The inverse exponential map allows to compute a velocity skew vector 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 90 of file vpExponentialMap.h.

Member Function Documentation

 vpHomogeneousMatrix vpExponentialMap::direct ( const vpColVector & v )
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 &).

Parameters
 v : Instantaneous velocity skew represented by a 6 dimension vector where is a translation velocity vector and is a rotation velocity vector.
Returns
An homogeneous matrix computed from an instantaneous velocity , where is the displacement of the object when the velocity is applied during 1 second.
See Also
inverse(const vpHomogeneousMatrix &)
Examples:
calibrateTsai.cpp, and exponentialMap.cpp.

Definition at line 59 of file vpExponentialMap.cpp.

 vpHomogeneousMatrix vpExponentialMap::direct ( const vpColVector & v, const double & delta_t )
static

Compute the exponential map. The inverse function is inverse().

Parameters
 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.
Returns
An homogeneous matrix computed from an instantaneous velocity , where is the displacement of the object when the velocity is applied during seconds.
See Also
inverse(const vpHomogeneousMatrix &, const double &)

Definition at line 82 of file vpExponentialMap.cpp.

 vpColVector vpExponentialMap::inverse ( const vpHomogeneousMatrix & M )
static

Computes an instantaneous velocity skew from an homogeneous matrix. The inverse function is the exponential map, see direct().

Parameters
 M : An homogeneous matrix corresponding to the displacement of an object during 1 second.
Returns
Instantaneous velocity skew represented by a 6 dimension vector where is a translation velocity vector and is a rotation velocity vector.
See Also
direct(const vpColVector &)
Examples:
exponentialMap.cpp.

Definition at line 207 of file vpExponentialMap.cpp.

 vpColVector vpExponentialMap::inverse ( const vpHomogeneousMatrix & M, const double & delta_t )
static

Compute an instantaneous velocity from an homogeneous matrix. The inverse function is the exponential map, see direct().

Parameters
 M : An homogeneous matrix corresponding to the displacement of an object during seconds. delta_t : Sampling time . Time during which the displacement is applied.
Returns
Instantaneous velocity skew represented by a 6 dimension vector where is a translation velocity vector and is a rotation velocity vector.
See Also
direct(const vpColVector &, const double &)

Definition at line 230 of file vpExponentialMap.cpp.