![]() |
Visual Servoing Platform version 3.6.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:
![\[ \exp({^c}{\bf v}_c) = {^{c(t)}}{\bf M}_{c(t+\Delta t)} \]](form_62.png)
where 




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


![\[ {^{o}}{\bf M}_{c(t+\Delta t)} = {^{o}}{\bf M}_{c(t)} \exp({^c}{\bf v}_c) \]](form_69.png)








A displacement 

![$ [v, \omega] $](form_78.png)


Definition at line 87 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 58 of file vpExponentialMap.cpp.
References direct().
Referenced by vpMbDepthDenseTracker::computeVVS(), vpMbDepthNormalTracker::computeVVS(), vpMbKltTracker::computeVVS(), vpMbEdgeTracker::computeVVS(), vpMbEdgeKltTracker::computeVVS(), vpMbGenericTracker::computeVVS(), vpMbEdgeTracker::computeVVSFirstPhasePoseEstimation(), direct(), vpPose::poseVirtualVS(), vpPose::poseVirtualVSrobust(), vpPose::poseVirtualVSWithDepth(), vpRobotBebop2::setVelocity(), vpRobotCamera::setVelocity(), and vpSimulatorCamera::setVelocity().
|
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 78 of file vpExponentialMap.cpp.
References vpRotationMatrix::buildFrom(), vpException::dimensionError, vpHomogeneousMatrix::insert(), vpMath::mcosc(), vpMath::msinc(), vpMath::sinc(), and vpArray2D< Type >::size().
|
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. |

![$ [v, \omega] $](form_78.png)


Definition at line 201 of file vpExponentialMap.cpp.
References inverse().
Referenced by vpRobotBiclops::getDisplacement(), vpRobotAfma4::getVelocity(), 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 ![]() |

![$ [v, \omega] $](form_78.png)


Definition at line 220 of file vpExponentialMap.cpp.
References vpThetaUVector::buildFrom(), vpHomogeneousMatrix::extract(), vpMath::mcosc(), vpMath::msinc(), and vpMath::sinc().