Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
jazzy

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro kilted showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro lyrical showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro rolling showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro ardent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro bouncy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro crystal showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro eloquent showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro dashing showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro galactic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro foxy showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro iron showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro lunar showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro jade showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro indigo showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro hydro showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro kinetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro melodic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange

No version for distro noetic showing humble. Known supported distros are highlighted in the buttons above.
Package symbol

autoware_map_loader package from autoware_core repo

autoware_adapi_adaptors autoware_adapi_specs autoware_core_api autoware_default_adapi autoware_core autoware_agnocast_wrapper autoware_component_interface_admission autoware_component_interface_specs autoware_component_interface_utils autoware_geography_utils autoware_global_parameter_loader autoware_interface_spec_lint autoware_interpolation autoware_kalman_filter autoware_lanelet2_utils autoware_marker_utils autoware_motion_utils autoware_node autoware_object_recognition_utils autoware_osqp_interface autoware_point_types autoware_qos_utils autoware_qp_interface autoware_signal_processing autoware_trajectory autoware_vehicle_info_utils autoware_command_gate autoware_core_control autoware_simple_pure_pursuit autoware_awsim_sensor_kit_description autoware_sample_sensor_kit_description autoware_sample_vehicle_description autoware_core_localization autoware_ekf_localizer autoware_gyro_odometer autoware_localization_util autoware_ndt_scan_matcher autoware_pose_initializer autoware_stop_filter autoware_twist2accel autoware_core_map autoware_lanelet2_map_visualizer autoware_map_height_fitter autoware_map_loader autoware_map_projection_loader autoware_core_perception autoware_euclidean_cluster_object_detector autoware_ground_filter autoware_perception_objects_converter autoware_core_planning autoware_mission_planner autoware_objects_of_interest_marker_interface autoware_path_generator autoware_planning_factor_interface autoware_planning_test_manager autoware_planning_topic_converter autoware_route_handler autoware_velocity_smoother autoware_behavior_velocity_planner autoware_behavior_velocity_planner_common autoware_behavior_velocity_stop_line_module autoware_motion_velocity_obstacle_stop_module autoware_motion_velocity_planner autoware_motion_velocity_planner_common autoware_core_sensing autoware_crop_box_filter autoware_downsample_filters autoware_gnss_poser autoware_vehicle_velocity_converter autoware_pyplot autoware_test_node autoware_test_utils autoware_testing autoware_core_vehicle

ROS Distro
humble

Package Summary

Version 1.10.0
License Apache License 2.0
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/autowarefoundation/autoware_core.git
VCS Type git
VCS Version main
Last Updated 2026-10-07
Dev Status DEVELOPED
Released RELEASED
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The autoware_map_loader package

Maintainers

  • Yamato Ando
  • Masahiro Sakamoto
  • NGUYEN Viet Anh
  • Taiki Yamada

Authors

  • Ryohsuke Mitsudome
  • Koji Minoda

autoware_map_loader package

This package provides the features of loading various maps.

pointcloud_map_loader

Feature

pointcloud_map_loader provides pointcloud maps to the other Autoware nodes in various configurations. Currently, it supports the following two types:

  • Publish raw pointcloud map
  • Publish downsampled pointcloud map
  • Send partial pointcloud map loading via ROS 2 service
  • Send differential pointcloud map loading via ROS 2 service

NOTE: We strongly recommend to use divided maps when using large pointcloud map to enable the latter two features (partial and differential load). Please go through the prerequisites section for more details, and follow the instruction for dividing the map and preparing the metadata.

Prerequisites

Prerequisites on pointcloud map file(s)

You may provide either a single .pcd file or multiple .pcd files. If you are using multiple PCD data, it MUST obey the following rules:

  1. The pointcloud map should be projected on the same coordinate defined in map_projection_loader, in order to be consistent with the lanelet2 map and other packages that converts between local and geodetic coordinates. For more information, please refer to the readme of map_projection_loader.
  2. It must be divided by straight lines parallel to the x-axis and y-axis. The system does not support division by diagonal lines or curved lines.
  3. The division size along each axis should be equal.
  4. The division size should be about 20m x 20m. Particularly, care should be taken as using too large division size (for example, more than 100m) may have adverse effects on dynamic map loading features in ndt_scan_matcher and autoware_compare_map_segmentation.
  5. All the split maps should not overlap with each other.
  6. Metadata file should also be provided. The metadata structure description is provided below.

Metadata structure

The metadata should look like this:

x_resolution: 20.0
y_resolution: 20.0
A.pcd: [1200, 2500] # -> 1200 < x < 1220, 2500 < y < 2520
B.pcd: [1220, 2500] # -> 1220 < x < 1240, 2500 < y < 2520
C.pcd: [1200, 2520] # -> 1200 < x < 1220, 2520 < y < 2540
D.pcd: [1240, 2520] # -> 1240 < x < 1260, 2520 < y < 2540

where,

  • x_resolution and y_resolution
  • A.pcd, B.pcd, etc, are the names of PCD files.
  • List such as [1200, 2500] are the values indicate that for this PCD file, x coordinates are between 1200 and 1220 (x_resolution + x_coordinate) and y coordinates are between 2500 and 2520 (y_resolution + y_coordinate).

You may use pointcloud_divider for dividing pointcloud map as well as generating the compatible metadata.yaml.

Directory structure of these files

If you only have one pointcloud map, Autoware will assume the following directory structure by default.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd

If you have multiple rosbags, an example directory structure would be as follows. Note that you need to have a metadata when you have multiple pointcloud map files.

sample-map-rosbag
├── lanelet2_map.osm
├── pointcloud_map.pcd
│ ├── A.pcd
│ ├── B.pcd
│ ├── C.pcd
│ └── ...
├── map_projector_info.yaml
└── pointcloud_map_metadata.yaml

Specific features

Publish raw pointcloud map (ROS 2 topic)

The node publishes the raw pointcloud map loaded from the .pcd file(s).

Publish downsampled pointcloud map (ROS 2 topic)

The node publishes the downsampled pointcloud map loaded from the .pcd file(s). You can specify the downsample resolution by changing the leaf_size parameter.

Publish metadata of pointcloud map (ROS 2 topic)

The node publishes the pointcloud metadata attached with an ID. Metadata is loaded from the .yaml file. Please see the description of PointCloudMapMetaData.msg for details.

Send partial pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

Given a query from a client node, the node sends a set of pointcloud maps that overlaps with the queried area. Please see the description of GetPartialPointCloudMap.srv for details.

Send differential pointcloud map (ROS 2 service)

Here, we assume that the pointcloud maps are divided into grids.

File truncated at 100 lines see the full file

CHANGELOG

Changelog for package autoware_map_loader

1.1.0 (2025-05-01)

  • feat(component_interface_specs): use template type in get_qos function (#364) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
  • feat(map_loader): add the explanation of handling use_waypoints (#342)
  • Contributors: Takagi, Isamu, Takayuki Murooka

1.10.0 (2026-09-28)

  • Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base

  • feat(map): add node designs for the map nodes (#1413)

    * feat(map): add node designs for the map nodes Describe the interfaces, parameters and processes of the pointcloud and lanelet2 map loaders, the map hash generator, the lanelet2 map visualizer and the map projection loader as system design node files.

    • fix(map): correct description formatting in Lanelet2MapLoader.node.yaml

    * refactor(map): rename node designs to match the node class names PointCloudMapLoader and Lanelet2MapVisualization follow the entity naming convention derived from the C++ class names, as in #1335.

    * fix(map): declare the MapHashGenerator external API interfaces as remap targets The map hash publisher and the lanelet XML server carry the fixed API names as remap_target, so a system design connects them like any other port and the launcher remaps the node-side names.

    * fix(map): update description for map_projector_info to clarify its purpose ---------

  • fix(map): declare the dependencies these packages use (#1370) Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>. System libraries are named by the rosdep key this workspace already prefers.

  • fix(autoware_map_loader): use CMake targets and portable logging (#1270)

    * Use CMake targets and portable integer logging in autoware_map_loader This upstreams RoboStack downstream patch [patch/ros-rolling-autoware-map-loader.osx.patch]{.title-ref}. Best-guess rationale: linking to yaml-cpp and fmt through imported targets is more robust across package managers, and portable PRIu64 logging avoids uint64_t format mismatches on platforms where unsigned long and unsigned long long differ.

    • style(pre-commit): autofix

    * Support old fmt target Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>> ---------Co-authored-by: Daisuke Nishimatsu <<nishimarudai@gmail.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>> Co-authored-by: Daisuke Nishimatsu <<42202095+wep21@users.noreply.github.com>>

  • fix(autoware_map_loader): always publish the pointcloud map metadata (#1316) [output/pointcloud_map_metadata]{.title-ref} was only advertised when [enable_selected_load]{.title-ref} was true, even though the metadata dict it is built from is always available and the differential map loader that serves the map is created unconditionally. A deployment that delivers the PCD map through the differential/partial services sets [enable_whole_load: false]{.title-ref}, which retires [/map/pointcloud_map]{.title-ref}. Such a deployment was then left with no topic proving the map module had loaded its map: the map component's topic monitor watches a topic nobody publishes, reports [NotReceived]{.title-ref} (checked before any rate/timeout threshold, so the zeroed thresholds do not matter), and the map module stays in ERROR for the whole run. Publish the latched metadata as soon as the PCD metadata is parsed, so it is the delivery-independent evidence that the map is loaded and servable. This makes [enable_selected_load]{.title-ref} govern only the selected-load service, as its name says. The new launch test pins the regression: with [enable_whole_load]{.title-ref} and [enable_selected_load]{.title-ref} both false, the metadata must still arrive on a transient-local subscription, and [output/pointcloud_map]{.title-ref} must stay unadvertised.

File truncated at 100 lines see the full file

Launch files

  • launch/lanelet2_map_loader.launch.xml
      • lanelet2_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/lanelet2_map_loader.param.yaml]
      • lanelet2_map_path
      • lanelet2_map_metadata_path [default: '']
      • lanelet2_map_topic [default: vector_map]
      • lanelet2_map_marker_topic [default: vector_map_marker]
  • launch/pointcloud_map_loader.launch.xml
      • pointcloud_map_path
      • pointcloud_map_metadata_path
      • pointcloud_map_loader_param_path [default: $(find-pkg-share autoware_map_loader)/config/pointcloud_map_loader.param.yaml]

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged autoware_map_loader at Robotics Stack Exchange