feat: person-following control loop #55
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "sl-controls/person-follower"
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
Adds
saltybot_followerROS2 package — proportional person-following controller for Phase 2b.Architecture
Controller
linear.x = kp_linear × (distance − follow_dist),angular.z = kp_angular × bearing/local_costmap/costmap; zeroes forward cmd_vel if occupied cell ≥ threshold; turning still allowedLost-target state machine
FOLLOWING/person/targetreceivedSTOPPINGlost_timeout(2s)SEARCHINGsearch_timeout(5s)Mode integration
follow_enabledparam (defaulttrue) — disable without stopping node:ros2 param set /person_follower follow_enabled falseFiles
saltybot_follower/person_follower_node.pyconfig/person_follower_params.yamllaunch/person_follower.launch.pytest/test_person_follower.pypackage.xml,setup.py,setup.cfgTest coverage
53 tests covering: clamp, geometry (distance/bearing), linear/angular cmd, obstacle suppression, costmap check, state machine transitions, search/stop behaviour, follow_enabled gate.
Usage
Prerequisites
cmd_vel_bridge_node(saltybot_bridge PR #46) running on the serial portperson_detectorpublishing/person/target