Impact of Gripper’s Roll Angle on Reachable Poses for UR5e Robot
When I change the roll angle of the gripper, as demonstrated in my example code, the number of reachable poses varies for each roll angle. I’ve tested this with the same number of reference bodies (bodyName). The results were 411, 540, 513, and 547 reachable poses for different roll angles. I understand that this variation arises because each roll angle results in a different final configuration for the robot, affecting the GIK (Generalized Inverse Kinematics) solution. However, for a UR5e robot, this variation should not occur in real, right ? In practical use, can the UR5e achieve all 547 (assuming it’s the maximum it’s capable of reaching in this case) reachable poses for each roll angle?
for orientationIdx = 1:size(orientationsToTest,1)
for rollIdx = 1:numRollAngles
orientationsToTest(:,3) = rollAngles(rollIdx);
currentOrientation = orientationsToTest(orientationIdx,:);
targetPose = constraintPoseTarget(gripper);
targetPose.ReferenceBody = bodyName; %reference body
targetPose.TargetTransform = trvec2tform([0 0 0]) * eul2tform(currentOrientation,"XYZ");
[qWaypoints(2,:),solutionInfo] = gik_Pick(q0,targetPose);
end
endWhen I change the roll angle of the gripper, as demonstrated in my example code, the number of reachable poses varies for each roll angle. I’ve tested this with the same number of reference bodies (bodyName). The results were 411, 540, 513, and 547 reachable poses for different roll angles. I understand that this variation arises because each roll angle results in a different final configuration for the robot, affecting the GIK (Generalized Inverse Kinematics) solution. However, for a UR5e robot, this variation should not occur in real, right ? In practical use, can the UR5e achieve all 547 (assuming it’s the maximum it’s capable of reaching in this case) reachable poses for each roll angle?
for orientationIdx = 1:size(orientationsToTest,1)
for rollIdx = 1:numRollAngles
orientationsToTest(:,3) = rollAngles(rollIdx);
currentOrientation = orientationsToTest(orientationIdx,:);
targetPose = constraintPoseTarget(gripper);
targetPose.ReferenceBody = bodyName; %reference body
targetPose.TargetTransform = trvec2tform([0 0 0]) * eul2tform(currentOrientation,"XYZ");
[qWaypoints(2,:),solutionInfo] = gik_Pick(q0,targetPose);
end
end When I change the roll angle of the gripper, as demonstrated in my example code, the number of reachable poses varies for each roll angle. I’ve tested this with the same number of reference bodies (bodyName). The results were 411, 540, 513, and 547 reachable poses for different roll angles. I understand that this variation arises because each roll angle results in a different final configuration for the robot, affecting the GIK (Generalized Inverse Kinematics) solution. However, for a UR5e robot, this variation should not occur in real, right ? In practical use, can the UR5e achieve all 547 (assuming it’s the maximum it’s capable of reaching in this case) reachable poses for each roll angle?
for orientationIdx = 1:size(orientationsToTest,1)
for rollIdx = 1:numRollAngles
orientationsToTest(:,3) = rollAngles(rollIdx);
currentOrientation = orientationsToTest(orientationIdx,:);
targetPose = constraintPoseTarget(gripper);
targetPose.ReferenceBody = bodyName; %reference body
targetPose.TargetTransform = trvec2tform([0 0 0]) * eul2tform(currentOrientation,"XYZ");
[qWaypoints(2,:),solutionInfo] = gik_Pick(q0,targetPose);
end
end matlab MATLAB Answers — New Questions