Skip to content

Commit a3fea80

Browse files
committed
VIC-14320 Add erase enrolled face event (#164)
1 parent f2f661e commit a3fea80

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

anki_vector/events.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ class Events(Enum):
5151
robot_observed_motion = "robot_observed_motion" #: Robot event dispatched when Vector observes motion.
5252
robot_observed_face = "robot_observed_face" #: Robot event for when a face is observed by the robot.
5353
robot_changed_observed_face_id = "robot_changed_observed_face_id" #: Robot event for when a known face changes its id.
54+
robot_erased_enrolled_face = "robot_erased_enrolled_face" #: Robot event for when an enrolled face has been removed from the robot.
5455

5556
wake_word = "wake_word" #: Robot event triggered when Vector hears "Hey Vector".
5657
user_intent = "user_intent" #: Robot event triggered after Vector processes voice commands.

anki_vector/faces.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ class FaceComponent(util.Component):
571571
"""Manage the state of the faces on the robot."""
572572

573573
@connection.on_connection_thread(requires_control=False)
574-
async def request_enrolled_names(self) -> protocol.RequestEnrolledNamesRequest:
574+
async def request_enrolled_names(self) -> protocol.RequestEnrolledNamesResponse:
575575
"""Asks the robot for the list of names attached to faces that it can identify.
576576
577577
.. testcode::
@@ -612,10 +612,24 @@ async def erase_enrolled_face_by_id(self, face_id: int):
612612
613613
.. testcode::
614614
615+
import time
615616
import anki_vector
617+
from anki_vector.events import Events
618+
619+
def on_robot_erased_enrolled_face(robot, event_type, event):
620+
print(f"Face has been erased from robot. Event: {event_type} = {event}")
616621
617622
with anki_vector.Robot() as robot:
618-
robot.faces.erase_enrolled_face_by_id(1)
623+
robot.events.subscribe(on_robot_erased_enrolled_face, Events.robot_erased_enrolled_face)
624+
625+
name_data_list = robot.faces.request_enrolled_names()
626+
print(f"Enrolled names: {name_data_list}")
627+
628+
# Deletes all enrolled faces from Vector. Use with care!
629+
for face in name_data_list.faces:
630+
robot.faces.erase_enrolled_face_by_id(face.face_id)
631+
632+
time.sleep(3)
619633
"""
620634
req = protocol.EraseEnrolledFaceByIDRequest(face_id=face_id)
621635
return await self.grpc_interface.EraseEnrolledFaceByID(req)

0 commit comments

Comments
 (0)