Skip to content
Snippets Groups Projects
Commit 8eb05a3c authored by armar6-user's avatar armar6-user
Browse files

added getPositionDiff and getOrientationDiff

parent 18e38b66
No related branches found
No related tags found
No related merge requests found
Pipeline #
......@@ -83,3 +83,19 @@ float CartesianPositionController::getOrientationError(const Eigen::Matrix4f& ta
Eigen::AngleAxisf aa(oriDir);
return aa.angle();
}
Eigen::Vector3f CartesianPositionController::getPositionDiff(const Eigen::Matrix4f& targetPose)
{
Eigen::Vector3f targetPos = targetPose.block<3, 1>(0, 3);
return targetPos - tcp->getPositionInRootFrame();
}
Eigen::Vector3f CartesianPositionController::getOrientationDiff(const Eigen::Matrix4f& targetPose)
{
Eigen::Matrix3f targetOri = targetPose.block<3, 3>(0, 0);
Eigen::Matrix3f tcpOri = tcp->getPoseInRootFrame().block<3, 3>(0, 0);
Eigen::Matrix3f oriDir = targetOri * tcpOri.inverse();
Eigen::AngleAxisf aa(oriDir);
return aa.axis() * aa.angle();
}
......@@ -45,6 +45,8 @@ namespace armarx
float getPositionError(const Eigen::Matrix4f& targetPose);
float getOrientationError(const Eigen::Matrix4f& targetPose);
Eigen::Vector3f getPositionDiff(const Eigen::Matrix4f& targetPose);
Eigen::Vector3f getOrientationDiff(const Eigen::Matrix4f& targetPose);
//CartesianVelocityController velocityController;
float KpPos = 1;
......
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