mgonzs13/yolo_ros
Ultralytics YOLOv8, YOLOv9, YOLOv10, YOLOv11, YOLOv12 for ROS 2
What it solves
yolo_ros is a ROS 2 wrapper for Ultralytics YOLO models, allowing roboticists to easily integrate advanced computer vision tasks into their robot's software stack. It bridges the gap between raw camera feeds and actionable spatial data, providing a standardized way to perform object detection, tracking, and 3D localization of objects in a robot's environment.
How it works
The package wraps the Ultralytics YOLO library, exposing its capabilities as ROS 2 nodes. It processes RGB images from a camera topic and publishes the results as detections, tracking IDs, and debug images. When configured for 3D detection, it uses depth images from an RGB-D camera to project 2D bounding boxes or segmentation masks into 3D space, calculating 3D bounding boxes and keypoints relative to a target frame (e.g., base_link).
Who it’s for
Developers and researchers working with ROS 2 (Humble, Iron, Jazzy, Kilted, Lyrical, or Rolling) and RGB-D cameras who need to implement object detection, instance segmentation, or human pose estimation for their robots.
Highlights
- Broad Model Support: Compatible with a wide range of YOLO versions (v3 through v12, YOLO-World, YOLOE, and YOLOv26).
- 3D Spatial Awareness: Converts 2D detections into 3D bounding boxes and keypoints using depth data.
- Lifecycle Node Support: Implements ROS 2 lifecycle nodes to optimize resource usage (CPU/VRAM) when the system is inactive.
- Versatile Vision Tasks: Supports object detection, tracking, ByteTrack, instance segmentation, and human pose estimation.
- YOLO-World Support: Includes a service to dynamically update detection classes without restarting the node.
Related
- Project
- Project
- Project
- Project