![]() |
Visual Servoing Platform
version 3.2.0
|
#include <vpTranslationVector.h>
Public Member Functions | |
vpTranslationVector () | |
vpTranslationVector (const double tx, const double ty, const double tz) | |
vpTranslationVector (const vpTranslationVector &tv) | |
vpTranslationVector (const vpHomogeneousMatrix &M) | |
vpTranslationVector (const vpPoseVector &p) | |
vpTranslationVector (const vpColVector &v) | |
vpTranslationVector | buildFrom (const double tx, const double ty, const double tz) |
vpTranslationVector | buildFrom (const vpHomogeneousMatrix &M) |
vpTranslationVector | buildFrom (const vpPoseVector &p) |
vpTranslationVector | buildFrom (const vpColVector &v) |
double | euclideanNorm () const |
vpTranslationVector | operator+ (const vpTranslationVector &tv) const |
vpTranslationVector | operator+ (const vpColVector &v) const |
vpTranslationVector | operator- (const vpTranslationVector &tv) const |
vpTranslationVector | operator- () const |
vpMatrix | operator* (const vpRowVector &v) const |
vpTranslationVector | operator* (const double x) const |
vpTranslationVector & | operator*= (double x) |
vpTranslationVector | operator/ (const double x) const |
vpTranslationVector & | operator/= (double x) |
vpTranslationVector & | operator= (const vpColVector &tv) |
vpTranslationVector & | operator= (const vpTranslationVector &tv) |
vpTranslationVector & | operator= (double x) |
double & | operator[] (unsigned int n) |
const double & | operator[] (unsigned int n) const |
void | resize (const unsigned int nrows, const unsigned int ncols, const bool flagNullify=true) |
void | set (const double tx, const double ty, const double tz) |
vpMatrix | skew () const |
double | sumSquare () const |
vpRowVector | t () const |
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 | |
static vpTranslationVector | cross (const vpTranslationVector &a, const vpTranslationVector &b) |
static vpTranslationVector | mean (const std::vector< vpHomogeneousMatrix > &vec_M) |
static vpTranslationVector | mean (const std::vector< vpTranslationVector > &vec_t) |
static vpMatrix | skew (const vpTranslationVector &tv) |
static void | skew (const vpTranslationVector &tv, vpMatrix &M) |
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.) | |
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) |
Class that consider the case of a translation vector.
Let us denote the translation from frame
to frame
. The representation of a translation is a column vector of dimension 3.
Translations are expressed in meters.
The code below shows how to use a translation vector to build an homogeneous matrix.
Definition at line 90 of file vpTranslationVector.h.
|
inline |
Default constructor. The translation vector is initialized to zero.
Definition at line 97 of file vpTranslationVector.h.
vpTranslationVector::vpTranslationVector | ( | const double | tx, |
const double | ty, | ||
const double | tz | ||
) |
Construct a translation vector from 3 doubles.
tx,ty,tz | : Translation respectively along x, y and z axis. Values are in meters. |
Definition at line 56 of file vpTranslationVector.cpp.
vpTranslationVector::vpTranslationVector | ( | const vpTranslationVector & | tv | ) |
Copy constructor.
tv | : Translation vector to copy. |
Definition at line 96 of file vpTranslationVector.cpp.
|
explicit |
Construct a translation vector from the translation contained in an homogeneous matrix.
M | : Homogeneous matrix where translations are in meters. |
Definition at line 70 of file vpTranslationVector.cpp.
|
explicit |
Construct a translation vector from the translation contained in a pose vector.
p | : Pose vector where translations are in meters. |
Definition at line 79 of file vpTranslationVector.cpp.
|
explicit |
Construct a translation vector from a 3-dimension column vector.
v | : 3-dimension column vector. |
Definition at line 112 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::buildFrom | ( | const double | tx, |
const double | ty, | ||
const double | tz | ||
) |
Build a 3 dimension translation vector from 3 doubles.
tx,ty,tz | : Translation respectively along x, y and z axis in meter. |
Definition at line 186 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::buildFrom | ( | const vpColVector & | v | ) |
Build a 3 dimension translation vector from a 3-dimension column vector.
v | : 3-dimension column vector. |
Definition at line 165 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::buildFrom | ( | const vpHomogeneousMatrix & | M | ) |
Build a 3 dimension translation vector from an homogeneous matrix
.
M | : Homogeneous matrix ![]() ![]() ![]() |
Definition at line 133 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::buildFrom | ( | const vpPoseVector & | p | ) |
Build a 3 dimension translation vector from the translation contained in a pose vector.
p | : Pose vector where translations are in meters. |
Definition at line 148 of file vpTranslationVector.cpp.
|
static |
Return the cross product of two translation vectors .
a,b | : Translation vectors in input. |
Definition at line 597 of file vpTranslationVector.cpp.
double vpTranslationVector::euclideanNorm | ( | ) | const |
Compute and return the Euclidean norm of the translation vector .
Definition at line 620 of file vpTranslationVector.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.
|
static |
Compute the Euclidean mean of the translation vector extracted from a vector of homogeneous matrices.
[in] | vec_M | : Set of homogeneous matrices. |
Definition at line 657 of file vpTranslationVector.cpp.
|
static |
Compute the Euclidean mean of a vector of translation vector.
[in] | vec_t | : Set of translation vectors. |
Definition at line 677 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator* | ( | const double | x | ) | const |
Operator that allows to multiply each element of a translation vector by a scalar.
x | : The scalar. |
Definition at line 335 of file vpTranslationVector.cpp.
vpMatrix vpTranslationVector::operator* | ( | const vpRowVector & | v | ) | const |
Multiply a 3-by-1 dimension translation vector by a 1-by-n row vector.
v | : Row vector. |
Definition at line 354 of file vpTranslationVector.cpp.
vpTranslationVector & vpTranslationVector::operator*= | ( | double | x | ) |
Operator that allows to multiply each element of a translation vector by a scalar.
x | : The scalar. |
Definition at line 373 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator+ | ( | const vpColVector & | v | ) | const |
Operator that allows to add a translation vector to a column vector.
v | : 3-dimension column vector to add. |
Definition at line 253 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator+ | ( | const vpTranslationVector & | tv | ) | const |
Operator that allows to add two translation vectors.
tv | : Translation vector to add. |
Definition at line 223 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator- | ( | void | ) | const |
Operator that allows to negate a translation vector.
Definition at line 309 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator- | ( | const vpTranslationVector & | tv | ) | const |
Operator that allows to substract two translation vectors.
tv | : Translation vector to substract. |
Definition at line 285 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator/ | ( | const double | x | ) | const |
Operator that allows to divide each element of a translation vector by a scalar.
x | : The scalar. |
Definition at line 410 of file vpTranslationVector.cpp.
vpTranslationVector & vpTranslationVector::operator/= | ( | double | x | ) |
Operator that allows to divide each element of a translation vector by a scalar.
x | : The scalar. |
Definition at line 387 of file vpTranslationVector.cpp.
vpTranslationVector & vpTranslationVector::operator= | ( | const vpColVector & | tv | ) |
Copy operator.
tv | : Translation vector to copy |
Definition at line 436 of file vpTranslationVector.cpp.
vpTranslationVector & vpTranslationVector::operator= | ( | const vpTranslationVector & | tv | ) |
Copy operator.
tv | : Translation vector to copy |
Definition at line 470 of file vpTranslationVector.cpp.
vpTranslationVector & vpTranslationVector::operator= | ( | double | x | ) |
Initialize each element of a translation vector to the same value x.
x | : Value to set for each element of the translation vector. |
Definition at line 497 of file vpTranslationVector.cpp.
|
inline |
Operator that allows to set a value of an element : t[i] = x.
Definition at line 133 of file vpTranslationVector.h.
|
inline |
Operator that allows to get the value of an element : x = t[i].
Definition at line 135 of file vpTranslationVector.h.
|
inline |
This function is not applicable to a translation vector that is always a 3-by-1 column vector.
vpException::fatalError | When this function is called. |
Definition at line 142 of file vpTranslationVector.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.
void vpTranslationVector::set | ( | const double | tx, |
const double | ty, | ||
const double | tz | ||
) |
Initialize a translation vector from 3 doubles.
tx,ty,tz | : Translation respectively along x, y and z axis in meter. |
Definition at line 198 of file vpTranslationVector.cpp.
|
inlineinherited |
Return the number of elements of the 2D array.
Definition at line 157 of file vpArray2D.h.
vpMatrix vpTranslationVector::skew | ( | ) | const |
Compute the skew symmetric matrix of the translation vector (matrice de pre-produit vectoriel), where
and where are the coordinates of the translation vector.
Definition at line 581 of file vpTranslationVector.cpp.
|
static |
Compute the skew symmetric matrix of translation vector tv.
tv | : Translation vector in input. |
Definition at line 556 of file vpTranslationVector.cpp.
|
static |
Compute the skew symmetric matrix of translation vector tv.
tv | : Translation vector in input used to compute the skew symmetric matrix M. |
M | : Skew symmetric matrix of translation vector ![]() |
Definition at line 524 of file vpTranslationVector.cpp.
double vpTranslationVector::sumSquare | ( | ) | const |
Return the sum square of all the elements of the translation vector t(m).
Definition at line 637 of file vpTranslationVector.cpp.
vpRowVector vpTranslationVector::t | ( | ) | const |
Transpose the translation vector. The resulting vector becomes a row vector.
Definition at line 606 of file vpTranslationVector.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.