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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_map_height_fitter at Robotics Stack Exchange
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
Maintainers
- Yamato Ando
- Masahiro Sakamoto
- NGUYEN Viet Anh
- Taiki Yamada
Authors
- Takagi, Isamu
autoware_map_height_fitter
This library fits the given point with the ground of the point cloud map.
The map loading operation is switched by the parameter enable_partial_load of the node specified by map_loader_name.
The node using this library must use multi thread executor.
Parameters
{{ json_to_markdown(“map/autoware_map_height_fitter/schema/map_height_fitter.schema.json”) }}
Topic subscription
| Topic Name | Description |
|---|---|
| ~/pointcloud_map | The topic containing the whole pointcloud map (only used when enable_partial_load = false) |
Service client
| Service Name | Description |
|---|---|
| ~/partial_map_load | The service to load the partial map |
Changelog for package autoware_map_height_fitter
1.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node (#1445)
- feat(map_height_fitter, pose_initializer, adapi_adaptors): move the nodes to agnocast_wrapper::Node
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): use AgnocastOnlyCallbackIsolatedExecutor and drop redundant comments
- refactor(map_height_fitter, pose_initializer, adapi_adaptors): drop the comments that restate the code
- docs(map_height_fitter, pose_initializer, adapi_adaptors): note what the agnocast_env include provides
* docs(map_height_fitter, pose_initializer): explain the ENABLE_AGNOCAST test gate ---------
-
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_height_fitter): fix inverted TF lookup direction in fit() (#1276)
* fix(autoware_map_height_fitter): fix inverted TF lookup direction in fit() tf2_buffer_.lookupTransform(target, source) combined with tf2::doTransform converts data from the source frame into the target frame. The fit() function passed the arguments in the opposite order for both conversions, so the input position was transformed with the inverse transform. This is harmless when the requested frame equals the map frame (identity), which is the common case, but when fit() is called with a pose in any other frame (e.g. rviz configured with a non-map fixed frame), the ground height is looked up at a wrong location and the returned height is offset by the frame translation. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* test(autoware_map_height_fitter): add regression test for fit() frame conversion Add a ROS-isolated gtest that exercises MapHeightFitter::fit() through TF: a static transform map -> test_frame with a non-zero translation, and a point cloud map with different ground heights at the query position and at the position mirrored by twice the frame translation. With the previous inverted lookupTransform argument order, the fit sampled the ground at the mirrored location and offset the returned z by the frame translation in the wrong direction, which this test detects. The map-frame case (identity transform) is also covered and is unaffected by the bug. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
Contributors: DWatabe, Koichi Imai, Mete Fatih Cırıt, github-actions
1.9.0 (2026-06-24)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree (#1107)
* perf(autoware_map_height_fitter): extract testable ground-height kernel and use a cached KdTree Extract the pure ground-height search out of the Node/TF-bound pimpl Impl into free functions in a new internal header so the core algorithm becomes unit-testable without ROS:
- get_ground_height_from_pointcloud(cloud[, kdtree], x, y, fallback_z)
- get_ground_height_from_vector_map(map, x, y, fallback_z)
- build_pointcloud_xy_kdtree(cloud) Impl::get_ground_height now delegates to these. The two full O(N) linear passes over the point cloud per fit() request are replaced with a pcl::KdTreeFLANN built once when the cloud is set (on_pcd_map / get_partial_point_cloud_map) and reused: nearestKSearch finds the closest point and radiusSearch restricts the lowest-z scan to a local candidate set, dropping per-call cost from O(N) to ~O(log N + k). Behavior is preserved: the KdTree indexes the horizontal (z = 0) projection so the 2D distance metric is unchanged, and the
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/map_height_fitter.launch.xml
-
- param_path [default: $(find-pkg-share autoware_map_height_fitter)/config/map_height_fitter.param.yaml]