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.
- How to start
- The project's README (opens in a new tab)
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.
Links
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.