add far grasps
This commit is contained in:
@@ -74,6 +74,9 @@ class ArmGraspController:
|
|||||||
def distance_from_shoulder(self, pos):
|
def distance_from_shoulder(self, pos):
|
||||||
return self.distance(self.vec_diff(pos, self.get_shoulder_pos()))
|
return self.distance(self.vec_diff(pos, self.get_shoulder_pos()))
|
||||||
|
|
||||||
|
def distance_from_shoulder_start(self, pos):
|
||||||
|
return self.distance(self.vec_diff(pos, self.start_pos_shoulder))
|
||||||
|
|
||||||
def move_wrist(self, new_pos: Tuple[float]):
|
def move_wrist(self, new_pos: Tuple[float]):
|
||||||
"""Moves wrist to new position.
|
"""Moves wrist to new position.
|
||||||
|
|
||||||
@@ -106,6 +109,23 @@ class ArmGraspController:
|
|||||||
|
|
||||||
self.move_wrist(new_pos)
|
self.move_wrist(new_pos)
|
||||||
|
|
||||||
|
# Moves the arm, with the shoulder always moving back to its original position.
|
||||||
|
def move_arm_rel(self, new_pos: Tuple[float]):
|
||||||
|
if(self.distance_from_shoulder_start(new_pos) <= self.arm_range):
|
||||||
|
# Do standard move
|
||||||
|
self.move_wrist(new_pos)
|
||||||
|
# Move shoulder back to start location
|
||||||
|
self.move_shoulder(self.start_pos_shoulder)
|
||||||
|
else:
|
||||||
|
# Combine both shoulder and arm move
|
||||||
|
shoulder_pos = self.start_pos_shoulder
|
||||||
|
diff = self.vec_diff(new_pos, shoulder_pos)
|
||||||
|
diff_2 = self.vec_diff(diff, [i*self.arm_range for i in self.normalize_vec(diff)])
|
||||||
|
move = self.vec_add(shoulder_pos, diff_2)
|
||||||
|
self.move_shoulder(move)
|
||||||
|
|
||||||
|
self.move_wrist(new_pos)
|
||||||
|
|
||||||
def move_back(self):
|
def move_back(self):
|
||||||
self.move_shoulder(self.start_pos_shoulder)
|
self.move_shoulder(self.start_pos_shoulder)
|
||||||
self.move_wrist(self.start_pos_wrist)
|
self.move_wrist(self.start_pos_wrist)
|
||||||
@@ -175,5 +195,5 @@ z_rand = RandomBounds(-3, 2)
|
|||||||
|
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
bpy.context.scene.frame_set(frame_number)
|
bpy.context.scene.frame_set(frame_number)
|
||||||
controller.move_arm([x_rand.random(), y_rand.random(), z_rand.random()])
|
controller.move_arm_rel([x_rand.random(), y_rand.random(), z_rand.random()])
|
||||||
frame_number += 20
|
frame_number += 20
|
||||||
|
|||||||
Reference in New Issue
Block a user