How hp092/human-following-robot works
This ROS 2 application detects a person from OAK-D video, estimates bearing and LiDAR distance, filters target state, computes following or search motion, and gates commands through safety checks before forwarding them to the TurtleBot base. The graph separates sensing, perception, behavior, safety, and actuation. The sampled files confirm the main topic flow; some documented multi-person tracking behavior is represented as an available component, but its integration into target_tracker is not visible in the excerpt.
Components 12
Perception
- Target Tracker
person_follower/target_tracker.py
Behavior
- Follow Controller
person_follower/follow_controller.py
Safety Actuation
- Safety Supervisor
person_follower/safety_supervisor.py - Command Adapter
person_follower/person_follower.py
Tracking Internals
- Tracking Filters
person_follower/target_tracker.py - Multi-Person Tracker
person_follower/multi_tracker.py
Other components
- Person / Operator
- OAK-D Camera
- 2D LiDAR
- TurtleBot Base
- YOLOv8 Model
- RViz Visualizer
Connections 15
- OAK-D Camera → Target Tracker: sends frames
- 2D LiDAR → Target Tracker: sends scans
- YOLOv8 Model → Target Tracker: runs inference
- Target Tracker → Tracking Filters: filters measurements
- Tracking Filters → Target Tracker: returns state
- Target Tracker → Follow Controller: publishes target state
- Person / Operator → Follow Controller: sets follow mode
- Follow Controller → Safety Supervisor: requests velocity
- OAK-D Camera → Safety Supervisor: heartbeat frames
- 2D LiDAR → Safety Supervisor: checks obstacles
- Target Tracker → Safety Supervisor: reports target
- Safety Supervisor → Command Adapter: gates commands
- Safety Supervisor → Command Adapter: publishes status
- Command Adapter → TurtleBot Base: forwards velocity
- Target Tracker → RViz Visualizer: publishes overlays