Visual Servoing Platform
version 3.0.1
|
#include <visp3/core/vpQuaternionVector.h>
Public Member Functions | |
vpQuaternionVector () | |
vpQuaternionVector (const vpQuaternionVector &q) | |
vpQuaternionVector (const double qx, const double qy, const double qz, const double qw) | |
vpQuaternionVector (const vpRotationMatrix &R) | |
vpQuaternionVector (const vpThetaUVector &tu) | |
vpQuaternionVector (const vpColVector &q) | |
virtual | ~vpQuaternionVector () |
vpQuaternionVector | buildFrom (const double qx, const double qy, const double qz, const double qw) |
vpQuaternionVector | buildFrom (const vpRotationMatrix &R) |
vpQuaternionVector | buildFrom (const vpThetaUVector &tu) |
void | set (const double x, const double y, const double z, const double w) |
double | x () const |
double | y () const |
double | z () const |
double | w () const |
vpQuaternionVector | operator+ (const vpQuaternionVector &q) const |
vpQuaternionVector | operator- (const vpQuaternionVector &q) const |
vpQuaternionVector | operator- () const |
vpQuaternionVector | operator* (const double l) const |
vpQuaternionVector | operator* (const vpQuaternionVector &rq) const |
vpQuaternionVector | operator/ (const double l) const |
vpQuaternionVector & | operator= (const vpColVector &q) |
vpQuaternionVector | conjugate () const |
vpQuaternionVector | inverse () const |
double | magnitude () const |
void | normalize () |
Inherited functionalities from vpRotationVector | |
double & | operator[] (unsigned int i) |
const double & | operator[] (unsigned int i) 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 quaternion angle minimal representation.
Defines a quaternion and its basic operations.
The vpQuaternionVector class is derived from vpRotationVector.
A quaternion is defined by four values: .
This class allows to compute a quaternion from a rotation matrix using either vpQuaternionVector(const vpRotationMatrix &) constructor or buildFrom() method.
It also defines common operations on a quaternion such as:
Definition at line 81 of file vpQuaternionVector.h.
vpQuaternionVector::vpQuaternionVector | ( | ) |
Default constructor that initialize all the 4 angles to zero.
Definition at line 55 of file vpQuaternionVector.cpp.
Referenced by conjugate(), operator*(), operator+(), operator-(), and operator/().
vpQuaternionVector::vpQuaternionVector | ( | const vpQuaternionVector & | q | ) |
Copy constructor.
Definition at line 60 of file vpQuaternionVector.cpp.
vpQuaternionVector::vpQuaternionVector | ( | const double | qx, |
const double | qy, | ||
const double | qz, | ||
const double | qw | ||
) |
vpQuaternionVector::vpQuaternionVector | ( | const vpRotationMatrix & | R | ) |
Constructs a quaternion from a rotation matrix.
R | : Matrix containing a rotation. |
Definition at line 88 of file vpQuaternionVector.cpp.
References buildFrom().
vpQuaternionVector::vpQuaternionVector | ( | 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 100 of file vpQuaternionVector.cpp.
References buildFrom().
vpQuaternionVector::vpQuaternionVector | ( | const vpColVector & | q | ) |
Constructor from a 4-dimension vector of doubles.
Definition at line 73 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data, vpException::dimensionError, and vpArray2D< Type >::size().
|
inlinevirtual |
Destructor.
Definition at line 94 of file vpQuaternionVector.h.
vpQuaternionVector vpQuaternionVector::buildFrom | ( | const double | qx, |
const double | qy, | ||
const double | qz, | ||
const double | qw | ||
) |
Manually change values of a quaternion.
qx | : x quaternion parameter. |
qy | : y quaternion parameter. |
qz | : z quaternion parameter. |
qw | : w quaternion parameter. |
Definition at line 132 of file vpQuaternionVector.cpp.
References set().
Referenced by buildFrom(), vpPoseVector::extract(), vpHomogeneousMatrix::extract(), and vpQuaternionVector().
vpQuaternionVector vpQuaternionVector::buildFrom | ( | const vpRotationMatrix & | R | ) |
Constructs a quaternion from a rotation matrix.
R | : Rotation matrix. |
Definition at line 244 of file vpQuaternionVector.cpp.
References vpThetaUVector::extract(), and set().
vpQuaternionVector vpQuaternionVector::buildFrom | ( | const vpThetaUVector & | tu | ) |
Convert a vector into a quaternion.
tu | : representation of a rotation used here as input. |
Definition at line 146 of file vpQuaternionVector.cpp.
References buildFrom().
vpQuaternionVector vpQuaternionVector::conjugate | ( | ) | const |
Quaternion conjugate.
Definition at line 263 of file vpQuaternionVector.cpp.
References vpQuaternionVector(), w(), x(), y(), and z().
Referenced by inverse().
|
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().
vpQuaternionVector vpQuaternionVector::inverse | ( | ) | const |
Quaternion inverse.
Definition at line 272 of file vpQuaternionVector.cpp.
References conjugate(), vpMath::nul(), w(), x(), y(), and z().
|
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().
double vpQuaternionVector::magnitude | ( | ) | const |
Quaternion magnitude or norm.
Definition at line 290 of file vpQuaternionVector.cpp.
References w(), x(), y(), and z().
Referenced by normalize().
void vpQuaternionVector::normalize | ( | ) |
Normalize the quaternion.
Definition at line 297 of file vpQuaternionVector.cpp.
References magnitude(), vpMath::nul(), set(), w(), x(), y(), and z().
vpQuaternionVector vpQuaternionVector::operator* | ( | const double | l | ) | const |
Multiplication by scalar. Returns a quaternion defined by (lx,ly,lz,lw).
Definition at line 183 of file vpQuaternionVector.cpp.
References vpQuaternionVector(), w(), x(), y(), and z().
vpQuaternionVector vpQuaternionVector::operator* | ( | const vpQuaternionVector & | rq | ) | const |
Multiply two quaternions.
Definition at line 189 of file vpQuaternionVector.cpp.
References vpQuaternionVector(), w(), x(), y(), and z().
vpQuaternionVector vpQuaternionVector::operator+ | ( | const vpQuaternionVector & | q | ) | const |
Quaternion addition.
Adds two quaternions. Addition is component-wise.
q | : quaternion to add. |
Definition at line 160 of file vpQuaternionVector.cpp.
References vpQuaternionVector(), w(), x(), y(), and z().
vpQuaternionVector vpQuaternionVector::operator- | ( | const vpQuaternionVector & | q | ) | const |
Quaternion substraction.
Substracts a quaternion from another. Substraction is component-wise.
q | : quaternion to substract. |
Definition at line 171 of file vpQuaternionVector.cpp.
References vpQuaternionVector(), w(), x(), y(), and z().
vpQuaternionVector vpQuaternionVector::operator- | ( | void | ) | const |
Negate operator. Returns a quaternion defined by (-x,-y,-z-,-w).
Definition at line 177 of file vpQuaternionVector.cpp.
References vpQuaternionVector(), w(), x(), y(), and z().
vpQuaternionVector vpQuaternionVector::operator/ | ( | const double | l | ) | const |
Division by scalar. Returns a quaternion defined by (x/l,y/l,z/l,w/l).
Definition at line 197 of file vpQuaternionVector.cpp.
References vpException::fatalError, vpMath::nul(), vpQuaternionVector(), w(), x(), y(), and z().
vpQuaternionVector & vpQuaternionVector::operator= | ( | const vpColVector & | q | ) |
Copy operator that initializes a quaternion vector from a 4-dimension column vector q.
q | : 4-dimension vector containing the values of the quaternion vector. |
Definition at line 227 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data, vpException::dimensionError, and vpArray2D< Type >::size().
|
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().
void vpQuaternionVector::set | ( | const double | qx, |
const double | qy, | ||
const double | qz, | ||
const double | qw | ||
) |
Manually change values of a quaternion.
qx | : x quaternion parameter. |
qy | : y quaternion parameter. |
qz | : z quaternion parameter. |
qw | : w quaternion parameter. |
Definition at line 114 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data.
Referenced by buildFrom(), normalize(), and vpQuaternionVector().
|
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.
double vpQuaternionVector::w | ( | ) | const |
Returns w-component of the quaternion.
Definition at line 311 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data.
Referenced by vpRotationMatrix::buildFrom(), conjugate(), inverse(), magnitude(), normalize(), operator*(), operator+(), operator-(), and operator/().
double vpQuaternionVector::x | ( | ) | const |
Returns x-component of the quaternion.
Definition at line 305 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data.
Referenced by vpRotationMatrix::buildFrom(), conjugate(), inverse(), magnitude(), normalize(), operator*(), operator+(), operator-(), and operator/().
double vpQuaternionVector::y | ( | ) | const |
Returns y-component of the quaternion.
Definition at line 307 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data.
Referenced by vpRotationMatrix::buildFrom(), conjugate(), inverse(), magnitude(), normalize(), operator*(), operator+(), operator-(), and operator/().
double vpQuaternionVector::z | ( | ) | const |
Returns z-component of the quaternion.
Definition at line 309 of file vpQuaternionVector.cpp.
References vpArray2D< double >::data.
Referenced by vpRotationMatrix::buildFrom(), conjugate(), inverse(), magnitude(), normalize(), operator*(), operator+(), operator-(), and operator/().
|
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(), vpThetaUVector::buildFrom(), vpSubColVector::checkParentStatus(), vpSubRowVector::checkParentStatus(), vpSubMatrix::checkParentStatus(), vpColVector::clear(), vpHomogeneousMatrix::convert(), vpTranslationVector::euclideanNorm(), vpRowVector::euclideanNorm(), vpMatrix::euclideanNorm(), vpMatrix::expm(), vpThetaUVector::extract(), vpThetaUVector::getTheta(), vpThetaUVector::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=(), operator=(), vpTranslationVector::operator=(), vpRowVector::operator=(), vpRzyxVector::operator=(), vpRzyzVector::operator=(), vpRxyzVector::operator=(), vpColVector::operator=(), vpMatrix::operator=(), vpThetaUVector::operator=(), vpColVector::operator[](), vpRowVector::reshape(), vpColVector::reshape(), set(), vpMatrix::stackRows(), vpColVector::sum(), vpColVector::sumSquare(), vpRotationVector::t(), vpTranslationVector::t(), vpPoseVector::t(), vpRowVector::t(), vpColVector::t(), vpQuaternionVector(), vpRxyzVector::vpRxyzVector(), vpRzyxVector::vpRzyxVector(), vpRzyzVector::vpRzyzVector(), vpThetaUVector::vpThetaUVector(), w(), x(), y(), 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=(), 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*(), 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().