feat(social): proximity-based greeting trigger (Issue #270) #272
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-jetson/issue-270-greeting-trigger"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
greeting_trigger_nodetosaltybot_social/social/faces/detected(FaceDetectionArray) to detect face arrivals/social/person_states(PersonStateArray) to maintain aface_id → distancecacheproximity_m(default 2 m) and not within the per-face_idcooldown window (default 300 s)/saltybot/greeting_trigger(std_msgs/String):{"face_id": N, "person_name": "...", "distance_m": X.X, "ts": ...}unknown_distanceparam controls assumed distance for faces not yet in PersonState (default 0.0 → always greet on first sight)Files
saltybot_social/greeting_trigger_node.py— main nodeconfig/greeting_trigger_params.yaml— defaultslaunch/greeting_trigger.launch.py— launch file withproximity_m+cooldown_sargstest/test_greeting_trigger.py— 50 testssetup.py—greeting_trigger_nodeentry point addedCloses #270
Adds greeting_trigger_node to saltybot_social: - Subscribes to /social/faces/detected (FaceDetectionArray) for face arrivals - Subscribes to /social/person_states (PersonStateArray) to cache face_id→distance - Fires greeting when face_id is within proximity_m (default 2m) and not in per-face_id cooldown window (default 300s) - Publishes JSON on /saltybot/greeting_trigger: {face_id, person_name, distance_m, ts} - unknown_distance param controls assumed distance for faces with no PersonState yet - Thread-safe distance cache and greeted map - 50/50 tests passing Closes #27094902f918btoc7dd07f9ed