![]() |
RobWorkProject
23.9.11-
|
A Jacobian class. A jacobian with m rows and n columns. More...
#include <Jacobian.hpp>
Public Types | |
| typedef Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > | Base |
| The type of the internal Eigen matrix implementation. | |
Public Member Functions | |
| Jacobian (size_t m, size_t n) | |
| Creates an empty \( m\times n \) (uninitialized) Jacobian matrix. More... | |
| Jacobian () | |
| Default constructor. | |
| Jacobian (size_t n) | |
| Creates an empty \( 6\times n \) (uninitialized) Jacobian matrix. More... | |
| template<class R > | |
| Jacobian (const Eigen::MatrixBase< R > &r) | |
| Creates a Jacobian from a Eigen::MatrixBase. More... | |
| Jacobian (const rw::math::Transform3D< double > &aTb) | |
| Creates the velocity transform jacobian \( \robabcdx{a}{b}{a}{b}{\bf{J_v}} \) for transforming both the reference frame and the velocity reference point from one frame b to another frame a. More... | |
| Jacobian (const rw::math::Rotation3D< double > &aRb) | |
| Creates the velocity transform jacobian \( \robabcdx{a}{b}{i}{i}{\bf{J_v}} \) for transforming a velocity screw from one frame of reference b to another frame a. More... | |
| Jacobian (const rw::math::Vector3D< double > &aPb) | |
| Creates the velocity transform jacobian \( \robabcdx{i}{i}{b}{a}{\bf{J}_v} \) for transforming the reference point of a velocity screw from one frame b to another frame a. More... | |
| size_t | size1 () const |
| The number of rows. | |
| size_t | size2 () const |
| The number of columns. | |
| Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > & | e () |
| Accessor for the internal Eigen matrix state. | |
| const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > & | e () const |
| Accessor for the internal Eigen matrix state. | |
| double & | operator() (size_t row, size_t column) |
| Returns reference to matrix element. More... | |
| const double & | operator() (size_t row, size_t column) const |
| Returns reference to matrix element. More... | |
| double & | elem (size_t row, size_t col) |
| Get an element of the jacobian. More... | |
| void | addRotation (const rw::math::Vector3D<> &part, size_t row, size_t col) |
| add rotation jacobian to a specific row and column in this jacobian More... | |
| void | addPosition (const rw::math::Vector3D<> &part, size_t row, size_t col) |
| add position jacobian to a specific row and column in this jacobian More... | |
Static Public Member Functions | |
| static Jacobian | zero (size_t size1, size_t size2) |
| Construct zero initialized Jacobian. More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &out, const Jacobian &v) |
| Streaming operator. | |
Related Functions | |
(Note that these are not member functions.) | |
| const rw::math::VelocityScrew6D | operator* (const Jacobian &Jq, const rw::math::Q &dq) |
| Calculates velocity vector. More... | |
| const rw::math::Q | operator* (const Jacobian &JqInv, const rw::math::VelocityScrew6D<> &v) |
| Calculates joint velocities. More... | |
| const Jacobian | operator* (const Jacobian &j1, const Jacobian &j2) |
| Multiplies jacobians \( \mathbf{J} = \mathbf{J}_1 * \mathbf{J}_2 \). More... | |
| const Jacobian | operator* (const rw::math::Rotation3D<> &r, const Jacobian &v) |
| Rotates each column of v by r. More... | |
| template<> | |
| void | write (const rw::math::Jacobian &sobject, rw::common::OutputArchive &oarchive, const std::string &id) |
| template<> | |
| void | read (rw::math::Jacobian &sobject, rw::common::InputArchive &iarchive, const std::string &id) |
A Jacobian class. A jacobian with m rows and n columns.
An ordinary robot jacobian defined over the joints 0 to n with configuration q is expressed as a \( 6\times n \) matrix:
\[ \robabx{0}{n}{\bf{J}}(\bf{q}) = [ \robabx{0}{1}{\bf{J}}(\bf{q}), \robabx{1}{2}{\bf{J}}(\bf{q}),..., \robabx{n-1}{n}{\bf{J}}(\bf{q}) ] \]
|
inline |
Creates an empty \( m\times n \) (uninitialized) Jacobian matrix.
| m | [in] number of rows |
| n | [in] number of columns |
|
inlineexplicit |
Creates an empty \( 6\times n \) (uninitialized) Jacobian matrix.
| n | [in] number of columns |
|
inlineexplicit |
Creates a Jacobian from a Eigen::MatrixBase.
| r | [in] an Eigen Matrix |
|
explicit |
Creates the velocity transform jacobian \( \robabcdx{a}{b}{a}{b}{\bf{J_v}} \) for transforming both the reference frame and the velocity reference point from one frame b to another frame a.
| aTb | [in] \( \robabx{a}{b}{\bf{T}} \) |
\[ \robabcdx{a}{b}{a}{b}{\bf{J_v}} = \left[ \begin{array}{cc} \robabx{a}{b}{\mathbf{R}} & S(\robabx{a}{b}{\mathbf{d}})\robabx{a}{b}{\mathbf{R}} \\ \mathbf{0}^{3x3} & \robabx{a}{b}{\mathbf{R}} \end{array} \right] \]
Change the frame of reference from b to frame a and reference point from frame a to frame b: \( \robabx{a}{b}{\bf{J}} = \robabcdx{a}{b}{a}{b}{\bf{J}_v} \cdot \robabx{b}{a}{\bf{J}} \)
|
explicit |
Creates the velocity transform jacobian \( \robabcdx{a}{b}{i}{i}{\bf{J_v}} \) for transforming a velocity screw from one frame of reference b to another frame a.
| aRb | [in] \( \robabx{a}{b}{\bf{R}} \) |
\[ \robabcdx{a}{b}{i}{i}{\bf{J_v}} = \left[ \begin{array}{cc} \robabx{a}{b}{\mathbf{R}} & \mathbf{0}^{3x3} \\ \mathbf{0}^{3x3} & \robabx{a}{b}{\mathbf{R}} \end{array} \right] \]
Change the frame of reference from b to frame a : \( \robabx{a}{c}{\bf{J}} = \robabcdx{a}{b}{c}{c}{\bf{J}_v} \cdot \robabx{b}{c}{\bf{J}} \)
|
explicit |
Creates the velocity transform jacobian \( \robabcdx{i}{i}{b}{a}{\bf{J}_v} \) for transforming the reference point of a velocity screw from one frame b to another frame a.
| aPb | [in] \( \robabx{a}{b}{\bf{P}} \) |
\[ \robabcdx{i}{i}{b}{a}{\bf{J}_v} = \left[ \begin{array}{cc} \bf{I}^{3x3} & S(\robabx{a}{b}{\bf{P}}) \\ \bf{0}^{3x3} & \bf{I}^{3x3} \end{array} \right] \]
transforming the reference point of a Jacobian from frame c to frame d : \( \robabx{a}{d}{\mathbf{J}} = \robabcdx{a}{a}{c}{d}{\mathbf{J_v}} \cdot \robabx{a}{c}{\mathbf{J}} \)
| void addPosition | ( | const rw::math::Vector3D<> & | part, |
| size_t | row, | ||
| size_t | col | ||
| ) |
add position jacobian to a specific row and column in this jacobian
| part | |
| row | |
| col |
| void addRotation | ( | const rw::math::Vector3D<> & | part, |
| size_t | row, | ||
| size_t | col | ||
| ) |
add rotation jacobian to a specific row and column in this jacobian
| part | |
| row | |
| col |
|
inline |
Get an element of the jacobian.
| row | [in] the row. |
| col | [in] the column. |
|
inline |
Returns reference to matrix element.
| row | [in] row |
| column | [in] column |
|
inline |
Returns reference to matrix element.
| row | [in] row |
| column | [in] column |
|
inlinestatic |
Construct zero initialized Jacobian.
| size1 | [in] number of rows. |
| size2 | [in] number of columns. |
Multiplies jacobians \( \mathbf{J} = \mathbf{J}_1 * \mathbf{J}_2 \).
| j1 | [in] \( \mathbf{J}_1 \) |
| j2 | [in] \( \mathbf{J}_2 \) |
|
related |
Calculates velocity vector.
| Jq | [in] the jacobian \( \mathbf{J}_{\mathbf{q}} \) |
| dq | [in] the joint velocity vector \( \dot{\mathbf{q}} \) |
|
related |
Calculates joint velocities.
| JqInv | [in] the inverse jacobian \( \mathbf{J}_{\mathbf{q}}^{-1} \) |
| v | [in] the velocity vector \( \mathbf{\nu} \) |
|
related |
Rotates each column of v by r.
The Jacobian must be of height 6.
|
related |
Enable read-serialization of class T by overloading this method. Data is read from iarchive and filled into sobject.
| sobject | [out] the object in which the data should be streamed into |
| iarchive | [in] the InputArchive from which to read data. |
| id | [in] The id of the serialized sobject. |
|
related |
Enable write-serialization of class T by overloading this method. Data is written to oarchive from the sobject.
| sobject | [in] the object from which the data should be streamed. |
| oarchive | [out] the OutputArchive in which data should be written. |
| id | [in] The id of the serialized sobject. |