This commit is contained in:
Max Hunt 2020-02-09 10:59:29 +00:00
parent d7d20f4559
commit 1f092ee58a

27
main.py
View File

@ -213,7 +213,9 @@ bricks_start =[{
class PickAndPlace(object): class PickAndPlace(object):
def __init__(self, limb, hover_distance = 0.10, verbose=True): def __init__(self, limb, hover_distance = 0.10, verbose=True, speed=0.9, accuracy=baxter_interface.settings.JOINT_ANGLE_TOLERANCE):
self._speed = speed
self._accuracy = accuracy
self._limb_name = limb # string self._limb_name = limb # string
self._hover_distance = hover_distance # in meters self._hover_distance = hover_distance # in meters
self._verbose = verbose # bool self._verbose = verbose # bool
@ -272,7 +274,9 @@ class PickAndPlace(object):
def _guarded_move_to_joint_position(self, joint_angles): def _guarded_move_to_joint_position(self, joint_angles):
if joint_angles: if joint_angles:
self._limb.move_to_joint_positions(joint_angles) self._limb.set_joint_position_speed(_speed)
self._limb.move_to_joint_positions(joint_angles, timeout=20.0, threshold=self._accuracy)
self._limb.set_joint_position_speed(0.3)
else: else:
rospy.logerr("No Joint Angles provided for move_to_joint_positions. Staying put.") rospy.logerr("No Joint Angles provided for move_to_joint_positions. Staying put.")
@ -337,6 +341,12 @@ class PickAndPlace(object):
self._retract() self._retract()
def cleanup():
delete_model = rospy.ServiceProxy('/gazebo/delete_model', DeleteModel)
for group in [[table], bricks_start, bricks_end]:
for obj in group:
delete_model(obj['id'])
def load_objects(): def load_objects():
# Load Table SDFs # Load Table SDFs
@ -369,6 +379,8 @@ def load_objects():
rospy.init_node("ik_pick_and_place_demo") rospy.init_node("ik_pick_and_place_demo")
cleanup()
hover_distance = 0.1 # meters hover_distance = 0.1 # meters
# Starting Pose for left arm # Starting Pose for left arm
left_pose = Pose() left_pose = Pose()
@ -397,13 +409,14 @@ right_pnp = PickAndPlace('right', hover_distance)
left_pnp.move_to_start(left_pnp.ik_request(left_pose)) left_pnp.move_to_start(left_pnp.ik_request(left_pose))
right_pnp.move_to_start(right_pnp.ik_request(right_pose)) right_pnp.move_to_start(right_pnp.ik_request(right_pose))
load_objects()
pose1 = Pose() # pose1 = Pose()
pose1.position = Point(x=bricks_start[0]['x'], y=bricks_start[0]['y'], z=bricks_start[0]['z']) # pose1.position = Point(x=bricks_start[0]['x'], y=bricks_start[0]['y'], z=bricks_start[0]['z'])
hqo = quaternion_from_euler(bricks_start[0]['roll'], bricks_start[0]['pitch'], bricks_start[0]['yaw']) # hqo = quaternion_from_euler(bricks_start[0]['roll'], bricks_start[0]['pitch'], bricks_start[0]['yaw'])
pose1.orientation = Quaternion(hqo[0], hqo[1], hqo[2], hqo[3]) # pose1.orientation = Quaternion(hqo[0], hqo[1], hqo[2], hqo[3])
right_pnp.move_to_start(right_pnp.ik_request(pose1)) # right_pnp.move_to_start(right_pnp.ik_request(pose1))