ViSP
2.8.0
|
#include <vpRzyxVector.h>
Public Member Functions | |
vpRzyxVector () | |
vpRzyxVector (const vpRzyxVector &m) | |
vpRzyxVector (const double phi, const double theta, const double psi) | |
vpRzyxVector (const vpRotationMatrix &R) | |
vpRzyxVector (const vpThetaUVector &tu) | |
vpRzyxVector & | operator= (const vpRzyxVector &m) |
void | buildFrom (const double phi, const double theta, const double psi) |
vpRzyxVector | buildFrom (const vpRotationMatrix &R) |
vpRzyxVector | buildFrom (const vpThetaUVector &R) |
double & | operator[] (unsigned int n) |
const double & | operator[] (unsigned int n) const |
unsigned int | size () const |
vpRowVector | t () const |
Protected Member Functions | |
void | init (const unsigned int size) |
Protected Attributes | |
double * | r |
unsigned int | _size |
Friends | |
class | vpRotationMatrix |
class | vpThetaUVector |
Class that consider the case of the Euler angle using the z-y-x convention, where are respectively the rotation angles around the , and axis.
with
The rotation matrix corresponding to the z-y-x convention is given by:
The code below shows first how to initialize this representation of Euler angles, than how to contruct a rotation matrix from a vpRzyxVector and finaly how to extract the vpRzyxVector Euler angles from the build rotation matrix.
Definition at line 151 of file vpRzyxVector.h.
|
inline |
Default constructor. Initialize the angles to zero.
Definition at line 158 of file vpRzyxVector.h.
vpRzyxVector::vpRzyxVector | ( | const vpRzyxVector & | m | ) |
Copy constructor.
Definition at line 71 of file vpRzyxVector.cpp.
|
inline |
Constructor from 3 angles (in radian).
phi | : angle around the axis. |
theta | : angle around the axis. |
psi | : angle around the axis. |
Definition at line 169 of file vpRzyxVector.h.
References vpRotationVector::r.
vpRzyxVector::vpRzyxVector | ( | const vpRotationMatrix & | R | ) |
Constructor that initialize Euler angles from a rotation matrix.
R | : Rotation matrix used to initialize the Euler angles. |
Definition at line 82 of file vpRzyxVector.cpp.
References buildFrom().
vpRzyxVector::vpRzyxVector | ( | const vpThetaUVector & | tu | ) |
Constructor that initialize Euler angles vector from a vector.
tu | : representation of a rotation used here as input to initialize the Euler angles. |
Definition at line 94 of file vpRzyxVector.cpp.
References buildFrom().
|
inline |
Construction from 3 angles (in radian).
phi | : angle around the axis. |
theta | : angle around the axis. |
psi | : angle around the axis. |
Definition at line 187 of file vpRzyxVector.h.
References vpRotationVector::r.
Referenced by buildFrom(), and vpRzyxVector().
vpRzyxVector vpRzyxVector::buildFrom | ( | const vpRotationMatrix & | R | ) |
Convert a rotation matrix into a Euler angles vector.
Source: R. Paul, Robot Manipulators: Mathematics, Programming, and Control. MIT Press, 1981, p. 71
R | : Rotation matrix used as input. |
Definition at line 110 of file vpRzyxVector.cpp.
References vpRotationVector::r.
vpRzyxVector vpRzyxVector::buildFrom | ( | const vpThetaUVector & | tu | ) |
Convert a vector into a Euler angles vector.
tu | : representation of a rotation used here as input. |
Definition at line 145 of file vpRzyxVector.cpp.
References vpRotationMatrix::buildFrom(), and buildFrom().
|
protectedinherited |
Definition at line 113 of file vpRotationVector.cpp.
References vpRotationVector::_size, vpRotationVector::r, and vpRotationVector::size().
vpRzyxVector & vpRzyxVector::operator= | ( | const vpRzyxVector & | m | ) |
Affectation of two vectors.
Definition at line 59 of file vpRzyxVector.cpp.
References vpRotationVector::r.
|
inlineinherited |
Operator that allows to set the value of an element of the rotation vector: r[i] = value
Definition at line 120 of file vpRotationVector.h.
|
inlineinherited |
Operator that allows to get the value of an element of the rotation vector: value = r[i]
Definition at line 125 of file vpRotationVector.h.
|
inherited |
Returns the size of the rotation vector
Size of the rotation vector: number of double values describing the rotation. Common sizes are 4 for a quaternion and 3 for angle-based rotation vectors.
Definition at line 71 of file vpRotationVector.cpp.
References vpRotationVector::_size.
Referenced by vpRotationVector::init(), vpQuaternionVector::operator=(), and vpQuaternionVector::vpQuaternionVector().
|
inherited |
Return the transpose of the rotation vector.
Definition at line 57 of file vpRotationVector.cpp.
References vpRotationVector::_size, and vpRotationVector::r.
|
friend |
Definition at line 153 of file vpRzyxVector.h.
|
friend |
Definition at line 154 of file vpRzyxVector.h.
|
protectedinherited |
Definition at line 100 of file vpRotationVector.h.
Referenced by vpRotationVector::init(), vpRotationVector::size(), vpRotationVector::t(), and vpColVector::vpColVector().
|
protectedinherited |
Definition at line 99 of file vpRotationVector.h.
Referenced by vpThetaUVector::buildFrom(), vpRzyzVector::buildFrom(), buildFrom(), vpRxyzVector::buildFrom(), vpThetaUVector::extract(), vpRotationVector::init(), vpQuaternionVector::operator=(), vpRzyzVector::operator=(), operator=(), vpRxyzVector::operator=(), vpThetaUVector::operator=(), vpQuaternionVector::set(), vpRotationVector::t(), vpColVector::vpColVector(), vpQuaternionVector::vpQuaternionVector(), vpRxyzVector::vpRxyzVector(), vpRzyxVector(), vpRzyzVector::vpRzyzVector(), and vpRotationVector::~vpRotationVector().