- 3.0.2 rigid body dynamics module.
|
A class computing codition numbers and singular velues of a Jacobian. More...
#include <JacobiSingularity.h>
Public Types | |
enum | ManipulabilityMethod { DIRECT, SINGULAR_VALUES } |
typedef Eigen::Matrix< double, COLS, ROWS > | PseudoInverse |
typedef Eigen::Matrix< double, ROWS, 1 > | SingularValues |
typedef Eigen::Matrix< double, ROWS, 1 > | EndeffectorVelocities |
typedef Eigen::Matrix< double, COLS, 1 > | JointVelocities |
Public Member Functions | |
JacobiSingularity (const Jacobian &J) | |
double | calc_condition_number () const |
double | calc_manipulability (ManipulabilityMethod method=DIRECT) const |
SingularValues | calc_singular_values () const |
Public Attributes | |
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix< double, ROWS, COLS > | Jacobian |
A class computing codition numbers and singular velues of a Jacobian.
ROWS | number of rows |
CLOS | number of colums |
typedef Eigen::Matrix<double, COLS, ROWS> ct::rbd::JacobiSingularity< ROWS, COLS >::PseudoInverse |
typedef Eigen::Matrix<double, ROWS, 1> ct::rbd::JacobiSingularity< ROWS, COLS >::SingularValues |
typedef Eigen::Matrix<double, ROWS, 1> ct::rbd::JacobiSingularity< ROWS, COLS >::EndeffectorVelocities |
typedef Eigen::Matrix<double, COLS, 1> ct::rbd::JacobiSingularity< ROWS, COLS >::JointVelocities |
enum ct::rbd::JacobiSingularity::ManipulabilityMethod |
ct::rbd::JacobiSingularity< ROWS, COLS >::JacobiSingularity | ( | const Jacobian & | J | ) |
double ct::rbd::JacobiSingularity< ROWS, COLS >::calc_condition_number | ( | ) | const |
The condition number compares the lowest to the highest eigenvalue (for square matrix) or singular value (for others).
High values of ev_max/ev_min imply that some inputs ("null-space") are mapped to values close to zero outputs, e.g. some actions in operational space are restricted.
double ct::rbd::JacobiSingularity< ROWS, COLS >::calc_manipulability | ( | ManipulabilityMethod | method = DIRECT | ) | const |
The manipulability describes the freedom of the endeffector for a given configuration.
method | can be calculated directly as described in Siciliano p. 153 or multiplying the singular values of the Jacobian |
References i.
JacobiSingularity< ROWS, COLS >::SingularValues ct::rbd::JacobiSingularity< ROWS, COLS >::calc_singular_values | ( | ) | const |
Singular values are used if eigenvalues are not available, as in non- square matrices. With Single Value Decomposition (SVD) . See Siciliano p. 577
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<double, ROWS, COLS> ct::rbd::JacobiSingularity< ROWS, COLS >::Jacobian |