Hi ROS community,
I’m a high school student and wanted to share a package I’ve just released into the Jazzy distribution: scan_detection_fusion, a reusable ROS 2 library that fuses 2D LiDAR scans with camera object detections to produce range-resolved, semantically labeled obstacles and class-aware ground footprints for navigation.
The problem it solves: a monocular detector knows what an object is and roughly which direction it lies, but not how far away it is. A 2D LiDAR knows precise distance at every bearing but nothing about what it’s seeing. This package marries the two — matching each detection’s bearing to LiDAR returns in that direction, estimating a robust range, projecting to the map frame, and publishing both a labeled object registry and reconstructed PolygonStamped footprints for Nav2’s obstacle layer.
Install:
sudo apt install ros-jazzy-scan-detection-fusion
wo contributions beyond baseline fusion:
- Semantic zone routing — LiDAR sampling is directed to the vertical region where a given class actually intersects the scan plane, so range estimates reflect the physical object rather than background
- Class-aware footprint reconstruction — each obstacle gets a W×D ground polygon oriented to the line of sight, with width refined from the observed LiDAR arc when evidence supports it
Interface: subscribes to vision_msgs/Detection2DArray and sensor_msgs/LaserScan, publishes a JSON object registry, visualization_msgs/MarkerArray for RViz, and geometry_msgs/PolygonStamped per object for Nav2. All topic names and frames are parameters so it drops into existing graphs without remapping. camera_info is used for pixel→angle conversion when available, with an hfov_deg fallback.
The algorithm lives in a ROS-free LidarCameraFuser class so it can be unit tested and reused without a ROS graph — 32-test pytest suite included, CI on every push.
This came out of the SmartCane project, an AI-powered assistive navigation device for visually impaired users. The fusion pipeline is described in a paper submitted to IEEE WF-PST.
Source: GitHub - HexboxRC/scan_detection_fusion: LiDAR-Camera Fusion for ROS2 · GitHub
Index: scan_detection_fusion - ROS Package Overview
Feedback, issues, and PRs welcome — especially if you’re running it on a robot with a different detector or LiDAR setup.