scan_detection_fusion — LiDAR + camera fusion library for ROS 2 Jazzy

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.

1 Like