Class Manipulability

Inheritance Relationships

Base Type

Class Documentation

class Manipulability : public OpenSoT::Task<Eigen::MatrixXd, Eigen::VectorXd>

The Manipulability class implements a task that tries to maximize the Manipulability index computed as (Robotics: Modelling, Planning and Control, pag.

126):

         w = sqrt(det(J*W*J'))
The gradient of w is then computed and projected using the gardient projection method. W is a CONSTANT weight matrix.

Public Types

typedef std::shared_ptr<Manipulability> Ptr

Public Functions

Manipulability(const XBot::ModelInterface &robot_model, const Cartesian::Ptr CartesianTask, const double step = 1E-3)
Manipulability(const XBot::ModelInterface &robot_model, const CoM::Ptr CartesianTask, const double step = 1E-3)
~Manipulability()
double ComputeManipulabilityIndex()

ComputeManipulabilityIndex.

Returns

the manipulability index at the actual configuration q (ast from latest update(q))

inline void setW(const Eigen::MatrixXd &W)

setW set a CONSTANT Weight matrix for the manipulability index

Parameters

W – weight matrix

inline const Eigen::MatrixXd &getW() const

getW get a Weight matrix for the manipulability index

inline virtual void setLambda(double lambda)

Protected Functions

virtual void _update()

Updates the A, b, Aeq, beq, Aineq, b*Bound matrices.

Protected Attributes

const XBot::ModelInterface &_model
Eigen::VectorXd _q
double _step
Eigen::VectorXd _gradient
Eigen::VectorXd _deltas
ComputeManipulabilityIndexGradient _manipulabilityIndexGradientWorker
class ComputeManipulabilityIndexGradient : public CostFunction

The ComputeManipulabilityIndexGradient class implements a worker class to computes the effort for a certain configuration.

Public Functions

inline ComputeManipulabilityIndexGradient(const XBot::ModelInterface &robot_model, const Cartesian::Ptr CartesianTask)
inline ComputeManipulabilityIndexGradient(const XBot::ModelInterface &robot_model, const CoM::Ptr CartesianTask)
inline virtual double compute(const Eigen::VectorXd &q)

compute value of function in x

Parameters

x

Returns

scalar

inline void setW(const Eigen::MatrixXd &W)
inline const Eigen::MatrixXd &getW() const
inline double computeManipulabilityIndex()

Public Members

XBot::ModelInterface::Ptr _robot
const XBot::ModelInterface &_model
Eigen::MatrixXd _W
Eigen::VectorXd _zeros
OpenSoT::Task<Eigen::MatrixXd, Eigen::VectorXd>::TaskPtr _CartesianTask