Exotica
Public Member Functions | Private Attributes | List of all members
exotica::Manipulability Class Reference

Manipulability measure. The manipulability measure for a robot at a given joint configuration indicates dexterity, that is, how isotropic the robot's motion is with respect to the task space motion. The measure is high when the manipulator is capable of equal motion in all directions and low when the manipulator is close to a singularity. This task map implements Yoshikawa's manipulability measure. More...

#include <manipulability.h>

Inheritance diagram for exotica::Manipulability:
Inheritance graph
Collaboration diagram for exotica::Manipulability:
Collaboration graph

Public Member Functions

void Instantiate (const ManipulabilityInitializer &init) override
 
void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRef phi) override
 
int TaskSpaceDim () override
 
- Public Member Functions inherited from exotica::TaskMap
virtual void InstantiateBase (const Initializer &init)
 
virtual void AssignScene (ScenePtr scene)
 
virtual void Update (Eigen::VectorXdRefConst q, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian)
 
virtual void Update (Eigen::VectorXdRefConst q, Eigen::VectorXdRef phi, Eigen::MatrixXdRef jacobian, HessianRef hessian)
 
virtual void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRefConst u, Eigen::VectorXdRef phi)
 
virtual void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRefConst u, Eigen::VectorXdRef phi, Eigen::MatrixXdRef dphi_dx, Eigen::MatrixXdRef dphi_du)
 
virtual void Update (Eigen::VectorXdRefConst x, Eigen::VectorXdRefConst u, Eigen::VectorXdRef phi, Eigen::MatrixXdRef dphi_dx, Eigen::MatrixXdRef dphi_du, HessianRef ddphi_ddx, HessianRef ddphi_ddu, HessianRef ddphi_dxdu)
 
virtual int TaskSpaceJacobianDim ()
 
virtual void PreUpdate ()
 
virtual std::vector< TaskVectorEntryGetLieGroupIndices ()
 
std::vector< KinematicFrameRequestGetFrames () const
 
- Public Member Functions inherited from exotica::Object
 Object ()
 
virtual ~Object ()
 
virtual std::string type () const
 Type Information wrapper: must be virtual so that it is polymorphic... More...
 
std::string GetObjectName ()
 
void InstantiateObject (const Initializer &init)
 
virtual std::string Print (const std::string &prepend) const
 
- Public Member Functions inherited from exotica::InstantiableBase
 InstantiableBase ()=default
 
virtual ~InstantiableBase ()=default
 
virtual std::vector< InitializerGetAllTemplates () const =0
 
- Public Member Functions inherited from exotica::Instantiable< ManipulabilityInitializer >
void InstantiateInternal (const Initializer &init) override
 
Initializer GetInitializerTemplate () override
 
std::vector< InitializerGetAllTemplates () const override
 
const ManipulabilityInitializer & GetParameters () const
 

Private Attributes

int n_end_effs_
 Number of end-effectors. More...
 
int n_rows_of_jac_
 Number of rows from the top to extract from full jacobian. Is either 3 (position) or 6 (position and rotation). More...
 

Additional Inherited Members

- Public Attributes inherited from exotica::TaskMap
std::vector< KinematicSolutionkinematics = std::vector<KinematicSolution>(1)
 
int id = -1
 
int start = -1
 
int length = -1
 
int start_jacobian = -1
 
int length_jacobian = -1
 
bool is_used = false
 
- Public Attributes inherited from exotica::Object
std::string ns_
 
std::string object_name_
 
bool debug_
 
- Protected Attributes inherited from exotica::TaskMap
std::vector< KinematicFrameRequestframes_
 
ScenePtr scene_ = nullptr
 
- Protected Attributes inherited from exotica::Instantiable< ManipulabilityInitializer >
ManipulabilityInitializer parameters_
 

Detailed Description

Manipulability measure. The manipulability measure for a robot at a given joint configuration indicates dexterity, that is, how isotropic the robot's motion is with respect to the task space motion. The measure is high when the manipulator is capable of equal motion in all directions and low when the manipulator is close to a singularity. This task map implements Yoshikawa's manipulability measure.

\[ m(x) = \sqrt{J(x)J(x)^T} \]

that is based on the shape of the velocity ellipsoid where $J(x)$ is the manipulator Jacobian matrix.. The task map is expressed by

\[ \phi(x) := -m(x). \]

To use the task map as an inequality constraint the lower bound for $\phi$ should be set as a goal and each element should be negative.

Note that

Todo

Member Function Documentation

◆ Instantiate()

void exotica::Manipulability::Instantiate ( const ManipulabilityInitializer &  init)
overridevirtual

◆ TaskSpaceDim()

int exotica::Manipulability::TaskSpaceDim ( )
overridevirtual

Implements exotica::TaskMap.

◆ Update()

void exotica::Manipulability::Update ( Eigen::VectorXdRefConst  x,
Eigen::VectorXdRef  phi 
)
overridevirtual

Implements exotica::TaskMap.

Member Data Documentation

◆ n_end_effs_

int exotica::Manipulability::n_end_effs_
private

Number of end-effectors.

◆ n_rows_of_jac_

int exotica::Manipulability::n_rows_of_jac_
private

Number of rows from the top to extract from full jacobian. Is either 3 (position) or 6 (position and rotation).


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