This ROS 2 node performs real-time human detection and tracking using an RGB-D camera (Intel RealSense) and publishes 3D positions of detected people.
It combines:
- YOLO (Ultralytics) for person detection
- BoT-SORT / ByteTrack for multi-object tracking
- Intel RealSense depth data for 3D localization
The output is published as a PoseArray message containing the 3D positions of tracked humans.
- Real-time human detection (class: person only)
- Persistent tracking IDs across frames
- 3D position estimation using depth data
- ROS 2 topic publishing (
/tracked_poses) - Live visualization with bounding boxes, IDs, and coordinates
- FPS display for performance monitoring
- Intel RealSense camera (e.g. D455)
- GPU recommended (CUDA-compatible)
- ROS 2 (tested on Humble or newer)
- Python 3.8+
pip install ultralytics opencv-python numpy pyrealsense2tracker_publisher
tracked_poses (geometry_msgs/PoseArray)
Contains the 3D positions of all tracked humans.
position.x: horizontal position (meters)position.y: vertical position (meters)position.z: depth (meters)
Orientation is not used.