diff --git a/ur5_control.py b/ur5_control.py index d52243b..50b3944 100755 --- a/ur5_control.py +++ b/ur5_control.py @@ -290,18 +290,21 @@ def get_joints_from_xyz_abs(x, y, z, rx=0, ry=-math.pi/2, rz=math.pi/2, l3offset # gripper angle: from vertical # gripper length: from joint to start of grip # to flip, you can use flip=True or make gripper angle negative -def offset_gripper_angle(x, y, z, gripperangle=35, gripperlength=0.2, flip=False): +def offset_gripper_angle(x, y, z, gripperangle=35, gripperlength=0.20+0.018, flip=False): if gripperangle < 0: rz = - math.pi / 2 else: rz = math.pi / 2 + if flip: gripperangle = -degtorad(gripperangle) grippery = gripperlength - math.cos(gripperangle) * gripperlength - grippery -= math.sin(gripperangle) * limb3 - gripperx = math.sin(gripperangle) * gripperlength - gripperx += (1-math.cos(gripperangle)) * limb3 + grippery += math.sin(gripperangle) * limb3 + gripperx = math.sin(gripperangle) * gripperlength + limb3 * 2 + gripperx -= (1-math.cos(gripperangle)) * limb3 rz = - math.pi / 2 + # flip the whole wrist + return get_joints_from_xyz_abs(x, y, z-grippery, rx=gripperangle + degtorad(180), l3offset=-gripperx, ry=math.pi/2, rz=rz) else: gripperangle = degtorad(gripperangle) grippery = gripperlength - math.cos(gripperangle) * gripperlength @@ -309,7 +312,7 @@ def offset_gripper_angle(x, y, z, gripperangle=35, gripperlength=0.2, flip=False gripperx = math.sin(gripperangle) * gripperlength gripperx += (1-math.cos(gripperangle)) * limb3 - return get_joints_from_xyz_abs(x, y, z-grippery, rx=gripperangle, l3offset=-gripperx, rz=rz) + return get_joints_from_xyz_abs(x, y, z-grippery, rx=gripperangle, l3offset=-gripperx, rz=rz) def goto_holder_index(idx, z=0.05, gripperangle=35, flip=False): @@ -394,15 +397,24 @@ if __name__ == "__main__": #for i in np.linspace(0, 340, 340): # joints.append(goto_holder_index(24, 0.5, i)) #rob.movejs(joints, acc=1, vel=3) - - rob.movej(goto_holder_index(26, 0.2, 0), acc=2, vel=2) - rob.movej(goto_holder_index(26, 0.2, 35), acc=2, vel=2) - rob.movej(goto_holder_index(24, 0.2, -10), acc=2, vel=2) - rob.movej(goto_holder_index(24, 0.2, -15), acc=2, vel=2) - rob.movej(goto_holder_index(24, 0.2, -20), acc=2, vel=2) - rob.movej(goto_holder_index(24, 0.2, -28), acc=2, vel=2) - rob.movej(goto_holder_index(24, 0.2, -35), acc=2, vel=2) - #rob.movej(goto_holder_index(24, 0.2, 60, flip=True), acc=2, vel=2) + angle = 30 + rob.movej(goto_holder_index(26, 0.2, angle), acc=2, vel=2) + rob.movej(goto_holder_index(32, 0.2, angle), acc=2, vel=2) + rob.movej(goto_holder_index(38, 0.2, angle), acc=2, vel=2) + + rob.movej(goto_holder_index(25, 0.2, angle, flip=True), acc=2, vel=2) + + rob.movej(goto_holder_index(24, 0.3, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(24, 0.2, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(24, 0.0, angle, flip=True), acc=2, vel=2) + time.sleep(1) + rob.movej(goto_holder_index(25, 0.1, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(25, 0.1, angle), acc=2, vel=2) + rob.movej(goto_holder_index(49, 0.1, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(50, 0.1, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(51, 0.1, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(52, 0.1, angle, flip=True), acc=2, vel=2) + rob.movej(goto_holder_index(53, 0.1, angle, flip=True), acc=2, vel=2) #time.sleep(2) #rob.movej(goto_holder_index(24, 0.15, 35, flip=True), acc=2, vel=2) #time.sleep(10)