![]() |
RobWorkProject
23.9.11-
|
Matrices, vectors, configurations, and more. More...
Classes | |
| class | CameraMatrix |
| The PerspectiveTransform2D is a perspective transform in 2D. The homographic transform can be used to map one arbitrary 2D quadrilateral into another. More... | |
| class | EigenDecomposition |
| Type representing a set of eigen values and eigen vectors. More... | |
| class | EAA |
| A class for representing an equivalent angle-axis rotation. More... | |
| class | Function |
| Interface for functions. More... | |
| class | InertiaMatrix |
| A 3x3 inertia matrix. More... | |
| class | Metric |
| Template interface for metrics on type T. More... | |
| class | ManhattanMetric |
| Manhattan distance metric for vector types. More... | |
| class | WeightedManhattanMetric |
| Weighted Manhattan distance metric for vector types. More... | |
| class | EuclideanMetric |
| Euclidean distance metric for vector types. More... | |
| class | WeightedEuclideanMetric |
| Weighted Euclidean metric for vector types. More... | |
| class | InfinityMetric |
| Infinity norm distance metric for vector types. More... | |
| class | WeightedInfinityMetric |
| Weighted infinity norm metric for vector types. More... | |
| class | MahalanobisMetric |
| Mahalanobis distance metric for vector types. More... | |
| class | Rotation3DAngleMetric |
| a distance metric over rotations. The distance between two rotations is the smalles angle that rotates the one into the other. More... | |
| class | Transform3DAngleMetric |
| distance metrics between points in SE3. More... | |
| class | PerspectiveTransform2D |
| The PerspectiveTransform2D is a perspective transform in 2D. More... | |
| class | Polynomial |
| Representation of an ordinary polynomial with scalar coefficients (that can be both real and complex). More... | |
| class | Pose2D |
| A Pose3D \( \mathbf{x}\in \mathbb{R}^6 \) describes a position and orientation in 3-dimensions. More... | |
| class | Pose6D |
| A Pose6D \( \mathbf{x}\in \mathbb{R}^6 \) describes a position and orientation in 3-dimensions. More... | |
| class | Quaternion |
| A Quaternion \( \mathbf{q}\in \mathbb{R}^4 \) a complex number used to describe rotations in 3-dimensional space. \( q_w+{\bf i}\ q_x+ {\bf j} q_y+ {\bf k}\ q_z \). More... | |
| class | Rotation2D |
| A 2x2 rotation matrix \( \mathbf{R}\in SO(2) \). More... | |
| class | Rotation3D |
| A 3x3 rotation matrix \( \mathbf{R}\in SO(3) \). More... | |
| class | Rotation3DVector |
| An abstract base class for Rotation3D parameterisations. More... | |
| class | RPY |
| A class for representing Roll-Pitch-Yaw Euler angle rotations. More... | |
| class | Statistics |
| Class for collecting data and calculating simple statistics. More... | |
| class | Transform2D |
| class | Transform3D |
| A 4x4 homogeneous transform matrix \( \mathbf{T}\in SE(3) \). More... | |
| class | Vector |
| Configuration vector. More... | |
| class | Vector2D |
| A 2D vector \( \mathbf{v}\in \mathbb{R}^2 \). More... | |
| class | Vector3D |
| A 3D vector \( \mathbf{v}\in \mathbb{R}^3 \). More... | |
| class | VectorND |
| A N-Dimensional Vector. More... | |
| class | VelocityScrew6D |
| Class for representing 6 degrees of freedom velocity screws. More... | |
| class | Wrench6D |
| Class for representing 6 degrees of freedom wrenches. More... | |
| class | Function1Diff |
| Interface for functions which are 1 time differentiable. More... | |
| class | Jacobian |
| A Jacobian class. A jacobian with m rows and n columns. More... | |
| class | Line2D |
| Describes a line segment in 2D. More... | |
| class | Line2DPolar |
| Describes a line in 2D in polar coordinates. More... | |
| class | LinearAlgebra |
| Collection of Linear Algebra functions. More... | |
| class | Math |
| Utility functions for the rw::math module. More... | |
| class | MetricFactory |
| Metric constructor functions. More... | |
| class | MetricUtil |
| Various metrics and other distance measures. More... | |
| class | PolynomialND |
| Representation of a polynomial that can have non-scalar coefficients (polynomial matrix). More... | |
| class | PolynomialSolver |
| Find solutions for roots of real and complex polynomial equations. More... | |
| class | ProjectionMatrix |
| projection matrix More... | |
| class | Q |
| Configuration vector. More... | |
| class | Random |
| Generation of random numbers. More... | |
| class | Rotation2DVector |
| struct | Transform2DIdentity |
| A 3x3 homogeneous transform matrix \( \mathbf{T}\in SE(2) \). More... | |
| struct | Transform2DIdentity< double > |
| struct | Transform2DIdentity< float > |
| class | Transform3DVector |
| this class is a interpolatable Transform3D, consisting of a Vecor3D and a Quaternion. It is implemented to be very Interconvertable with a Transform3D, and allow operations souch as Transform * scalar and Transform + Transform. More... | |
Typedefs | |
| using | CameraMatrixd = CameraMatrix< double > |
| using | CameraMatrixf = CameraMatrix< float > |
| using | EAAd = EAA< double > |
| using | EAAf = EAA< float > |
| using | EigenDecompositiond = EigenDecomposition< double > |
| using | EigenDecompositionf = EigenDecomposition< float > |
| using | InertiaMatrixd = InertiaMatrix< double > |
| using | InertiaMatrixf = InertiaMatrix< float > |
| typedef Metric< rw::math::Q > | QMetric |
| Metrics on configurations. | |
| typedef Metric< rw::math::Transform3D< double > > | Transform3DMetric |
| Metric on Transdform3D. | |
| using | PerspectiveTransform2Dd = PerspectiveTransform2D< double > |
| using | PerspectiveTransform2Df = PerspectiveTransform2D< float > |
| using | Pose2Dd = Pose2D< double > |
| using | Pose2Df = Pose2D< float > |
| using | Pose6Dd = Pose6D< double > |
| using | Pose6Df = Pose6D< float > |
| using | Quaterniond = Quaternion< double > |
| using | Quaternionf = Quaternion< float > |
| using | Rotation2Dd = Rotation2D< double > |
| using | Rotation2Df = Rotation2D< float > |
| using | Rotation3Dd = Rotation3D< double > |
| using | Rotation3Df = Rotation3D< float > |
| using | RPYd = RPY< double > |
| using | RPYf = RPY< float > |
| using | Transform2Dd = Transform2D< double > |
| using | Transform2Df = Transform2D< float > |
| using | Transform3Dd = Transform3D< double > |
| using | Transform3Df = Transform3D< float > |
| using | Transform3DVectord = Transform3DVector< double > |
| using | Transform3DVectorf = Transform3DVector< float > |
| using | Vectord = Vector< double > |
| using | Vectorf = Vector< float > |
| using | Vector2Dd = Vector2D< double > |
| using | Vector2Df = Vector2D< float > |
| using | Vector3Dd = Vector3D< double > |
| using | Vector3Df = Vector3D< float > |
| template<class T > | |
| using | Vector6D = VectorND< 6, T > |
| using | VelocityScrew6Dd = VelocityScrew6D< double > |
| using | VelocityScrew6Df = VelocityScrew6D< float > |
| using | Wrench6Dd = Wrench6D< double > |
| using | Wrench6Df = Wrench6D< float > |
Functions | |
| template<class T > | |
| rw::math::Vector3D< T > | cross (const rw::math::Vector3D< T > &v1, const EAA< T > &v2) |
| template<class Q , class T > | |
| const EAA< Q > | cast (const EAA< T > &eaa) |
| Casts EAA<T> to EAA<Q> More... | |
| template<class Q > | |
| InertiaMatrix< Q > | inverse (const InertiaMatrix< Q > &aRb) |
| Calculates the inverse \( \robabx{b}{a}{\mathbf{R}} = \robabx{a}{b}{\mathbf{R}}^{-1} \) of a rotation matrix. More... | |
| template<class Q , class T > | |
| InertiaMatrix< Q > | cast (const InertiaMatrix< T > &rot) |
| Casts InertiaMatrix<T> to InertiaMatrix<Q> More... | |
| Polynomial | operator* (const PolynomialND< Eigen::Matrix< double, 1, 3 >> &a, const PolynomialND< Eigen::Matrix< double, 3, 1 >> &b) |
| Multiply 3D polynomial vector with 3D polynomial vector. More... | |
| PolynomialND< Eigen::Vector3d > | operator* (const PolynomialND< Eigen::Vector3d > &polynomial, const Polynomial<> &p) |
| Multiply 3D polynomial vector with a polynomial with scalar coefficients. More... | |
| PolynomialND< Eigen::Matrix< double, 1, 3 > > | operator* (const PolynomialND< Eigen::Matrix< double, 1, 3 >> &polynomial, const Polynomial<> &p) |
| Multiply 3D polynomial vector with a polynomial with scalar coefficients. More... | |
| PolynomialND< Eigen::Matrix3d > | operator* (const PolynomialND< Eigen::Matrix3d > &polynomial, const Polynomial<> &p) |
| Multiply 3D polynomial matrix with a polynomial with scalar coefficients. More... | |
| Polynomial< float > | operator* (const PolynomialND< Eigen::Matrix< float, 1, 3 >, float > &a, const PolynomialND< Eigen::Matrix< float, 3, 1 >, float > &b) |
| PolynomialND< Eigen::Vector3f, float > | operator* (const PolynomialND< Eigen::Vector3f, float > &polynomial, const Polynomial< float > &p) |
| Multiply 3D polynomial vector with a polynomial with scalar coefficients. More... | |
| PolynomialND< Eigen::Matrix< float, 1, 3 >, float > | operator* (const PolynomialND< Eigen::Matrix< float, 1, 3 >, float > &polynomial, const Polynomial< float > &p) |
| PolynomialND< Eigen::Matrix3f, float > | operator* (const PolynomialND< Eigen::Matrix3f, float > &polynomial, const Polynomial< float > &p) |
| Multiply 3D polynomial matrix with a polynomial with scalar coefficients. More... | |
| PolynomialND< Eigen::Vector3d > | operator* (const PolynomialND< Eigen::Matrix3d > &A, const PolynomialND< Eigen::Vector3d > &b) |
| Multiply 3D polynomial matrix with 3D polynomial vector. More... | |
| PolynomialND< Eigen::Matrix< double, 1, 3 > > | operator* (const PolynomialND< Eigen::Matrix< double, 1, 3 >> &a, const PolynomialND< Eigen::Matrix3d > &A) |
| Multiply 3D polynomial vector with 3D polynomial matrix. More... | |
| PolynomialND< Eigen::Vector3d > | operator* (const PolynomialND< Eigen::Matrix3d > &A, const Eigen::Vector3d &b) |
| PolynomialND< Eigen::Matrix< double, 1, 3 > > | operator* (const PolynomialND< Eigen::Matrix< double, 1, 3 >> &a, const Eigen::Matrix3d &A) |
| PolynomialND< Eigen::Vector3f, float > | operator* (const PolynomialND< Eigen::Matrix3f, float > &A, const PolynomialND< Eigen::Vector3f, float > &b) |
| PolynomialND< Eigen::Matrix< float, 1, 3 >, float > | operator* (const PolynomialND< Eigen::Matrix< float, 1, 3 >, float > &a, const PolynomialND< Eigen::Matrix3f, float > &A) |
| PolynomialND< Eigen::Vector3f, float > | operator* (const PolynomialND< Eigen::Matrix3f, float > &A, const Eigen::Vector3f &b) |
| PolynomialND< Eigen::Matrix< float, 1, 3 >, float > | operator* (const PolynomialND< Eigen::Matrix< float, 1, 3 >, float > &a, const Eigen::Matrix3f &A) |
| template<class Q , class T > | |
| const Pose6D< Q > | cast (const Pose6D< T > &pose) |
| Casts Pose6D<T> to Pose6D<Q> More... | |
| rw::math::Q | concat (const Q &q1, const Q &q2) |
| concatenates q1 onto q2 such that the returned q has the configurations of q1 in [0;q1.size()[ and has q2 in [q1.size();q1.size()+q2.size()[ More... | |
| template<class T > | |
| Quaternion< T > | ln (const Quaternion< T > &q) |
| calculates the natural logerithm of this quaternion More... | |
| template<class T > | |
| Quaternion< T > | exp (const Quaternion< T > &q) |
| this will return the exponential of this quaternion \( e^Quaternion \) More... | |
| template<class T > | |
| Quaternion< T > | inverse (const Quaternion< T > &q) |
| Calculate the inverse Quaternion. More... | |
| template<class T > | |
| Quaternion< T > | pow (const Quaternion< T > &q, double power) |
| calculates the quaternion lifted to the power of power More... | |
| template<class Q , class T > | |
| const Quaternion< Q > | cast (const Quaternion< T > &quaternion) |
| Casts Quaternion<T> to Quaternion<Q> More... | |
| template<class T > | |
| const Rotation2D< T > | Rotation2DIdentity () |
| template<class R , class T > | |
| const Rotation2D< R > | cast (const Rotation2D< T > &rot) |
| Casts Rotation2D<T> to Rotation2D<Q> More... | |
| template<class T > | |
| const Rotation2D< T > | transpose (const Rotation2D< T > &aRb) |
| Find the transpose of aRb. More... | |
| template<class T > | |
| const Rotation3D< T > | Rotation3DIdentity () |
| template<class Q , class T > | |
| const RPY< Q > | cast (const RPY< T > &rpy) |
| Casts RPY<T> to RPY<Q> More... | |
| template<class Q , class T > | |
| const Transform2D< Q > | cast (const Transform2D< T > &trans) |
| Cast Transform2D<T> to Transform2D<Q> More... | |
| template<class Q , class T > | |
| const Transform3D< Q > | cast (const Transform3D< T > &trans) |
| Cast Transform3D<T> to Transform3D<Q> More... | |
| template<class A > | |
| bool | operator!= (const Vector< A > &q1, const Vector< A > &q2) |
| Inequality operator. More... | |
| template<class A > | |
| rw::math::Vector< A > | concat (const Vector< A > &q1, const Vector< A > &q2) |
| concatenates q1 onto q2 such that the returned q has the configurations of q1 in [0;q1.size()[ and has q2 in [q1.size();q1.size()+q2.size()[ More... | |
| template<class T > | |
| T | cross (const Vector2D< T > &v1, const Vector2D< T > &v2) |
| Calculates the 2D vector cross product \( \mathbf{v1} \times \mathbf{v2} \). More... | |
| template<class T > | |
| double | dot (const Vector2D< T > &v1, const Vector2D< T > &v2) |
| Calculates the dot product \( \mathbf{v1} . \mathbf{v2} \). More... | |
| template<class T > | |
| double | angle (const Vector2D< T > &v1, const Vector2D< T > &v2) |
| calculates the counter clock-wise angle from v1 to v2. the value returned will be in the interval [-2Pi,2Pi] | |
| template<class T > | |
| const Vector2D< T > | normalize (const Vector2D< T > &v) |
| Returns the normalized vector \(\mathbf{n}=\frac{\mathbf{v}}{\|\mathbf{v}\|} \). More... | |
| template<class Q , class T > | |
| const Vector2D< Q > | cast (const Vector2D< T > &v) |
| Casts Vector2D<T> to Vector2D<Q> More... | |
| template<class T > | |
| T | norm1 (const VelocityScrew6D< T > &screw) |
| Takes the 1-norm of the velocity screw. All elements both angular and linear are given the same weight. More... | |
| template<class T > | |
| T | norm2 (const VelocityScrew6D< T > &screw) |
| Takes the 2-norm of the velocity screw. All elements both angular and linear are given the same weight. More... | |
| template<class T > | |
| T | normInf (const VelocityScrew6D< T > &screw) |
| Takes the infinite norm of the velocity screw. All elements both angular and linear are given the same weight. More... | |
| template<class Q , class T > | |
| const VelocityScrew6D< Q > | cast (const VelocityScrew6D< T > &vs) |
| Casts VelocityScrew6D<T> to VelocityScrew6D<Q> More... | |
| template<class T > | |
| T | norm1 (const Wrench6D< T > &wrench) |
| Takes the 1-norm of the wrench. All elements both force and torque are given the same weight. More... | |
| template<class T > | |
| T | norm2 (const Wrench6D< T > &wrench) |
| Takes the 2-norm of the wrench. All elements both force and tporque are given the same weight. More... | |
| template<class T > | |
| T | normInf (const Wrench6D< T > &wrench) |
| Takes the infinite norm of the wrench. All elements both force and torque are given the same weight. More... | |
| template<class Q , class T > | |
| const Wrench6D< Q > | cast (const Wrench6D< T > &vs) |
| Casts Wrench6D<T> to Wrench6D<Q> More... | |
Variables | |
| const double | Pi = 3.1415926535897932384626433832795 |
| const double | Inch2Meter = 0.0254 |
| const double | Meter2Inch = 1 / Inch2Meter |
| const double | Deg2Rad = Pi / 180 |
| const double | Rad2Deg = 180 / Pi |
| const Transform2D< double > | Transform2DDoubleIdentity |
| const Transform2D< float > | Transform2DFloatIdentity |
Matrices, vectors, configurations, and more.
| InertiaMatrix<Q> rw::math::cast | ( | const InertiaMatrix< T > & | rot | ) |
Casts InertiaMatrix<T> to InertiaMatrix<Q>
| rot | [in] InertiaMatrix with type T |
|
inline |
Casts Quaternion<T> to Quaternion<Q>
| quaternion | [in] Quarternion with type T |
| const Rotation2D<R> rw::math::cast | ( | const Rotation2D< T > & | rot | ) |
Casts Rotation2D<T> to Rotation2D<Q>
| rot | [in] Rotation2D with type T |
| const Transform2D<Q> rw::math::cast | ( | const Transform2D< T > & | trans | ) |
Cast Transform2D<T> to Transform2D<Q>
| trans | [in] Transform2D with type T |
| const Transform3D<Q> rw::math::cast | ( | const Transform3D< T > & | trans | ) |
Cast Transform3D<T> to Transform3D<Q>
| trans | [in] Transform3D with type T |
| const VelocityScrew6D<Q> rw::math::cast | ( | const VelocityScrew6D< T > & | vs | ) |
Casts VelocityScrew6D<T> to VelocityScrew6D<Q>
| vs | [in] VelocityScrew6D with type T |
| rw::math::Q rw::math::concat | ( | const Q & | q1, |
| const Q & | q2 | ||
| ) |
| rw::math::Vector<A> rw::math::concat | ( | const Vector< A > & | q1, |
| const Vector< A > & | q2 | ||
| ) |
Calculates the 2D vector cross product \( \mathbf{v1} \times \mathbf{v2} \).
| v1 | [in] \( \mathbf{v1} \) |
| v2 | [in] \( \mathbf{v2} \) |
The 2D vector cross product is defined as:
\( \mathbf{v1} \times \mathbf{v2} = v1_x * v2_y - v1_y * v2_x \)
Calculates the dot product \( \mathbf{v1} . \mathbf{v2} \).
| v1 | [in] \( \mathbf{v1} \) |
| v2 | [in] \( \mathbf{v2} \) |
| Quaternion<T> rw::math::exp | ( | const Quaternion< T > & | q | ) |
this will return the exponential of this quaternion \( e^Quaternion \)
| q | [in] the quaternion being operated on |
| InertiaMatrix<Q> rw::math::inverse | ( | const InertiaMatrix< Q > & | aRb | ) |
Calculates the inverse \( \robabx{b}{a}{\mathbf{R}} = \robabx{a}{b}{\mathbf{R}}^{-1} \) of a rotation matrix.
| aRb | [in] the rotation matrix \( \robabx{a}{b}{\mathbf{R}} \) |
\( \robabx{b}{a}{\mathbf{R}} = \robabx{a}{b}{\mathbf{R}}^{-1} = \robabx{a}{b}{\mathbf{R}}^T \)
| Quaternion<T> rw::math::inverse | ( | const Quaternion< T > & | q | ) |
Calculate the inverse Quaternion.
| q | [in] the quaternion being operated on |
| Quaternion<T> rw::math::ln | ( | const Quaternion< T > & | q | ) |
calculates the natural logerithm of this quaternion
| q | [in] the quaternion being operated on |
| T rw::math::norm1 | ( | const VelocityScrew6D< T > & | screw | ) |
Takes the 1-norm of the velocity screw. All elements both angular and linear are given the same weight.
| screw | [in] the velocity screw |
| T rw::math::norm1 | ( | const Wrench6D< T > & | wrench | ) |
Takes the 1-norm of the wrench. All elements both force and torque are given the same weight.
| wrench | [in] the wrench |
| T rw::math::norm2 | ( | const VelocityScrew6D< T > & | screw | ) |
Takes the 2-norm of the velocity screw. All elements both angular and linear are given the same weight.
| screw | [in] the velocity screw |
| T rw::math::norm2 | ( | const Wrench6D< T > & | wrench | ) |
Takes the 2-norm of the wrench. All elements both force and tporque are given the same weight.
| wrench | [in] the wrench |
Returns the normalized vector \(\mathbf{n}=\frac{\mathbf{v}}{\|\mathbf{v}\|} \).
If \( \| \mathbf{v} \| = 0\) then the zero vector is returned.
| v | [in] \( \mathbf{v} \) which should be normalized |
| T rw::math::normInf | ( | const VelocityScrew6D< T > & | screw | ) |
Takes the infinite norm of the velocity screw. All elements both angular and linear are given the same weight.
| screw | [in] the velocity screw |
| T rw::math::normInf | ( | const Wrench6D< T > & | wrench | ) |
Takes the infinite norm of the wrench. All elements both force and torque are given the same weight.
| wrench | [in] the wrench |
Inequality operator.
The inverse of operator==().
| Quaternion<T> rw::math::pow | ( | const Quaternion< T > & | q, |
| double | power | ||
| ) |
calculates the quaternion lifted to the power of power
| q | [in] the quaternion being operated on |
| power | [in] the power the quaternion is lifted to |
| const Rotation2D<T> rw::math::transpose | ( | const Rotation2D< T > & | aRb | ) |
Find the transpose of aRb.
The transpose of a rotation matrix is the same as the inverse.
| const double Deg2Rad = Pi / 180 |
Convert degrees to radians
| const double Inch2Meter = 0.0254 |
Converts inch to meter
| const double Meter2Inch = 1 / Inch2Meter |
Converts meter to inch
| const double Pi = 3.1415926535897932384626433832795 |
Definition of Pi
| const double Rad2Deg = 180 / Pi |
Converts radians to degrees