YARP Yet Another Robot Platform
Searching...
No Matches
yarp::math::Quaternion Class Reference

#include <yarp/math/Quaternion.h>

Inheritance diagram for yarp::math::Quaternion:

## Public Member Functions

Quaternion ()

Quaternion (double x, double y, double z, double w)

double * data ()

const double * data () const

double x () const

double y () const

double z () const

double w () const

double & x ()

double & y ()

double & z ()

double & w ()

std::string toString (int precision=-1, int width=-1) const

double abs ()
Computes the modulus of the quaternion.

void normalize ()
Normalizes the quaternion elements.

bool isValid () const
Check if the quaternion is valid.

Quaternion inverse () const
Computes the inverse of the quaternion.

double arg ()
Computes the argument or phase of the quaternion in radians.

void fromAxisAngle (const yarp::sig::Vector &v)
Computes the quaternion from an axis-angle representation.

void fromAxisAngle (const yarp::sig::Vector &axis, const double &angle)
Computes the quaternion from an axis-angle representation.

yarp::sig::Vector toAxisAngle ()

void fromRotationMatrix (const yarp::sig::Matrix &R)
Converts a rotation matrix to a quaternion.

yarp::sig::Matrix toRotationMatrix4x4 () const
Converts a quaternion to a rotation matrix.

yarp::sig::Matrix toRotationMatrix3x3 () const
Converts a quaternion to a rotation matrix.

yarp::sig::Vector toVector () const
Converts the quaternion to a vector of length 4.

Read this object from a network connection.

bool write (yarp::os::ConnectionWriter &connection) const override
Write vector to a connection.

yarp::os::Type getType () const override

Public Member Functions inherited from yarp::os::PortReader
Destructor.

Public Member Functions inherited from yarp::os::PortWriter
virtual ~PortWriter ()
Destructor.

virtual void onCompletion () const
This is called when the port has finished all writing operations.

virtual void onCommencement () const
This is called when the port is about to begin writing operations.

virtual yarp::os::Type getWriteType () const

Static Public Member Functions inherited from yarp::os::Portable
Copy one portable to another, via writing and reading.

## Detailed Description

Definition at line 21 of file Quaternion.h.

## ◆ Quaternion() [1/2]

 Quaternion::Quaternion ( )

Definition at line 31 of file Quaternion.cpp.

## ◆ Quaternion() [2/2]

 Quaternion::Quaternion ( double x, double y, double z, double w )

Definition at line 39 of file Quaternion.cpp.

## ◆ abs()

 double Quaternion::abs ( )

Computes the modulus of the quaternion.

Definition at line 313 of file Quaternion.cpp.

## ◆ arg()

 double Quaternion::arg ( )

Computes the argument or phase of the quaternion in radians.

Definition at line 331 of file Quaternion.cpp.

## ◆ data() [1/2]

 double * Quaternion::data ( )

Definition at line 52 of file Quaternion.cpp.

## ◆ data() [2/2]

 const double * Quaternion::data ( ) const

Definition at line 47 of file Quaternion.cpp.

## ◆ fromAxisAngle() [1/2]

 void Quaternion::fromAxisAngle ( const yarp::sig::Vector & axis, const double & angle )

Computes the quaternion from an axis-angle representation.

Parameters
 axis a 3D vector representing the axis. @angle the rotation angle (in radians)

Definition at line 293 of file Quaternion.cpp.

## ◆ fromAxisAngle() [2/2]

 void Quaternion::fromAxisAngle ( const yarp::sig::Vector & v )

Computes the quaternion from an axis-angle representation.

Parameters
 v a 4D vector, where the first three elements represent the axis, while the fourth element represents the angle (in radians)

Definition at line 282 of file Quaternion.cpp.

## ◆ fromRotationMatrix()

 void Quaternion::fromRotationMatrix ( const yarp::sig::Matrix & R )

Converts a rotation matrix to a quaternion.

The returned quaternion is ordered in the following way:

• s = q_0 \in \mathbb{R} the real part of the quaternion
• r = the imaginary part of the quaternion

The input rotation matrix and the output quaternion are related by the following formula:

where is the skew-symmetric matrix such that:

Note
This method is compatible with the rotation-quaternion convention used in the ROS tf2 library.
Parameters
 R the input rotation matrix.
Returns
4 by 1 vector for the quaternion representation in the form

Definition at line 162 of file Quaternion.cpp.

## ◆ getType()

 yarp::os::Type yarp::math::Quaternion::getType ( ) const
inlineoverridevirtual

Reimplemented from yarp::os::Portable.

Definition at line 160 of file Quaternion.h.

## ◆ inverse()

 Quaternion Quaternion::inverse ( ) const

Computes the inverse of the quaternion.

Definition at line 339 of file Quaternion.cpp.

## ◆ isValid()

 bool Quaternion::isValid ( ) const

Check if the quaternion is valid.

Definition at line 57 of file Quaternion.cpp.

## ◆ normalize()

 void Quaternion::normalize ( )

Normalizes the quaternion elements.

Definition at line 321 of file Quaternion.cpp.

overridevirtual

Read this object from a network connection.

Override this for your particular class.

Parameters
Returns
true iff the object is successfully read

Implements yarp::os::Portable.

Definition at line 116 of file Quaternion.cpp.

## ◆ toAxisAngle()

 yarp::sig::Vector Quaternion::toAxisAngle ( )

Definition at line 306 of file Quaternion.cpp.

## ◆ toRotationMatrix3x3()

 yarp::sig::Matrix Quaternion::toRotationMatrix3x3 ( ) const

Converts a quaternion to a rotation matrix.

Parameters
 q the quaternion
Returns
the corresponding 3 by 3 rotation matrix

Definition at line 241 of file Quaternion.cpp.

## ◆ toRotationMatrix4x4()

 yarp::sig::Matrix Quaternion::toRotationMatrix4x4 ( ) const

Converts a quaternion to a rotation matrix.

The quaternion is expected to be ordered in the following way:

• s = q_0 \in \mathbb{R} the real part of the quaternion
• r = \begin{bmatrix} q_1 \ q_2 \ q_3 \end{bmatrix} \in \mathbb{R}^3 the imaginary part of the quaternion

The returned rotation matrix is given by the following formula:

where is the skew-symmetric matrix such that:

Note
This method is compatible with the rotation-quaternion convention used in the ROS tf2 library.
Parameters
 q the 4 by 1 input quaternion in the form
Returns
4 by 4 homogeneous matrix representing with the rotation components in the top left 3 by 3 submatrix.

Definition at line 222 of file Quaternion.cpp.

## ◆ toString()

 std::string Quaternion::toString ( int precision = -1, int width = -1 ) const

Definition at line 260 of file Quaternion.cpp.

## ◆ toVector()

 yarp::sig::Vector Quaternion::toVector ( ) const

Converts the quaternion to a vector of length 4.

Definition at line 66 of file Quaternion.cpp.

## ◆ w() [1/2]

 double & Quaternion::w ( )

Definition at line 96 of file Quaternion.cpp.

## ◆ w() [2/2]

 double Quaternion::w ( ) const

Definition at line 76 of file Quaternion.cpp.

## ◆ write()

 bool Quaternion::write ( yarp::os::ConnectionWriter & connection ) const
overridevirtual

Write vector to a connection.

return true iff a vector was written correctly

Implements yarp::os::Portable.

Definition at line 141 of file Quaternion.cpp.

## ◆ x() [1/2]

 double & Quaternion::x ( )

Definition at line 101 of file Quaternion.cpp.

## ◆ x() [2/2]

 double Quaternion::x ( ) const

Definition at line 81 of file Quaternion.cpp.

## ◆ y() [1/2]

 double & Quaternion::y ( )

Definition at line 106 of file Quaternion.cpp.

## ◆ y() [2/2]

 double Quaternion::y ( ) const

Definition at line 86 of file Quaternion.cpp.

## ◆ z() [1/2]

 double & Quaternion::z ( )

Definition at line 111 of file Quaternion.cpp.

## ◆ z() [2/2]

 double Quaternion::z ( ) const

Definition at line 91 of file Quaternion.cpp.

The documentation for this class was generated from the following files: