Skip to content

Commit

Permalink
Merge pull request #983 from tue-robotics/dont-have-named-arm-parts2
Browse files Browse the repository at this point in the history
Dont have named arm parts, try2
  • Loading branch information
LarsJanssenTUe committed Jan 18, 2020
2 parents 38441a3 + a3beddc commit c74cb2f
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 16 deletions.
4 changes: 2 additions & 2 deletions robot_skills/examples/example_arms.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
failed_actions_per_arm = {}

# First make sure the arms are in a known state
for side, arm in robot.arms.items():
for side, arm in robot._arms.items():
robot.speech.speak("I will first reset my {} arm".format(side))
arm.reset()

for side, arm in robot.arms.items():
for side, arm in robot._arms.items():
failed_actions = []
robot.speech.speak("I will test my {} arm".format(side))

Expand Down
4 changes: 2 additions & 2 deletions robot_skills/src/robot_skills/hero.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ def __init__(self, wait_services=False):
self.parts['leftArm'].joint_names = self.parts['leftArm'].load_param('skills/arm/joint_names')

# These don't work for HSR because (then) Toyota's diagnostics aggregator makes the robot go into error somehow
for arm in self.arms.itervalues():
for arm in self._arms.itervalues():
arm.unsubscribe_hardware_status()
for arm in self.arms.itervalues():
for arm in self._arms.itervalues():
arm._operational = True

# verify joint goal required for posing
Expand Down
8 changes: 4 additions & 4 deletions robot_skills/src/robot_skills/mockbot.py
Original file line number Diff line number Diff line change
Expand Up @@ -387,10 +387,10 @@ def __exit__(self, exception_type, exception_val, trace):

head_reset = lambda: mockbot.head.reset()
head_down = lambda: mockbot.head.reset()
right_close = lambda: mockbot.arms['rightArm'].send_gripper_goal_close()
left_close = lambda: mockbot.arms['leftArm'].send_gripper_goal_close()
right_open = lambda: mockbot.arms['rightArm'].send_gripper_goal_open()
left_open = lambda: mockbot.arms['leftArm'].send_gripper_goal_open()
right_close = lambda: mockbot._arms['rightArm'].send_gripper_goal_close()
left_close = lambda: mockbot._arms['leftArm'].send_gripper_goal_close()
right_open = lambda: mockbot._arms['rightArm'].send_gripper_goal_open()
left_open = lambda: mockbot._arms['leftArm'].send_gripper_goal_open()
speak = lambda sentence: mockbot.speech.speak(sentence, block=False)
praat = lambda sentence: mockbot.speech.speak(sentence, language='nl', block=False)
look_at_point = lambda x, y, z: mockbot.head.look_at_point(VectorStamped(x, y, z, frame_id="/mockbot/base_link"))
Expand Down
18 changes: 10 additions & 8 deletions robot_skills/src/robot_skills/robot.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,9 @@ def __init__(self, robot_name="", wait_services=False, tf_listener=None):

# Body parts
self.parts = dict()
self.arms = OrderedDict() # type: OrderedDict[arms.Arm]

# Ensuring arms have a fixed order of iteration.
self._arms = OrderedDict() # type: OrderedDict[arms.Arm]

# Ignore diagnostics: parts that are not present in the real robot
self._ignored_parts = []
Expand Down Expand Up @@ -63,12 +64,13 @@ def add_body_part(self, partname, bodypart):

def add_arm_part(self, arm_name, arm_part):
"""
Add an arm part to the robot. This is added to the parts dictionary and in the self.arms dictionary.
Add an arm part to the robot. This is added to the parts dictionary as well.
:param arm_name: Name of the arm part.
:param arm_part: Arm part object
"""
# Don't add the arm to the robot object to avoid direct access from challenge code.
self.parts[arm_name] = arm_part
self.arms[arm_name] = arm_part
self._arms[arm_name] = arm_part

def configure(self):
"""
Expand Down Expand Up @@ -106,11 +108,11 @@ def configure(self):

@decorators.deprecated_replace_with('robot.get_arm')
def leftArm(self):
return self.arms['leftArm']
return self._arms.get('left')

@decorators.deprecated_replace_with('robot.get_arm')
def rightArm(self):
return self.arms['rightArm']
return self._arms.get('right')

def reset(self):
results = {}
Expand All @@ -127,9 +129,9 @@ def standby(self):
rospy.logerr('Standby only works for amigo')
return

for arm in self.arms.values():
for arm in self._arms.itervalues():
arm.reset()
for arm in self.arms.values():
for arm in self._arms.itervalues():
arm.send_gripper_goal('close')

self.head.look_down()
Expand Down Expand Up @@ -203,7 +205,7 @@ def seq_or_none(obj):
assert seq_or_none(required_objects)
assert seq_or_none(desired_objects)

for arm_name, arm in self.arms.items():
for arm_name, arm in self._arms.iteritems():
if not arm.operational:
discarded_reasons.append((arm_name, "not operational"))
continue
Expand Down

0 comments on commit c74cb2f

Please sign in to comment.