feat(social): hand gesture pointing direction node (Issue #221) #226
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-perception/issue-221-pointing"
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
saltybot_social_msgs: AddPointingTarget.msg(3-D ray origin/direction/target, range, person_id, confidence, coarse_direction, is_active); register in CMakeLists.txtsaltybot_social/_pointing_ray.py(pure Python, no rclpy):unproject()pixel+depth→3-D;sample_depth()median with outlier rejection;compute_pointing_ray()— reprojects INDEX_MCP (knuckle) and INDEX_TIP into 3-D using D435i depth, forms unit direction vector, handles single-side missing depth gracefully, falls back to image-plane direction when 3-D points coincidesaltybot_social/pointing_node.py: subscribes/social/gestures+ ApproximateTimeSynchronizer on D435i colour+depth; re-runs MediaPipe Hands only when a freshpointgesture is cached; picks hand closest to gesture anchor; publishes/saltybot/pointing_target(PointingTarget) at 5 Hz via timerCloses #221
Test plan
python3 -m pytest test/test_pointing.py -v— 18 passed/saltybot/pointing_targetpublishes withis_active=truetargetXYZ matches the pointed-at surfaceis_activegoes false after gesture timeout🤖 Generated with Claude Code