ExponentialMap

class ExponentialMap

Bases: pybind11_object

Direct or inverse exponential map computation.

The exponential map gives the relationship between the velocity of a moving body and its displacement:

\[\exp({^c}{\bf v}_c(t - \Delta t)) = {^{c(t - \Delta t)}}{\bf M}_{c(t)} \]

where \({^c}{\bf v}_c(t - \Delta t)\) is the velocity skew vector at the previous iteration applied during \(\Delta t\) seconds at point \(c\) in frame \(c\) , while \({^{c(t- \Delta t)}}{\bf M}_{c(t)}\) is the corresponding displacement.

This class allows to compute the direct or the inverse exponential map.

  • The direct exponential map allows to compute the displacement \({^{c(t - \Delta t)}}{\bf M}_{c(t)}\) using \({^c}{\bf v}_c(t - \Delta t)\) as input:

    \[{^{o}}{\bf M}_{c(t)} = {^{o}}{\bf M}_{c(t - \Delta t)} \exp({^c}{\bf v}_c(t - \Delta t)) \]

where \(o\) is a reference frame. With direct() , the velocity skew vector \({^c}{\bf v}_c(t - \Delta t)\) is applied during 1 second considering \(\Delta t = 1\) . With direct(const vpColVector &, const double &) the sampling time can be set to an other value where the second argument is \(\Delta t\) .

  • The inverse exponential map allows to compute the velocity skew vector \({^c}{\bf v}_c(t - \Delta t)\) from the displacement \({^{c(t - \Delta t)}}{\bf M}_{c(t)}\) measured during a time interval \(\Delta t\) . 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 \(\Delta t\) .

A displacement \(\bf M\) is represented as an homogeneous matrix implemented in vpHomogeneousMatrix . A velocity \(\bf v\) is represented as a 6 dimension velocity skew vector \([v, \omega]\) , where \(v\) is a velocity translation vector with values in m/s and \(\omega\) a velocity rotation vector with values expressed in rad/s.

Methods

__init__

direct

Overloaded function.

inverse

Overloaded function.

Inherited Methods

Operators

__doc__

__init__

__module__

Attributes

__annotations__

__init__(*args, **kwargs)
static direct(*args, **kwargs)

Overloaded function.

  1. direct(v: visp._visp.core.ColVector) -> visp._visp.core.HomogeneousMatrix

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 &) .

Note

See inverse(const vpHomogeneousMatrix &)

Parameters:
v

Instantaneous velocity skew represented by a 6 dimension vector \({\bf v} = [v, \omega]\) where \(v\) is a translation velocity vector and \(\omega\) is a rotation velocity vector.

Returns:

An homogeneous matrix \(\bf M\) computed from an instantaneous velocity \(\bf v\) , where \({\bf M} = \exp{({\bf v})}\) is the displacement of the object when the velocity \(\bf v\) is applied during 1 second.

  1. direct(v: visp._visp.core.ColVector, delta_t: float) -> visp._visp.core.HomogeneousMatrix

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

Note

See inverse(const vpHomogeneousMatrix &, const double &)

Parameters:
v

Instantaneous velocity skew represented by a 6 dimension vector \({\bf v} = [v, \omega]\) where \(v\) is a translation velocity vector and \(\omega\) is a rotation velocity vector.

delta_t

Sampling time \(\Delta t\) . Time during which the velocity \(\bf v\) is applied.

Returns:

An homogeneous matrix \(\bf M\) computed from an instantaneous velocity \(\bf v\) , where \({\bf M} = \exp{({\bf v})}\) is the displacement of the object when the velocity \(\bf v\) is applied during \(\Delta t\) seconds.

static inverse(*args, **kwargs)

Overloaded function.

  1. inverse(M: visp._visp.core.HomogeneousMatrix) -> visp._visp.core.ColVector

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

Note

See direct(const vpColVector &)

Parameters:
M

An homogeneous matrix corresponding to the displacement of an object during 1 second.

Returns:

Instantaneous velocity skew \(\bf v\) represented by a 6 dimension vector \([v, \omega]\) where \(v\) is a translation velocity vector and \(\omega\) is a rotation velocity vector.

  1. inverse(M: visp._visp.core.HomogeneousMatrix, delta_t: float) -> visp._visp.core.ColVector

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

Note

See direct(const vpColVector &, const double &)

Parameters:
M

An homogeneous matrix corresponding to the displacement of an object during \(\Delta t\) seconds.

delta_t

Sampling time \(\Delta t\) . Time during which the displacement is applied.

Returns:

Instantaneous velocity skew \(\bf v\) represented by a 6 dimension vector \([v, \omega]\) where \(v\) is a translation velocity vector and \(\omega\) is a rotation velocity vector.