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
Overloaded function.
Overloaded function.
Inherited Methods
Operators
__doc__
__module__
Attributes
__annotations__
- __init__(*args, **kwargs)¶
- static direct(*args, **kwargs)¶
Overloaded function.
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.
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.
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.
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.