Exotica
|
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>
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< TaskVectorEntry > | GetLieGroupIndices () |
std::vector< KinematicFrameRequest > | GetFrames () 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< Initializer > | GetAllTemplates () const =0 |
Public Member Functions inherited from exotica::Instantiable< ManipulabilityInitializer > | |
void | InstantiateInternal (const Initializer &init) override |
Initializer | GetInitializerTemplate () override |
std::vector< Initializer > | GetAllTemplates () 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< KinematicSolution > | kinematics = 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< KinematicFrameRequest > | frames_ |
ScenePtr | scene_ = nullptr |
Protected Attributes inherited from exotica::Instantiable< ManipulabilityInitializer > | |
ManipulabilityInitializer | parameters_ |
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.
that is based on the shape of the velocity ellipsoid where is the manipulator Jacobian matrix.. The task map is expressed by
To use the task map as an inequality constraint the lower bound for should be set as a goal and each element should be negative.
Note that
Todo
|
overridevirtual |
Reimplemented from exotica::Instantiable< ManipulabilityInitializer >.
|
overridevirtual |
Implements exotica::TaskMap.
|
overridevirtual |
Implements exotica::TaskMap.
|
private |
Number of end-effectors.
|
private |
Number of rows from the top to extract from full jacobian. Is either 3 (position) or 6 (position and rotation).