Skip to content

feat: add autoware_lanelet2_map_merger package#410

Open
mitsudome-r wants to merge 7 commits into
autowarefoundation:mainfrom
mitsudome-r:feat/add-autoware-lanelet2-map-merger
Open

feat: add autoware_lanelet2_map_merger package#410
mitsudome-r wants to merge 7 commits into
autowarefoundation:mainfrom
mitsudome-r:feat/add-autoware-lanelet2-map-merger

Conversation

@mitsudome-r

@mitsudome-r mitsudome-r commented Apr 22, 2026

Copy link
Copy Markdown
Member

Description

Part of autowarefoundation/autoware_core#887

Add a new autoware_lanelet2_map_merger package that merges a directory of divided Lanelet2 (.osm) map files into a single .osm file.

  • New ROS 2 node autoware_lanelet2_map_merger_node with launch file, parameter YAML, and JSON schema.
  • Loads every .osm file in the input directory using the projector described in map_projector_info.yaml (MGRS, LocalCartesianUTM, LocalCartesian, and TransverseMercator are supported).
  • Merges the loaded maps using the same logic as lanelet2_map_loader (merge_lanelet2_maps), deduplicating points shared across maps by ID so successor/predecessor relationships are preserved, then writes the merged map with lanelet::write.
  • Includes README and a gtest covering the merge behavior.

How was this PR tested?

  • Built the package with colcon build --packages-select autoware_lanelet2_map_merger.
  • Ran the included gtest suite (test_lanelet2_map_merger) via colcon test.
  • Verified end-to-end round-trip by running autoware_lanelet2_map_divider on a sample lanelet2_map.osm and then running this merger on its output, confirming the reconstructed map matches the original.

Notes for reviewers

None.

Effects on system behavior

None.

@github-actions

github-actions Bot commented Apr 22, 2026

Copy link
Copy Markdown

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new ROS 2 “map tool” package that merges a directory of divided Lanelet2 .osm files back into a single .osm, using a projector described by map_projector_info.yaml and preserving shared-point IDs to keep topology consistent.

Changes:

  • Introduces autoware_lanelet2_map_merger library + component node to discover, load, merge, and write Lanelet2 maps.
  • Adds launch/config + parameter JSON schema and README documentation.
  • Adds a gtest that exercises merge/dedup and reload behavior.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
map/autoware_lanelet2_map_merger/src/lanelet2_map_merger.cpp Core discovery/load/merge/write implementation.
map/autoware_lanelet2_map_merger/src/lanelet2_map_merger.hpp Merger class interface and state (loaded map lifetime).
map/autoware_lanelet2_map_merger/src/lanelet2_map_merger_node.cpp One-shot ROS 2 node wrapper that runs the merger from parameters.
map/autoware_lanelet2_map_merger/src/lanelet2_map_merger_node.hpp Node class declaration.
map/autoware_lanelet2_map_merger/src/local_projector.hpp Minimal projector used for LOCAL projector-type handling.
map/autoware_lanelet2_map_merger/test/test_lanelet2_map_merger.cpp Unit tests for merge/dedup + reload + non-crash behavior.
map/autoware_lanelet2_map_merger/CMakeLists.txt Build/test targets and component registration.
map/autoware_lanelet2_map_merger/package.xml Package metadata and dependencies.
map/autoware_lanelet2_map_merger/launch/lanelet2_map_merger.launch.xml Launch entrypoint wiring parameters.
map/autoware_lanelet2_map_merger/config/lanelet2_map_merger.param.yaml Default parameter file using launch substitutions.
map/autoware_lanelet2_map_merger/schema/lanelet2_map_merger.schema.json Parameter schema for documentation/validation.
map/autoware_lanelet2_map_merger/README.md Usage and behavior documentation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread map/autoware_lanelet2_map_merger/src/lanelet2_map_merger.cpp
Comment thread map/autoware_lanelet2_map_merger/test/test_lanelet2_map_merger.cpp
Comment thread map/autoware_lanelet2_map_merger/test/test_lanelet2_map_merger.cpp
Comment thread map/autoware_lanelet2_map_merger/test/test_lanelet2_map_merger.cpp Outdated
Comment thread map/autoware_lanelet2_map_merger/CMakeLists.txt
Comment thread map/autoware_lanelet2_map_merger/src/lanelet2_map_merger.cpp
Comment thread map/autoware_lanelet2_map_merger/src/lanelet2_map_merger.cpp
@mitsudome-r mitsudome-r marked this pull request as draft April 24, 2026 04:13
@mitsudome-r mitsudome-r marked this pull request as ready for review April 28, 2026 02:42
mitsudome-r and others added 7 commits April 28, 2026 11:42
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
Signed-off-by: Ryohsuke Mitsudome <ryohsuke.mitsudome@tier4.jp>
@mitsudome-r mitsudome-r force-pushed the feat/add-autoware-lanelet2-map-merger branch from 8a0b919 to 8e10f11 Compare April 28, 2026 02:42
@codecov

codecov Bot commented Apr 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 24.74227% with 73 lines in your changes missing coverage. Please review.
✅ Project coverage is 7.08%. Comparing base (700c544) to head (8e10f11).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...re_lanelet2_map_merger/src/lanelet2_map_merger.cpp 20.27% 15 Missing and 44 partials ⚠️
...nelet2_map_merger/src/lanelet2_map_merger_node.cpp 0.00% 12 Missing and 1 partial ⚠️
...toware_lanelet2_map_merger/src/local_projector.hpp 83.33% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##            main    #410      +/-   ##
========================================
+ Coverage   7.02%   7.08%   +0.05%     
========================================
  Files        497     501       +4     
  Lines      32735   32818      +83     
  Branches    3736    3793      +57     
========================================
+ Hits        2301    2325      +24     
- Misses     29079   29100      +21     
- Partials    1355    1393      +38     
Flag Coverage Δ *Carryforward flag
differential-jazzy 24.74% <24.74%> (?)
total 3.33% <ø> (+<0.01%) ⬆️ Carriedforward from 700c544
total-humble 4.93% <ø> (+<0.01%) ⬆️ Carriedforward from 700c544
total-jazzy 4.77% <ø> (+<0.01%) ⬆️ Carriedforward from 700c544

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants