Skip to content

Commit

Permalink
Merge pull request lagadic#1375 from rolalaro/doc_exp_map
Browse files Browse the repository at this point in the history
[DOC] vpExponentialMap
  • Loading branch information
fspindle authored Apr 15, 2024
2 parents c361415 + 8a347de commit 9a0b1f0
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 8 deletions.
16 changes: 8 additions & 8 deletions modules/core/include/visp3/core/vpExponentialMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -52,33 +52,33 @@
The exponential map gives the relationship between the velocity of a moving
body and its displacement:
\f[ \exp({^c}{\bf v}_c) = {^{c(t)}}{\bf M}_{c(t+\Delta t)} \f]
\f[ \exp({^c}{\bf v}_c(t - \Delta t)) = {^{c(t - \Delta t)}}{\bf M}_{c(t)} \f]
where \f$ {^c}{\bf v}_c\f$ is the velocity skew vector applied during \f$\Delta t\f$
seconds at point \f$ c \f$ in frame \f$ c \f$, while \f$ {^{c(t)}}{\bf M}_{c(t+\Delta t)} \f$
where \f$ {^c}{\bf v}_c(t - \Delta t)\f$ is the velocity skew vector at the previous iteration applied during \f$\Delta t\f$
seconds at point \f$ c \f$ in frame \f$ c \f$, while \f$ {^{c(t- \Delta t)}}{\bf M}_{c(t)} \f$
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
\f${^{c(t)}}{\bf M}_{c(t+\Delta t)}\f$ using \f${^c}{\bf v}_c\f$ as input:
\f[ {^{o}}{\bf M}_{c(t+\Delta t)} = {^{o}}{\bf M}_{c(t)} \exp({^c}{\bf v}_c) \f]
\f${^{c(t - \Delta t)}}{\bf M}_{c(t)}\f$ using \f${^c}{\bf v}_c(t - \Delta t)\f$ as input:
\f[ {^{o}}{\bf M}_{c(t)} = {^{o}}{\bf M}_{c(t - \Delta t)} \exp({^c}{\bf v}_c(t - \Delta t)) \f]
where \f$ o \f$ is a reference frame.
With direct(), the velocity skew vector \f$ {^c}{\bf v}_c \f$ is applied during 1 second
With direct(), the velocity skew vector \f$ {^c}{\bf v}_c(t - \Delta t) \f$ is applied during 1 second
considering \f$ \Delta t = 1\f$. With direct(const vpColVector &, const double &)
the sampling time can be set to an other value where the second
argument is \f$ \Delta t \f$.
- The inverse exponential map allows to compute the velocity skew vector \f$
\bf {^c}{\bf v}_c \f$ from the displacement \f$ {^{c(t)}}{\bf M}_{c(t+\Delta t)}\f$
{^c}{\bf v}_c(t - \Delta t) \f$ from the displacement \f$ {^{c(t - \Delta t)}}{\bf M}_{c(t)}\f$
measured during a time interval \f$ \Delta t \f$. 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 \f$ \Delta t \f$.
A displacement \f$ \bf M \f$ is represented as an homogeneous matrix implemented in
vpHomogeneousMatrix. A velocities \f$ \bf v \f$ is represented as a
vpHomogeneousMatrix. A velocity \f$ \bf v \f$ is represented as a
6 dimension velocity skew vector \f$ [v, \omega] \f$, where \f$ v \f$
is a velocity translation vector with values in m/s and \f$ \omega \f$ a
velocity rotation vector with values expressed in rad/s.
Expand Down
3 changes: 3 additions & 0 deletions modules/gui/src/pointcloud/vpDisplayPCL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ vpDisplayPCL::vpDisplayPCL(int posx, int posy, const std::string &window_name)
* Constructor able to initialize the display window size.
* \param[in] width : Point cloud viewer width.
* \param[in] height : Point cloud viewer height.
* \param[in] posx : Position along X-axis.
* \param[in] posy : Position along Y-axis.
* \param[in] window_name : Window name.
*/
vpDisplayPCL::vpDisplayPCL(unsigned int width, unsigned int height, int posx, int posy, const std::string &window_name)
: m_stop(false), m_verbose(false), m_width(width), m_height(height), m_posx(posx), m_posy(posy),
Expand Down

0 comments on commit 9a0b1f0

Please sign in to comment.