Visual Servoing Platform version 3.7.0
Loading...
Searching...
No Matches

#include <vpPioneerPan.h>

Inheritance diagram for vpPioneerPan:

Public Member Functions

 vpPioneerPan ()
Inherited functionalities from vpPioneerPan
void set_eJe (double q_pan)

Protected Member Functions Inherited from vpPioneerPan

vpHomogeneousMatrix mMp_
vpHomogeneousMatrix pMe_
void set_cMe ()
void set_mMp ()
void set_pMe (const double q)

Inherited functionalities from vpUnicycle

vpHomogeneousMatrix cMe_
vpMatrix eJe_
vpHomogeneousMatrix get_cMe () const
vpVelocityTwistMatrix get_cVe () const
void get_cVe (vpVelocityTwistMatrix &cVe) const
vpMatrix get_eJe () const
void set_cMe (const vpHomogeneousMatrix &cMe)
void set_eJe (const vpMatrix &eJe)

Detailed Description

Generic functions for Pioneer mobile robots equipped with a pan head.

This class provides common features for Pioneer mobile robots equipped with a pan head.

This robot has three control velocities $(v_x, w_z, \dot{q_1})$, the translational and rotational velocities of the mobile platform, the pan head velocity respectively.

The figure below shows the position of the frames that are used to model the robot. The end effector frame is here located at the pan axis.

Considering

\‍[{\bf v} = {^e}{\bf J}_e \;
\left(\begin{array}{c}
v_x \\
w_z \\
\dot{q_1} \\
\end{array}
\right)
\‍]

with $(v_x, w_z)$ respectively the translational and rotational control velocities of the mobile platform, $\dot{q_1}$ the joint velocity of the pan head and $\bf v$ the six dimension velocity skew expressed at point E in frame E, the robot jacobian is given by:

\‍[{^e}{\bf J}_e = \left(\begin{array}{ccc}
c_1  & -c_1*p_y - s_1*p_x & 0   \\
0  & 0 & 0 \\
s_1  & -s_1*p_y + c_1*p_x & 0   \\
0  & 0 & 0  \\
0  & -1 & 1   \\
0  & 0 & 0  \\
\end{array}
\right)
\‍]

with $p_x, p_y$ the position of the head base frame in the mobile platform frame located at the middle point between the two wheels.

Examples
servoPioneerPanSegment3D.cpp.

Definition at line 92 of file vpPioneerPan.h.

Constructor & Destructor Documentation

◆ vpPioneerPan()

vpPioneerPan::vpPioneerPan ( )
inline

Create a pioneer mobile robot equipped with a pan head.

Definition at line 98 of file vpPioneerPan.h.

References mMp_, pMe_, vpUnicycle::set_cMe(), vpUnicycle::set_eJe(), set_mMp(), and set_pMe().

Member Function Documentation

◆ get_cMe()

vpHomogeneousMatrix vpUnicycle::get_cMe ( ) const
inlineinherited

Return the transformation ${^c}{\bf M}_e$ between the camera frame and the mobile robot end effector frame.

Definition at line 65 of file vpUnicycle.h.

References cMe_.

◆ get_cVe() [1/2]

vpVelocityTwistMatrix vpUnicycle::get_cVe ( ) const
inlineinherited

Return the twist transformation from camera frame to the mobile robot end effector frame. This transformation allows to compute a velocity expressed in the end effector frame into the camera frame.

Examples
servoPioneerPanSegment3D.cpp.

Definition at line 72 of file vpUnicycle.h.

References vpVelocityTwistMatrix::buildFrom(), and cMe_.

◆ get_cVe() [2/2]

void vpUnicycle::get_cVe ( vpVelocityTwistMatrix & cVe) const
inlineinherited

Return the twist transformation from camera frame to the mobile robot end effector frame. This transformation allows to compute a velocity expressed in the end effector frame into the camera frame.

See also
get_cVe()

Definition at line 86 of file vpUnicycle.h.

References get_cVe().

Referenced by get_cVe().

◆ get_eJe()

vpMatrix vpUnicycle::get_eJe ( ) const
inlineinherited

Return the robot jacobian ${^e}{\bf J}_e$ expressed in the end effector frame.

Returns
The robot jacobian such as ${\bf v} = {^e}{\bf J}_e \; \dot{\bf
q}$ with $\dot{\bf q} = (v_x, w_z)$ the robot control velocities and $\bf v$ the six dimension velocity skew.
Examples
servoPioneerPanSegment3D.cpp.

Definition at line 96 of file vpUnicycle.h.

References eJe_.

Referenced by vpRobotPioneer::get_eJe(), vpSimulatorPioneer::get_eJe(), and vpSimulatorPioneerPan::get_eJe().

◆ set_cMe() [1/2]

void vpPioneerPan::set_cMe ( )
inlineprotected

Set the transformation between the camera frame and the pan head end effector frame.

Definition at line 164 of file vpPioneerPan.h.

References vpHomogeneousMatrix::buildFrom(), vpUnicycle::cMe_, and vpHomogeneousMatrix::inverse().

◆ set_cMe() [2/2]

void vpUnicycle::set_cMe ( const vpHomogeneousMatrix & cMe)
inlineinherited

Set the transformation between the camera frame and the end effector frame.

Definition at line 102 of file vpUnicycle.h.

References cMe_.

Referenced by vpPioneer::vpPioneer(), and vpPioneerPan::vpPioneerPan().

◆ set_eJe() [1/2]

void vpPioneerPan::set_eJe ( double q_pan)
inline

Set the robot jacobian expressed at point E the end effector frame located on the pan head.

Considering ${\bf v} = {^e}{\bf J}_e \; [v_x, w_z, \dot{q_1}]$ with $(v_x, w_z)$ respectively the translational and rotational control velocities of the mobile platform, $\dot{q_1}$ the joint velocity of the pan head and $\bf v$ the six dimension velocity skew expressed at point E in frame E, the robot jacobian is given by:

\‍[{^e}{\bf J}_e = \left(\begin{array}{ccc}
c_1  & -c_1*p_y - s_1*p_x & 0   \\
0  & 0 & 0 \\
s_1  & -s_1*p_y + c_1*p_x & 0   \\
0  & 0 & 0  \\
0  & -1 & 1   \\
0  & 0 & 0  \\
\end{array}
\right)
\‍]

with $p_x, p_y$ the position of the head base frame in the mobile platform frame located at the middle point between the two wheels.

Examples
servoPioneerPanSegment3D.cpp.

Definition at line 135 of file vpPioneerPan.h.

References vpUnicycle::eJe_, and mMp_.

Referenced by vpSimulatorPioneerPan::setVelocity().

◆ set_eJe() [2/2]

void vpUnicycle::set_eJe ( const vpMatrix & eJe)
inlineinherited

Set the robot jacobian ${^e}{\bf J}_e$ expressed in the end effector frame.

Parameters
eJe: The robot jacobian to set such as ${\bf v} = {^e}{\bf J}_e
\; \dot{\bf q}$ with $\dot{\bf q} = (v_x, w_z)$ the robot control velocities and $\bf v$ the six dimension velocity skew.

Definition at line 112 of file vpUnicycle.h.

References eJe_.

Referenced by vpPioneer::vpPioneer(), and vpPioneerPan::vpPioneerPan().

◆ set_mMp()

void vpPioneerPan::set_mMp ( )
inlineprotected

Set the transformation between the mobile platform frame located at the middle point between the two wheels and the base frame of the pan head.

Definition at line 188 of file vpPioneerPan.h.

References mMp_, and vpTranslationVector::set().

Referenced by vpPioneerPan().

◆ set_pMe()

void vpPioneerPan::set_pMe ( const double q)
inlineprotected

Set the transformation between the pan head reference frame and the end-effector frame.

Parameters
q: Position in rad of the pan axis.

Definition at line 210 of file vpPioneerPan.h.

References pMe_.

Referenced by vpSimulatorPioneerPan::setVelocity(), and vpPioneerPan().

Member Data Documentation

◆ cMe_

◆ eJe_

vpMatrix vpUnicycle::eJe_
protectedinherited

Definition at line 117 of file vpUnicycle.h.

Referenced by get_eJe(), vpPioneerPan::set_eJe(), set_eJe(), and vpUnicycle().

◆ mMp_

vpHomogeneousMatrix vpPioneerPan::mMp_
protected

Definition at line 224 of file vpPioneerPan.h.

Referenced by set_eJe(), set_mMp(), vpSimulatorPioneerPan::setVelocity(), and vpPioneerPan().

◆ pMe_

vpHomogeneousMatrix vpPioneerPan::pMe_
protected

Definition at line 225 of file vpPioneerPan.h.

Referenced by set_pMe(), vpSimulatorPioneerPan::setVelocity(), and vpPioneerPan().