|
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | PoseQualityExtendedManipulability (VirtualRobot::RobotNodeSetPtr rns, PoseQualityManipulability::ManipulabilityIndexType i=PoseQualityManipulability::eMinMaxRatio) |
|
| ~PoseQualityExtendedManipulability () |
|
float | getPoseQuality () override |
|
float | getPoseQuality (PoseQualityManipulability::ManipulabilityIndexType i, int considerFirstSV) |
|
float | getPoseQuality (const Eigen::VectorXf &direction) override |
|
float | getManipulability (const Eigen::VectorXf &direction, int considerFirstSV=-1) override |
|
bool | getDetailedAnalysis (extManipData &storeData, int considerFirstSV=0) |
|
bool | getDetailedAnalysis (extManipData &storeData, bool(&dims)[6], int considerFirstSV=0) |
|
std::vector< std::vector< float > > | getPermutationVector () |
|
void | considerObstacles (bool enable, float alpha=40.0f, float beta=1.0f) |
|
bool | consideringJointLimits () override |
| Indicates if joint limits are considered. More...
|
|
PoseQualityMeasurementPtr | clone (RobotPtr newRobot) override |
|
void | getSelfDistParameters (float &storeAlpha, float &storeBeta) |
|
| PoseQualityManipulability (VirtualRobot::RobotNodeSetPtr rns, ManipulabilityIndexType i=eMinMaxRatio) |
|
| ~PoseQualityManipulability () |
|
float | getPoseQuality () override |
|
virtual float | getManipulability (ManipulabilityIndexType i) |
|
float | getPoseQuality (const Eigen::VectorXf &direction) override |
|
virtual float | getManipulability (ManipulabilityIndexType i, int considerFirstSV) |
|
Eigen::VectorXf | getSingularValues () |
|
Eigen::MatrixXf | getSingularVectorCartesian () |
|
virtual void | penalizeJointLimits (bool enable, float k=50.0f) |
|
bool | consideringJointLimits () override |
| Indicates if joint limits are considered. More...
|
|
PoseQualityMeasurementPtr | clone (RobotPtr newRobot) override |
|
EIGEN_MAKE_ALIGNED_OPERATOR_NEW | PoseQualityMeasurement (VirtualRobot::RobotNodeSetPtr rns) |
|
| ~PoseQualityMeasurement () |
|
void | setVerbose (bool v) |
|
VirtualRobot::RobotNodeSetPtr | getRNS () |
|
std::string | getName () |
| A string that identifies the type of pose quality measure. More...
|
|
virtual void | setObstacleDistanceVector (const Eigen::Vector3f &directionSurfaceToObstance) |
|
virtual void | disableObstacleDistance () |
|
|
bool | getDetailedAnalysis (DifferentialIKPtr jacobian, RobotNodeSetPtr rns, extManipData &storeData, int considerFirstSV=0) |
|
bool | getDetailedAnalysis (DifferentialIKPtr jacobian, RobotNodeSetPtr rns, extManipData &storeData, bool(&dims)[6], int considerFirstSV=0) |
|
bool | getDetailedAnalysis (const Eigen::MatrixXf &jac, const std::vector< RobotNodePtr > &joints, extManipData &storeData, bool(&dims)[6], int considerFirstSV=0) |
|
float | getPoseQuality (DifferentialIKPtr jacobian, RobotNodeSetPtr rns, PoseQualityManipulability::ManipulabilityIndexType i, int considerFirstSV) |
|
bool | createCartDimPermutations (std::vector< std::vector< float > > &storePerm) |
|
void | getQualityWeighting (float jv, float limitMin, float limitMax, float &storeWeightMin, float &storeWeightMax) |
|
void | getPenalizations (const std::vector< RobotNodePtr > &joints, Eigen::VectorXf &penLo, Eigen::VectorXf &penHi) |
| Compute weightings w and store 1/sqrt(w) More...
|
|
Eigen::MatrixXf | getJacobianWeighted (const Eigen::MatrixXf &jac, const std::vector< float > &directionVect, const Eigen::VectorXf &penLo, const Eigen::VectorXf &penHi) |
|
bool | analyzeJacobian (const Eigen::MatrixXf &jac, Eigen::VectorXf &sv, Eigen::MatrixXf &singVectors, Eigen::MatrixXf &U, Eigen::MatrixXf &V, bool printInfo=false) |
|
void | getObstaclePenalizations (RobotNodeSetPtr rns, const Eigen::Vector3f &obstVect, const Eigen::MatrixXf &jac, Eigen::MatrixXf &penObstLo, Eigen::MatrixXf &penObstHi) |
|
void | getObstaclePenalizations (const std::vector< RobotNodePtr > &joints, const Eigen::Vector3f &obstVect, const Eigen::MatrixXf &jac, Eigen::MatrixXf &penObstLo, Eigen::MatrixXf &penObstHi) |
|
Eigen::MatrixXf | getJacobianWeightedObstacles (const Eigen::MatrixXf &jac, const std::vector< float > &directionVect, const Eigen::VectorXf &penLo, const Eigen::VectorXf &penHi, const Eigen::MatrixXf &penObstLo, const Eigen::MatrixXf &penObstHi) |
|
float | getJointLimitPenalizationFactor () |
|
This pose quality measure is an extended approach based on Yoshikawa's manipulability measure. It considers joint limits and hence a detailed analysis of the constrained manipulability of a kinematic chain can be performed. Additionally self-distance and distances to obstacles can be considered. For details see: {Vahrenkamp2012, author = {Nikolaus Vahrenkamp and Tamim Asfour and Giorgio Metta and Giulio Sandini and R"udiger Dillmann}, title = {Manipulability Analysis}, booktitle = {Proceedings of IEEE-RAS International Conference on Humanoid Robots (Humanoids)}, year = {2012} }
For performance reasons this class is not thread safe and cannot be used from different threads in parallel.