notmartin commited on
Commit
c0f9062
·
unverified ·
1 Parent(s): d26e992

feat: add gesture playback and return-to-rest

Browse files
Files changed (1) hide show
  1. mr_reachy/expressions.py +15 -0
mr_reachy/expressions.py CHANGED
@@ -91,3 +91,18 @@ REST = create_head_pose(mm=True, degrees=True)
91
 
92
  def _pose(frame: Frame):
93
  return create_head_pose(mm=True, degrees=True, **frame.head)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
91
 
92
  def _pose(frame: Frame):
93
  return create_head_pose(mm=True, degrees=True, **frame.head)
94
+
95
+
96
+ def play(reachy, emotion: str, stop_event: threading.Event | None = None) -> None:
97
+ """Play a named gesture sequence. Blocks until finished (or stop_event set)."""
98
+ frames = GESTURES.get(emotion, GESTURES["neutral"])
99
+ for frame in frames:
100
+ if stop_event is not None and stop_event.is_set():
101
+ break
102
+ reachy.goto_target(
103
+ head=_pose(frame), antennas=list(frame.antennas), duration=frame.duration
104
+ )
105
+
106
+
107
+ def go_rest(reachy, duration: float = 0.4) -> None:
108
+ reachy.goto_target(head=REST, antennas=[0.0, 0.0], duration=duration)