Skip to content

2D Scan Merger (scan_2d_merger)

  • Software
  • Perception
  • Tool

A ROS2 composable node that merges any number of 2D LiDAR scans into one LaserScan, using approximate-time synchronization and parallel ray projection.

Source on GitHub: github.com/ali-pahlevani/2D_Scan_Merger_ROS2 (opens in a new tab). Facts read at commit 9d670ad (opens in a new tab).

Licenses

Code
MIT (opens in a new tab)

Read by Robotheca from LICENSE (opens in a new tab) (MIT) at commit 9d670ad (opens in a new tab), on 16 Oct 2026.

Commercial use
Yes

What it does

  • Subscribes to any number of LaserScan topics and synchronises them by timestamp within a configurable window.
  • Transforms each scan into a shared reference frame with TF2 and projects all rays into common angular bins.
  • Keeps the closest reading per angular bin, so overlapping fields of view are combined by minimum range.
  • Uses a persistent thread pool with barriers to project multiple scans in parallel.
  • Offers height filtering, range filtering, per-topic QoS, and optional intensity output.
  • Can be run inside a component container or as a standalone process, with a demo launch and integration tests.

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

Getting started

Difficulty
Beginner
Hardware it needs, as the project states it
ROS2 Humble or newer with a C++20-capable compiler (GCC 11+ on Ubuntu 22.04, GCC 13+ on Ubuntu 24.04) and a TF tree linking each scanner frame to the merged frame.

Maintenance

Status
Active: a commit in the last 90 days
Newest commit
23 Jul 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.