Visual Servoing Platform
version 3.0.1
|
#include <visp3/core/vpThetaUVector.h>
Public Member Functions | |
vpThetaUVector () | |
vpThetaUVector (const vpThetaUVector &tu) | |
vpThetaUVector (const vpHomogeneousMatrix &M) | |
vpThetaUVector (const vpPoseVector &p) | |
vpThetaUVector (const vpRotationMatrix &R) | |
vpThetaUVector (const vpRzyxVector &rzyx) | |
vpThetaUVector (const vpRzyzVector &rzyz) | |
vpThetaUVector (const vpRxyzVector &rxyz) | |
vpThetaUVector (const vpQuaternionVector &q) | |
vpThetaUVector (const double tux, const double tuy, const double tuz) | |
vpThetaUVector (const vpColVector &tu) | |
virtual | ~vpThetaUVector () |
vpThetaUVector | buildFrom (const vpHomogeneousMatrix &M) |
vpThetaUVector | buildFrom (const vpPoseVector &p) |
vpThetaUVector | buildFrom (const vpRotationMatrix &R) |
vpThetaUVector | buildFrom (const vpRzyxVector &rzyx) |
vpThetaUVector | buildFrom (const vpRzyzVector &zyz) |
vpThetaUVector | buildFrom (const vpRxyzVector &xyz) |
vpThetaUVector | buildFrom (const vpQuaternionVector &q) |
void | buildFrom (const double tux, const double tuy, const double tuz) |
void | extract (double &theta, vpColVector &u) const |
double | getTheta () const |
vpColVector | getU () const |
vpThetaUVector & | operator= (const vpColVector &tu) |
vpThetaUVector & | 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 |
Inherited functionalities from vpArray2D | |
double | getMinValue () const |
double | getMaxValue () const |
unsigned int | getRows () const |
unsigned int | getCols () const |
unsigned int | size () const |
void | resize (const unsigned int nrows, const unsigned int ncols, const bool flagNullify=true) |
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 |
Implementation of a rotation vector as axis-angle minimal representation.
Class that consider the case of the parameterization for the rotation.
The vpThetaUVector class is derived from vpRotationVector.
The representation is one of the minimal representation of a rotation matrix, where is a unit vector representing the rotation axis and is the rotation angle.
From the representation it is possible to build the rotation matrix using the Rodrigues formula:
with the identity matrix of dimension and the skew matrix:
From the implementation point of view, it is nothing more than an array of three floats.
The code below shows first how to initialize a vector, than how to contruct a rotation matrix from a vpThetaUVector and finaly how to extract the theta U angles from the build rotation matrix.
Definition at line 147 of file vpThetaUVector.h.
vpThetaUVector::vpThetaUVector | ( | ) |
Default constructor that initialize all the 3 angles to zero.
Definition at line 52 of file vpThetaUVector.cpp.
vpThetaUVector::vpThetaUVector | ( | const vpThetaUVector & | tu | ) |
Copy constructor.
Definition at line 56 of file vpThetaUVector.cpp.
vpThetaUVector::vpThetaUVector | ( | const vpHomogeneousMatrix & | M | ) |
Initialize a vector from an homogeneous matrix.
Definition at line 73 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpPoseVector & | p | ) |
Initialize a vector from a pose vector.
Definition at line 81 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpRotationMatrix & | R | ) |
Initialize a vector from a rotation matrix.
Definition at line 89 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpRzyxVector & | rzyx | ) |
Initialize a vector from an Euler z-y-x representation vector.
Definition at line 99 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpRzyzVector & | rzyz | ) |
Initialize a vector from an Euler z-y-z representation vector.
Definition at line 108 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpRxyzVector & | rxyz | ) |
Initialize a vector from an Euler x-y-z representation vector.
Definition at line 117 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpQuaternionVector & | q | ) |
Initialize a vector from a quaternion representation vector.
Definition at line 126 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const double | tux, |
const double | tuy, | ||
const double | tuz | ||
) |
Build a vector from 3 angles in radian.
Definition at line 135 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector::vpThetaUVector | ( | const vpColVector & | tu | ) |
Copy constructor from a 3-dimension vector.
Definition at line 60 of file vpThetaUVector.cpp.
References vpArray2D< double >::data, vpException::dimensionError, and vpArray2D< Type >::size().
|
inlinevirtual |
Destructor.
Definition at line 174 of file vpThetaUVector.h.
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpHomogeneousMatrix & | M | ) |
Converts an homogeneous matrix into a vector.
Definition at line 145 of file vpThetaUVector.cpp.
References vpHomogeneousMatrix::extract().
Referenced by vpPoseVector::buildFrom(), buildFrom(), vpHomogeneousMatrix::extract(), vpRotationMatrix::getThetaUVector(), vpRobotAfma6::getVelocity(), vpRobotViper650::getVelocity(), vpRobotViper850::getVelocity(), vpExponentialMap::inverse(), vpSimulatorAfma6::setPosition(), and vpThetaUVector().
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpPoseVector & | p | ) |
Converts a pose vector into a vector copying the values contained in the pose vector.
Definition at line 159 of file vpThetaUVector.cpp.
References vpArray2D< double >::data.
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpRotationMatrix & | R | ) |
Converts a rotation matrix into a vector.
Definition at line 171 of file vpThetaUVector.cpp.
References vpArray2D< double >::data, and vpMath::sinc().
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpRzyxVector & | rzyx | ) |
Build a vector from an Euler z-y-x representation vector.
Definition at line 221 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpRzyzVector & | rzyz | ) |
Build a vector from an Euler z-y-z representation vector.
Definition at line 233 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpRxyzVector & | rxyz | ) |
Build a vector from an Euler x-y-z representation vector.
Definition at line 245 of file vpThetaUVector.cpp.
References buildFrom().
vpThetaUVector vpThetaUVector::buildFrom | ( | const vpQuaternionVector & | q | ) |
Build a vector from a quaternion representation vector.
Definition at line 258 of file vpThetaUVector.cpp.
References buildFrom().
void vpThetaUVector::buildFrom | ( | const double | tux, |
const double | tuy, | ||
const double | tuz | ||
) |
Build a vector from 3 angles in radian.
Definition at line 438 of file vpThetaUVector.cpp.
References vpArray2D< double >::data.
void vpThetaUVector::extract | ( | double & | theta, |
vpColVector & | u | ||
) | const |
Extract the rotation angle and the unit vector from the representation.
theta | : Rotation angle in rad. |
u | : 3-dim unit vector representing the rotation axis. |
The following example shows how to use this function:
Definition at line 356 of file vpThetaUVector.cpp.
References vpArray2D< double >::data, getTheta(), and vpColVector::resize().
Referenced by vpQuaternionVector::buildFrom().
|
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().
double vpThetaUVector::getTheta | ( | ) | const |
Get the rotation angle from the representation.
The following example shows how to use this function:
Definition at line 391 of file vpThetaUVector.cpp.
References vpArray2D< double >::data.
vpColVector vpThetaUVector::getU | ( | ) | const |
Get the unit vector from the representation.
The following example shows how to use this function:
Definition at line 418 of file vpThetaUVector.cpp.
References vpArray2D< double >::data, and getTheta().
|
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().
|
inherited |
Operator that allows to multiply each element of a rotation vector by a scalar.
x | : The scalar. |
Definition at line 76 of file vpRotationVector.cpp.
References vpArray2D< double >::dsize.
vpThetaUVector & vpThetaUVector::operator= | ( | const vpColVector & | tu | ) |
Copy operator that initializes a vector from a 3-dimension column vector tu.
tu | : 3-dimension vector containing the values of the vector. |
Definition at line 316 of file vpThetaUVector.cpp.
References vpArray2D< double >::data, vpException::dimensionError, and vpArray2D< Type >::size().
vpThetaUVector & vpThetaUVector::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 287 of file vpThetaUVector.cpp.
References vpArray2D< double >::data, and vpArray2D< double >::dsize.
|
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. |
Definition at line 167 of file vpArray2D.h.
References vpArray2D< Type >::colNum, vpArray2D< Type >::data, vpArray2D< Type >::dsize, vpException::memoryAllocationError, vpArray2D< Type >::rowNum, and vpArray2D< Type >::rowPtrs.
Referenced by vpMatrix::diag(), vpMatrix::eye(), vpMatrix::init(), and vpMatrix::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().
|
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*().
|
inherited |
Return the sum square of all the elements of the rotation vector r(m).
.
Definition at line 101 of file vpRotationVector.cpp.
References vpArray2D< double >::rowNum, and vpArray2D< double >::rowPtrs.
|
inherited |
Return the transpose of the rotation vector.
Definition at line 57 of file vpRotationVector.cpp.
References vpArray2D< double >::data, and vpArray2D< double >::dsize.
|
related |
Allows to multiply a scalar by rotaion vector.
Definition at line 89 of file vpRotationVector.cpp.
|
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(), vpRzyxVector::buildFrom(), vpRzyzVector::buildFrom(), vpRxyzVector::buildFrom(), buildFrom(), vpSubColVector::checkParentStatus(), vpSubRowVector::checkParentStatus(), vpSubMatrix::checkParentStatus(), vpColVector::clear(), vpHomogeneousMatrix::convert(), vpTranslationVector::euclideanNorm(), vpRowVector::euclideanNorm(), vpMatrix::euclideanNorm(), vpMatrix::expm(), extract(), getTheta(), getU(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), vpTranslationVector::operator*(), vpRowVector::operator*(), vpColVector::operator*(), vpHomography::operator*(), vpTranslationVector::operator-(), vpRowVector::operator-(), vpColVector::operator-(), vpTranslationVector::operator/(), vpRowVector::operator/(), vpColVector::operator/(), vpHomography::operator/(), vpHomography::operator/=(), vpSubColVector::operator=(), vpSubRowVector::operator=(), vpQuaternionVector::operator=(), vpTranslationVector::operator=(), vpRowVector::operator=(), vpRzyxVector::operator=(), vpRzyzVector::operator=(), vpRxyzVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), operator=(), vpColVector::operator[](), vpRowVector::reshape(), vpColVector::reshape(), vpQuaternionVector::set(), vpMatrix::stackRows(), vpColVector::sum(), vpColVector::sumSquare(), vpRotationVector::t(), vpTranslationVector::t(), vpPoseVector::t(), vpRowVector::t(), vpColVector::t(), vpQuaternionVector::vpQuaternionVector(), vpRxyzVector::vpRxyzVector(), vpRzyxVector::vpRzyxVector(), vpRzyzVector::vpRzyzVector(), 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(), vpTranslationVector::euclideanNorm(), vpRowVector::euclideanNorm(), vpMatrix::euclideanNorm(), vpSubColVector::init(), vpSubRowVector::init(), vpSubMatrix::init(), vpTranslationVector::operator*(), vpRotationVector::operator*(), vpTranslationVector::operator-(), vpTranslationVector::operator/(), vpRzyzVector::operator=(), vpRzyxVector::operator=(), vpRxyzVector::operator=(), vpMatrix::operator=(), 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*(), vpTranslationVector::operator*(), vpHomogeneousMatrix::operator*(), vpColVector::operator*(), vpMatrix::operator*(), vpRotationMatrix::operator*=(), vpTranslationVector::operator*=(), vpColVector::operator*=(), vpMatrix::operator*=(), vpColVector::operator+(), vpColVector::operator+=(), vpMatrix::operator+=(), vpColVector::operator-(), vpColVector::operator-=(), vpMatrix::operator-=(), vpColVector::operator/(), vpMatrix::operator/(), vpTranslationVector::operator/=(), vpColVector::operator/=(), vpMatrix::operator/=(), vpMatrix::operator<<(), vpColVector::operator<<(), vpSubColVector::operator=(), vpSubRowVector::operator=(), vpSubMatrix::operator=(), vpTranslationVector::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(), vpTranslationVector::sumSquare(), vpColVector::sumSquare(), vpMatrix::sumSquare(), vpTranslationVector::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(), vpTranslationVector::sumSquare(), vpRowVector::sumSquare(), vpMatrix::sumSquare(), and vpMatrix::transpose().