Skip to content

scan_detection_fusion

  • Software
  • Perception
  • Tool

A ROS 2 library that fuses 2D camera object detections with a planar LiDAR scan to give labeled obstacles with range estimates and ground footprint polygons for navigation.

Source on GitHub: github.com/HexboxRC/scan_detection_fusion (opens in a new tab). Facts read at commit 0d7de31 (opens in a new tab).

Licenses

Code
Apache-2.0 (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (Apache-2.0) at commit 0d7de31 (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Matches each detection's bearing to LiDAR returns at that bearing and estimates a robust range.
  • Routes LiDAR sampling to the vertical region of each bounding box where the class intersects the scan plane.
  • Publishes a width by depth ground polygon per object, sized from a per-class table and refined from the observed angular span.
  • Projects detected objects into the map frame and publishes them as a JSON registry, RViz markers and footprint polygons.
  • The fusion algorithm is a plain ROS-free Python class, so it can be used and tested without the ROS graph.
  • Targets ROS 2 Jazzy and works with standard vision_msgs detections, camera_info and TF transforms.

Written by Robotheca from the project's README (opens in a new tab) at commit 0d7de31.

Getting started

Difficulty
Intermediate
Hardware it needs, as the project states it
A planar 2D LiDAR publishing a LaserScan, and a camera-based object detector; a camera driver supplying camera_info is optional.

Maintenance

Status
Active: a commit in the last 90 days
Newest commit
6 Sept 2026 on main
Latest release
None published on GitHub

Checked on GitHub on 16 Oct 2026.

Robots that can run it

No robot on Robotheca is linked to it yet. Links come from a robot's robot.yaml, from its dependency files read as text, or from Robotheca's editors.

Robotheca lists software as a reference: nothing is hosted or run here, and every fact links to where it was read.