Skip to content
Snippets Groups Projects
Commit f400dbf8 authored by armar-user's avatar armar-user
Browse files

erge remote-tracking branch 'origin/manipulability2'

parents 421d08ce 7d2e3db2
No related branches found
No related tags found
No related merge requests found
......@@ -182,7 +182,6 @@ Eigen::MatrixXd AbstractManipulabilityTracking::getJointsLimitsWeightMatrix(cons
weights(i) = 1.;
}
else {
// TODO add condition on velocities
gradient(i) = std::pow(jointLimitsHigh(i) - jointLimitsLow(i), 2) * (2*jointAngles(i) - jointLimitsHigh(i) - jointLimitsLow(i)) /
( 4 * std::pow(jointLimitsHigh(i) - jointAngles(i), 2) * std::pow(jointAngles(i) - jointLimitsLow(i), 2) );
......
......@@ -81,14 +81,22 @@ Eigen::VectorXf SingleChainManipulabilityTracking::calculateVelocity(const Eigen
Eigen::Tensor<double, 3> manipJ_sub = subCube(manipJ);
Eigen::MatrixXd matManipJ = computeManipulabilityJacobianMandelNotation(manipJ_sub);
Eigen::MatrixXd dampedLSI;
if (jointLimitAvoidance)
{
// Compute weighted manipulability Jacobian
Eigen::MatrixXd jointsWeightMatrix = getJointsLimitsWeightMatrix(manipulability->getJointAngles(), manipulability->getJointLimitsLow(), manipulability->getJointLimitsHigh());
matManipJ = matManipJ * jointsWeightMatrix;
// Compute pseudo-inverse of weighted manipulability Jacobian
double dampingFactor = getDamping(matManipJ);
dampedLSI = jointsWeightMatrix * dampedLeastSquaresInverse(matManipJ, dampingFactor);
}
double dampingFactor = getDamping(matManipJ);
Eigen::MatrixXd dampedLSI = dampedLeastSquaresInverse(matManipJ, dampingFactor);
else{
// Compute pseudo-inverse of manipulability Jacobian
double dampingFactor = getDamping(matManipJ);
dampedLSI = dampedLeastSquaresInverse(matManipJ, dampingFactor);
}
Eigen::MatrixXd manipulability_mandel = symMatrixToVector(manipulability_velocity);
Eigen::VectorXd dq = dampedLSI * (gainMatrix.rows() == 0 ? getDefaultGainMatrix() : gainMatrix) * manipulability_mandel;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment