- 3.0.2 rigid body dynamics module.
ct::rbd::JacobiSingularity< ROWS, COLS > Class Template Reference

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
 

Detailed Description

template<size_t ROWS, size_t COLS>
class ct::rbd::JacobiSingularity< ROWS, COLS >

A class computing codition numbers and singular velues of a Jacobian.

Template Parameters
ROWSnumber of rows
CLOSnumber of colums

Member Typedef Documentation

◆ PseudoInverse

template<size_t ROWS, size_t COLS>
typedef Eigen::Matrix<double, COLS, ROWS> ct::rbd::JacobiSingularity< ROWS, COLS >::PseudoInverse

◆ SingularValues

template<size_t ROWS, size_t COLS>
typedef Eigen::Matrix<double, ROWS, 1> ct::rbd::JacobiSingularity< ROWS, COLS >::SingularValues

◆ EndeffectorVelocities

template<size_t ROWS, size_t COLS>
typedef Eigen::Matrix<double, ROWS, 1> ct::rbd::JacobiSingularity< ROWS, COLS >::EndeffectorVelocities

◆ JointVelocities

template<size_t ROWS, size_t COLS>
typedef Eigen::Matrix<double, COLS, 1> ct::rbd::JacobiSingularity< ROWS, COLS >::JointVelocities

Member Enumeration Documentation

◆ ManipulabilityMethod

template<size_t ROWS, size_t COLS>
enum ct::rbd::JacobiSingularity::ManipulabilityMethod
Enumerator
DIRECT 
SINGULAR_VALUES 

Constructor & Destructor Documentation

◆ JacobiSingularity()

template<size_t ROWS, size_t COLS>
ct::rbd::JacobiSingularity< ROWS, COLS >::JacobiSingularity ( const Jacobian J)

Member Function Documentation

◆ calc_condition_number()

template<size_t ROWS, size_t COLS>
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.

◆ calc_manipulability()

template<size_t ROWS, size_t COLS>
double ct::rbd::JacobiSingularity< ROWS, COLS >::calc_manipulability ( ManipulabilityMethod  method = DIRECT) const

The manipulability describes the freedom of the endeffector for a given configuration. $ w(q) = \sqrt(det(J*J')) $

Parameters
methodcan be calculated directly as described in Siciliano p. 153 or multiplying the singular values of the Jacobian
Returns
the area spanned by all possible ee-velocities.

References i.

◆ calc_singular_values()

template<size_t ROWS, size_t COLS>
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) $ J = U S V $. See Siciliano p. 577

Returns
the diagonals in S

Member Data Documentation

◆ Jacobian

template<size_t ROWS, size_t COLS>
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef Eigen::Matrix<double, ROWS, COLS> ct::rbd::JacobiSingularity< ROWS, COLS >::Jacobian

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