![]() |
Visual Servoing Platform
version 3.2.0
|
#include <vpRzyxVector.h>
Public Member Functions | |
vpRzyxVector () | |
vpRzyxVector (const vpRzyxVector &rzyx) | |
vpRzyxVector (const double phi, const double theta, const double psi) | |
vpRzyxVector (const vpRotationMatrix &R) | |
vpRzyxVector (const vpThetaUVector &tu) | |
vpRzyxVector (const vpColVector &rzyx) | |
vpRzyxVector (const std::vector< double > &rzyx) | |
virtual | ~vpRzyxVector () |
vpRzyxVector | buildFrom (const vpRotationMatrix &R) |
vpRzyxVector | buildFrom (const vpThetaUVector &R) |
vpRzyxVector | buildFrom (const vpColVector &rxyz) |
vpRzyxVector | buildFrom (const std::vector< double > &rxyz) |
void | buildFrom (const double phi, const double theta, const double psi) |
vpRzyxVector & | operator= (const vpColVector &rzyx) |
vpRzyxVector & | operator= (double x) |
Inherited functionalities from vpRotationVector | |
double & | operator[] (unsigned int i) |
const double & | operator[] (unsigned int i) const |
vpColVector | operator* (double x) const |
double | sumSquare () const |
vpRowVector | t () const |
std::vector< double > | toStdVector () |
Inherited functionalities from vpArray2D | |
unsigned int | getCols () const |
double | getMaxValue () const |
double | getMinValue () const |
unsigned int | getRows () const |
unsigned int | size () const |
void | resize (const unsigned int nrows, const unsigned int ncols, const bool flagNullify=true, const bool recopy_=true) |
vpArray2D< double > | hadamard (const vpArray2D< double > &m) const |
Static Public Member Functions | |
Inherited I/O from vpArray2D with Static Public Member Functions | |
static bool | load (const std::string &filename, vpArray2D< double > &A, const bool binary=false, char *header=NULL) |
static bool | loadYAML (const std::string &filename, vpArray2D< double > &A, char *header=NULL) |
static bool | save (const std::string &filename, const vpArray2D< double > &A, const bool binary=false, const char *header="") |
static bool | saveYAML (const std::string &filename, const vpArray2D< double > &A, const char *header="") |
Public Attributes | |
double * | data |
Protected Attributes | |
unsigned int | rowNum |
unsigned int | colNum |
double ** | rowPtrs |
unsigned int | dsize |
Related Functions | |
(Note that these are not member functions.) | |
vpColVector | operator* (const double &x, const vpRotationVector &v) |
enum | vpGEMMmethod |
void | vpGEMM (const vpArray2D< double > &A, const vpArray2D< double > &B, const double &alpha, const vpArray2D< double > &C, const double &beta, vpArray2D< double > &D, const unsigned int &ops=0) |
Implementation of a rotation vector as Euler angle minimal representation.
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 vpRzyxVector class is derived from vpRotationVector.
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 157 of file vpRzyxVector.h.
vpRzyxVector::vpRzyxVector | ( | ) |
Default constructor that initialize all the 3 angles to zero.
Definition at line 50 of file vpRzyxVector.cpp.
vpRzyxVector::vpRzyxVector | ( | const vpRzyxVector & | rzyx | ) |
Copy constructor.
Definition at line 53 of file vpRzyxVector.cpp.
vpRzyxVector::vpRzyxVector | ( | const double | phi, |
const double | theta, | ||
const double | psi | ||
) |
Constructor from 3 angles (in radian).
phi | : ![]() ![]() |
theta | : ![]() ![]() |
psi | : ![]() ![]() |
Definition at line 61 of file vpRzyxVector.cpp.
|
explicit |
Constructor that initialize Euler angles from a rotation matrix.
R | : Rotation matrix used to initialize the Euler angles. |
Definition at line 71 of file vpRzyxVector.cpp.
|
explicit |
Constructor that initialize Euler angles vector from a
vector.
tu | : ![]() |
Definition at line 79 of file vpRzyxVector.cpp.
|
explicit |
Copy constructor from a 3-dimension vector.
Definition at line 82 of file vpRzyxVector.cpp.
|
explicit |
Copy constructor from a 3-dimension vector.
Definition at line 88 of file vpRzyxVector.cpp.
|
inlinevirtual |
Destructor.
Definition at line 173 of file vpRzyxVector.h.
void vpRzyxVector::buildFrom | ( | const double | phi, |
const double | theta, | ||
const double | psi | ||
) |
Construction from 3 angles (in radian).
phi | : ![]() ![]() |
theta | : ![]() ![]() |
psi | : ![]() ![]() |
Definition at line 148 of file vpRzyxVector.cpp.
vpRzyxVector vpRzyxVector::buildFrom | ( | const std::vector< double > & | rzyx | ) |
Construct a Euler angles vector from a 3-dim vector.
Definition at line 174 of file vpRzyxVector.cpp.
vpRzyxVector vpRzyxVector::buildFrom | ( | const vpColVector & | rzyx | ) |
Construct a Euler angles vectorfrom a 3-dim vector.
Definition at line 158 of file vpRzyxVector.cpp.
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 103 of file vpRzyxVector.cpp.
vpRzyxVector vpRzyxVector::buildFrom | ( | const vpThetaUVector & | tu | ) |
Convert a vector into a
Euler angles vector.
tu | : ![]() |
Definition at line 133 of file vpRzyxVector.cpp.
|
inlineinherited |
Return the number of columns of the 2D array.
Definition at line 145 of file vpArray2D.h.
|
inherited |
Return the array max value.
Definition at line 693 of file vpArray2D.h.
|
inherited |
Return the array min value.
Definition at line 676 of file vpArray2D.h.
|
inlineinherited |
Return the number of rows of the 2D array.
Definition at line 155 of file vpArray2D.h.
Compute the Hadamard product (element wise matrix multiplication).
m | : Second matrix; |
Definition at line 713 of file vpArray2D.h.
|
inlinestaticinherited |
Load a matrix from a file.
filename | : Absolute file name. |
A | : Array to be loaded |
binary | : If true the matrix is loaded from a binary file, else from a text file. |
header | : Header of the file is loaded in this parameter. |
Definition at line 321 of file vpArray2D.h.
|
inlinestaticinherited |
Load an array from a YAML-formatted file.
filename | : absolute file name. |
A | : array to be loaded from the file. |
header | : header of the file is loaded in this parameter. |
Definition at line 433 of file vpArray2D.h.
|
inherited |
Operator that allows to multiply each element of a rotation vector by a scalar.
x | : The scalar. |
Definition at line 88 of file vpRotationVector.cpp.
vpRzyxVector & vpRzyxVector::operator= | ( | const vpColVector & | rzyx | ) |
Copy operator that initializes a Euler angles vector from a 3-dimension column vector.
rzyx | : 3-dimension vector containing the values of the rotation vector. |
Definition at line 236 of file vpRzyxVector.cpp.
vpRzyxVector & vpRzyxVector::operator= | ( | double | v | ) |
Initialize each element of the vector to the same angle value v.
v | : Angle value to set for each element of the vector. |
Definition at line 205 of file vpRzyxVector.cpp.
|
inlineinherited |
Operator that allows to set the value of an element of the rotation vector: r[i] = value
Definition at line 126 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 131 of file vpRotationVector.h.
|
inlineinherited |
Set the size of the array and initialize all the values to zero.
nrows | : number of rows. |
ncols | : number of column. |
flagNullify | : if true, then the array is re-initialized to 0 after resize. If false, the initial values from the common part of the array (common part between old and new version of the array) are kept. Default value is true. |
recopy_ | : if true, will perform an explicit recopy of the old data if needed and if flagNullify is set to false. |
Definition at line 170 of file vpArray2D.h.
|
inlinestaticinherited |
Save a matrix to a file.
filename | : Absolute file name. |
A | : Array to be saved. |
binary | : If true the matrix is saved in a binary file, else a text file. |
header | : Optional line that will be saved at the beginning of the file. |
Warning : If you save the matrix as in a text file the precision is less than if you save it in a binary file.
Definition at line 518 of file vpArray2D.h.
|
inlinestaticinherited |
Save an array in a YAML-formatted file.
filename | : absolute file name. |
A | : array to be saved in the file. |
header | : optional lines that will be saved at the beginning of the file. Should be YAML-formatted and will adapt to the indentation if any. |
Here is an example of outputs.
Content of matrix.yml:
Content of matrixIndent.yml:
Definition at line 611 of file vpArray2D.h.
|
inlineinherited |
Return the number of elements of the 2D array.
Definition at line 157 of file vpArray2D.h.
|
inherited |
Return the sum square of all the elements of the rotation vector r(m).
Definition at line 114 of file vpRotationVector.cpp.
|
inherited |
Return the transpose of the rotation vector.
Definition at line 55 of file vpRotationVector.cpp.
|
inherited |
Converts the vpRotationVector to a std::vector.
Definition at line 69 of file vpRotationVector.cpp.
|
related |
Allows to multiply a scalar by rotaion vector.
Definition at line 101 of file vpRotationVector.cpp.
|
related |
This function performs generalized matrix multiplication: D = alpha*op(A)*op(B) + beta*op(C), where op(X) is X or X^T. Operation on A, B and C matrices is described by enumeration vpGEMMmethod().
For example, to compute D = alpha*A^T*B^T+beta*C we need to call :
If C is not used, vpGEMM must be called using an empty array null. Thus to compute D = alpha*A^T*B, we have to call:
vpException::incorrectMatrixSizeError | if the sizes of the matrices do not allow the operations. |
A | : An array that could be a vpMatrix. |
B | : An array that could be a vpMatrix. |
alpha | : A scalar. |
C | : An array that could be a vpMatrix. |
beta | : A scalar. |
D | : The resulting array that could be a vpMatrix. |
ops | : A scalar describing operation applied on the matrices. Possible values are the one defined in vpGEMMmethod(): VP_GEMM_A_T, VP_GEMM_B_T, VP_GEMM_C_T. |
|
related |
Enumeration of the operations applied on matrices in vpGEMM() function.
Operations are :
|
protectedinherited |
Number of columns in the array.
Definition at line 75 of file vpArray2D.h.
|
inherited |
Address of the first element of the data array.
Definition at line 83 of file vpArray2D.h.
|
protectedinherited |
Current array size (rowNum * colNum)
Definition at line 79 of file vpArray2D.h.
|
protectedinherited |
Number of rows in the array.
Definition at line 73 of file vpArray2D.h.
|
protectedinherited |
Address of the first element of each rows.
Definition at line 77 of file vpArray2D.h.