Visual Servoing Platform
version 3.0.1
|
#include <visp3/core/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 | |
double | getMinValue () const |
double | getMaxValue () const |
unsigned int | getRows () const |
unsigned int | getCols () const |
unsigned int | size () const |
Static Public Member Functions | |
static vpTranslationVector | cross (const vpTranslationVector &a, const vpTranslationVector &b) |
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 |
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 93 of file vpTranslationVector.h.
|
inline |
Default constructor. The translation vector is initialized to zero.
Definition at line 101 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 102 of file vpTranslationVector.cpp.
vpTranslationVector::vpTranslationVector | ( | const vpHomogeneousMatrix & | M | ) |
Construct a translation vector from the translation contained in an homogeneous matrix.
M | : Homogeneous matrix where translations are in meters. |
Definition at line 71 of file vpTranslationVector.cpp.
References vpHomogeneousMatrix::extract().
vpTranslationVector::vpTranslationVector | ( | const vpPoseVector & | p | ) |
Construct a translation vector from the translation contained in a pose vector.
p | : Pose vector where translations are in meters. |
Definition at line 84 of file vpTranslationVector.cpp.
vpTranslationVector::vpTranslationVector | ( | const vpColVector & | v | ) |
Construct a translation vector from a 3-dimension column vector.
v | : 3-dimension column vector. |
Definition at line 120 of file vpTranslationVector.cpp.
References vpException::dimensionError, and vpArray2D< Type >::size().
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 197 of file vpTranslationVector.cpp.
References set().
Referenced by vpWireFrameSimulator::setExternalCameraPosition().
vpTranslationVector vpTranslationVector::buildFrom | ( | const vpHomogeneousMatrix & | M | ) |
Build a 3 dimension translation vector from an homogeneous matrix .
M | : Homogeneous matrix from which translation and vectors are extracted to initialize the pose vector. |
Definition at line 141 of file vpTranslationVector.cpp.
References vpHomogeneousMatrix::extract().
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 157 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 175 of file vpTranslationVector.cpp.
References vpException::dimensionError, and vpArray2D< Type >::size().
|
static |
Return the cross product of two translation vectors .
a,b | : Translation vectors in input. |
Definition at line 602 of file vpTranslationVector.cpp.
References skew().
double vpTranslationVector::euclideanNorm | ( | ) | const |
Compute and return the Euclidean norm of the translation vector .
Definition at line 626 of file vpTranslationVector.cpp.
References vpArray2D< double >::data, and vpArray2D< double >::dsize.
|
inlineinherited |
Return the number of columns of the 2D array.
Definition at line 154 of file vpArray2D.h.
References vpArray2D< Type >::colNum.
Referenced by vpRowVector::csvPrint(), vpMatrix::csvPrint(), vpRotationMatrix::getCol(), vpHomogeneousMatrix::getCol(), vpMatrix::getCol(), vpMatrix::getRow(), vpMatrix::inverseByQRLapack(), vpMatrix::kernel(), vpRowVector::maplePrint(), vpMatrix::maplePrint(), vpRowVector::operator*(), vpRowVector::operator+(), vpRowVector::operator+=(), vpRowVector::operator-(), vpRowVector::operator-=(), vpForceTwistMatrix::print(), vpVelocityTwistMatrix::print(), vpRowVector::print(), vpMatrix::print(), vpMatrix::pseudoInverse(), vpMatrix::row(), and vpMatrix::svd().
|
inherited |
Return the array max value.
|
inherited |
Return the array min value.
|
inlineinherited |
Return the number of rows of the 2D array.
Definition at line 152 of file vpArray2D.h.
References vpArray2D< Type >::rowNum.
Referenced by vpMatrix::column(), vpColVector::cppPrint(), vpMatrix::cppPrint(), vpColVector::csvPrint(), vpMatrix::csvPrint(), vpRotationMatrix::getCol(), vpHomogeneousMatrix::getCol(), vpMatrix::getCol(), vpMatrix::getRow(), vpMatrix::inverseByCholeskyLapack(), vpMatrix::inverseByQRLapack(), vpMatrix::kernel(), vpColVector::maplePrint(), vpMatrix::maplePrint(), vpColVector::matlabPrint(), vpMatrix::matlabPrint(), vpColVector::operator+(), vpColVector::operator+=(), vpColVector::operator-(), vpColVector::operator-=(), vpForceTwistMatrix::print(), vpVelocityTwistMatrix::print(), vpPoseVector::print(), vpColVector::print(), vpMatrix::print(), and vpMatrix::pseudoInverse().
|
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 308 of file vpArray2D.h.
References vpException::badValue, and vpArray2D< Type >::resize().
|
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 417 of file vpArray2D.h.
References vpArray2D< Type >::resize().
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 362 of file vpTranslationVector.cpp.
References vpArray2D< Type >::getCols(), and vpArray2D< double >::rowNum.
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 343 of file vpTranslationVector.cpp.
References vpArray2D< Type >::data, vpArray2D< double >::data, and vpArray2D< double >::dsize.
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 380 of file vpTranslationVector.cpp.
References vpArray2D< double >::rowNum.
vpTranslationVector vpTranslationVector::operator+ | ( | const vpTranslationVector & | tv | ) | const |
Operator that allows to add two translation vectors.
tv | : Translation vector to add. |
Definition at line 235 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 262 of file vpTranslationVector.cpp.
References vpException::dimensionError, and vpArray2D< Type >::size().
vpTranslationVector vpTranslationVector::operator- | ( | const vpTranslationVector & | tv | ) | const |
Operator that allows to substract two translation vectors.
tv | : Translation vector to substract. |
Definition at line 293 of file vpTranslationVector.cpp.
vpTranslationVector vpTranslationVector::operator- | ( | void | ) | const |
Operator that allows to negate a translation vector.
Definition at line 317 of file vpTranslationVector.cpp.
References vpArray2D< Type >::data, vpArray2D< double >::data, and vpArray2D< double >::dsize.
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 415 of file vpTranslationVector.cpp.
References vpArray2D< Type >::data, vpArray2D< double >::data, and vpArray2D< double >::dsize.
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 393 of file vpTranslationVector.cpp.
References vpArray2D< double >::rowNum.
vpTranslationVector & vpTranslationVector::operator= | ( | const vpColVector & | tv | ) |
Copy operator.
tv | : Translation vector to copy |
Definition at line 441 of file vpTranslationVector.cpp.
References vpArray2D< double >::data, vpArray2D< Type >::data, vpException::dimensionError, resize(), vpArray2D< double >::rowNum, and vpArray2D< Type >::size().
vpTranslationVector & vpTranslationVector::operator= | ( | const vpTranslationVector & | tv | ) |
Copy operator.
tv | : Translation vector to copy |
Definition at line 474 of file vpTranslationVector.cpp.
References vpArray2D< double >::data, vpArray2D< Type >::data, resize(), vpArray2D< Type >::rowNum, and vpArray2D< double >::rowNum.
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 503 of file vpTranslationVector.cpp.
References vpArray2D< double >::data.
|
inline |
Operator that allows to set a value of an element : t[i] = x.
Definition at line 137 of file vpTranslationVector.h.
|
inline |
Operator that allows to get the value of an element : x = t[i].
Definition at line 139 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 146 of file vpTranslationVector.h.
References vpException::fatalError.
Referenced by operator=().
|
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 499 of file vpArray2D.h.
References vpArray2D< Type >::getCols(), and vpArray2D< Type >::getRows().
|
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 588 of file vpArray2D.h.
References vpArray2D< Type >::getCols(), and vpArray2D< Type >::getRows().
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 210 of file vpTranslationVector.cpp.
Referenced by buildFrom(), and vpPioneerPan::set_mMp().
|
inlineinherited |
Return the number of elements of the 2D array.
Definition at line 156 of file vpArray2D.h.
References vpArray2D< Type >::colNum, and vpArray2D< Type >::rowNum.
Referenced by vpRowVector::insert(), vpColVector::insert(), and vpColVector::operator*().
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 584 of file vpTranslationVector.cpp.
Referenced by vpForceTwistMatrix::buildFrom(), vpVelocityTwistMatrix::buildFrom(), cross(), vpViper::get_eJe(), and skew().
|
static |
Compute the skew symmetric matrix of translation vector tv.
tv | : Translation vector in input. |
Definition at line 558 of file vpTranslationVector.cpp.
References skew().
|
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 531 of file vpTranslationVector.cpp.
References vpArray2D< Type >::resize().
double vpTranslationVector::sumSquare | ( | ) | const |
Return the sum square of all the elements of the translation vector t(m).
.
Definition at line 642 of file vpTranslationVector.cpp.
References vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
vpRowVector vpTranslationVector::t | ( | ) | const |
Transpose the translation vector. The resulting vector becomes a row vector.
Definition at line 612 of file vpTranslationVector.cpp.
References vpArray2D< Type >::data, vpArray2D< double >::data, and vpArray2D< double >::rowNum.
|
related |
Enumeration of the operations applied on matrices in vpGEMM() function.
Operations are :
|
protectedinherited |
Number of columns in the array.
Definition at line 76 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpMatrix::AtA(), vpColVector::clear(), vpMatrix::diag(), vpMatrix::eigenValues(), vpMatrix::expm(), vpMatrix::eye(), vpMatrix::infinityNorm(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), vpRowVector::insert(), vpMatrix::insert(), vpMatrix::inverseByCholesky(), vpMatrix::inverseByLU(), vpMatrix::inverseByQR(), vpRotationMatrix::operator*(), vpRowVector::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*=(), vpRowVector::operator*=(), vpMatrix::operator*=(), vpRowVector::operator+(), vpRowVector::operator+=(), vpMatrix::operator+=(), vpRowVector::operator-(), vpRowVector::operator-=(), vpMatrix::operator-=(), vpRowVector::operator/(), vpMatrix::operator/(), vpRowVector::operator/=(), vpMatrix::operator/=(), vpMatrix::operator<<(), vpColVector::operator<<(), vpSubRowVector::operator=(), vpSubMatrix::operator=(), vpRowVector::operator=(), vpMatrix::operator=(), vpRowVector::reshape(), vpMatrix::setIdentity(), vpMatrix::solveBySVD(), vpRowVector::stack(), vpMatrix::stackColumns(), vpMatrix::stackRows(), vpRowVector::sum(), vpMatrix::sum(), vpRowVector::sumSquare(), vpMatrix::sumSquare(), vpRowVector::t(), vpMatrix::t(), and vpMatrix::transpose().
|
inherited |
Address of the first element of the data array.
Definition at line 84 of file vpArray2D.h.
Referenced by vpMatrix::AtA(), vpHomogeneousMatrix::buildFrom(), vpRzyzVector::buildFrom(), vpRzyxVector::buildFrom(), vpRxyzVector::buildFrom(), vpThetaUVector::buildFrom(), vpSubColVector::checkParentStatus(), vpSubRowVector::checkParentStatus(), vpSubMatrix::checkParentStatus(), vpColVector::clear(), vpHomogeneousMatrix::convert(), euclideanNorm(), vpRowVector::euclideanNorm(), vpMatrix::euclideanNorm(), vpMatrix::expm(), vpThetaUVector::extract(), vpThetaUVector::getTheta(), vpThetaUVector::getU(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), operator*(), vpRowVector::operator*(), vpColVector::operator*(), vpHomography::operator*(), operator-(), vpRowVector::operator-(), vpColVector::operator-(), operator/(), vpRowVector::operator/(), vpColVector::operator/(), vpHomography::operator/(), vpHomography::operator/=(), vpSubColVector::operator=(), vpSubRowVector::operator=(), vpQuaternionVector::operator=(), operator=(), vpRowVector::operator=(), vpRzyzVector::operator=(), vpRzyxVector::operator=(), vpRxyzVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), vpThetaUVector::operator=(), vpColVector::operator[](), vpRowVector::reshape(), vpColVector::reshape(), vpQuaternionVector::set(), vpMatrix::stackRows(), vpColVector::sum(), vpColVector::sumSquare(), vpRotationVector::t(), t(), vpPoseVector::t(), vpRowVector::t(), vpColVector::t(), vpQuaternionVector::vpQuaternionVector(), vpRxyzVector::vpRxyzVector(), vpRzyxVector::vpRzyxVector(), vpRzyzVector::vpRzyzVector(), vpThetaUVector::vpThetaUVector(), vpQuaternionVector::w(), vpQuaternionVector::x(), vpQuaternionVector::y(), vpQuaternionVector::z(), vpSubColVector::~vpSubColVector(), vpSubMatrix::~vpSubMatrix(), and vpSubRowVector::~vpSubRowVector().
|
protectedinherited |
Current array size (rowNum * colNum)
Definition at line 80 of file vpArray2D.h.
Referenced by vpColVector::clear(), euclideanNorm(), vpRowVector::euclideanNorm(), vpMatrix::euclideanNorm(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), operator*(), vpRotationVector::operator*(), operator-(), operator/(), vpRzyzVector::operator=(), vpRzyxVector::operator=(), vpRxyzVector::operator=(), vpMatrix::operator=(), vpThetaUVector::operator=(), vpRowVector::reshape(), vpColVector::reshape(), vpMatrix::stackRows(), and vpRotationVector::t().
|
protectedinherited |
Number of rows in the array.
Definition at line 74 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpMatrix::AtA(), vpColVector::clear(), vpMatrix::diag(), vpMatrix::eigenValues(), vpMatrix::expm(), vpColVector::extract(), vpMatrix::eye(), vpColVector::infinityNorm(), vpMatrix::infinityNorm(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), vpMatrix::insert(), vpMatrix::inverseByCholesky(), vpMatrix::inverseByLU(), vpMatrix::inverseByQR(), vpRotationMatrix::operator*(), operator*(), vpHomogeneousMatrix::operator*(), vpColVector::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*=(), operator*=(), vpColVector::operator*=(), vpMatrix::operator*=(), vpColVector::operator+(), vpColVector::operator+=(), vpMatrix::operator+=(), vpColVector::operator-(), vpColVector::operator-=(), vpMatrix::operator-=(), vpColVector::operator/(), vpMatrix::operator/(), operator/=(), vpColVector::operator/=(), vpMatrix::operator/=(), vpMatrix::operator<<(), vpColVector::operator<<(), vpSubColVector::operator=(), vpSubRowVector::operator=(), vpSubMatrix::operator=(), operator=(), vpRowVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), vpColVector::reshape(), vpMatrix::setIdentity(), vpMatrix::stack(), vpColVector::stack(), vpMatrix::stackColumns(), vpMatrix::stackRows(), vpColVector::sum(), vpMatrix::sum(), vpRotationVector::sumSquare(), sumSquare(), vpColVector::sumSquare(), vpMatrix::sumSquare(), t(), vpPoseVector::t(), vpColVector::t(), vpMatrix::t(), and vpMatrix::transpose().
|
protectedinherited |
Address of the first element of each rows.
Definition at line 78 of file vpArray2D.h.
Referenced by vpMatrix::AAt(), vpColVector::clear(), vpMatrix::infinityNorm(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), vpRowVector::init(), vpColVector::init(), vpMatrix::init(), vpRotationMatrix::operator*(), vpForceTwistMatrix::operator*(), vpVelocityTwistMatrix::operator*(), vpHomogeneousMatrix::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*=(), vpMatrix::operator*=(), vpMatrix::operator+=(), vpMatrix::operator-=(), vpMatrix::operator/(), vpMatrix::operator/=(), vpMatrix::operator<<(), vpColVector::operator<<(), vpSubMatrix::operator=(), vpRotationMatrix::operator=(), vpForceTwistMatrix::operator=(), vpVelocityTwistMatrix::operator=(), vpHomogeneousMatrix::operator=(), vpRowVector::operator=(), vpMatrix::operator=(), vpMatrix::stackColumns(), vpRowVector::sum(), vpMatrix::sum(), vpRotationVector::sumSquare(), sumSquare(), vpRowVector::sumSquare(), vpMatrix::sumSquare(), and vpMatrix::transpose().