Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_centerpoint at Robotics Stack Exchange
Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-02-25 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kenzo Lobos-Tsunekawa
- Amadeusz Szymko
- Kotaro Uetake
- Masato Saeki
- Taekjin Lee
- Kok Seang Tan
Authors
autoware_lidar_centerpoint
Purpose
autoware_lidar_centerpoint is a package for detecting dynamic 3D objects.
Inner-workings / Algorithms
In this implementation, CenterPoint [1] uses a PointPillars-based [2] network to inference with TensorRT.
We trained the models using https://github.com/open-mmlab/mmdetection3d.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
input pointcloud |
Output
| Name | Type | Description |
|---|---|---|
~/output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
cyclic time (msg) |
debug/processing_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
processing time (ms) |
Parameters
ML Model Parameters
Note that these parameters are associated with ONNX file, predefined during the training phase. Be careful to change ONNX file as well when changing this parameter. Also, whenever you update the ONNX file, do NOT forget to check these values.
{{ json_to_markdown(“perception/autoware_lidar_centerpoint/schema/centerpoint_ml_package.schema.json”) }}
Core Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
encoder_onnx_path |
string | "" |
path to VoxelFeatureEncoder ONNX file |
encoder_engine_path |
string | "" |
path to VoxelFeatureEncoder TensorRT Engine file |
head_onnx_path |
string | "" |
path to DetectionHead ONNX file |
head_engine_path |
string | "" |
path to DetectionHead TensorRT Engine file |
build_only |
bool | false |
shutdown the node after TensorRT engine file is built |
trt_precision |
string | fp16 |
TensorRT inference precision: fp32 or fp16
|
post_process_params.yaw_norm_thresholds |
list[double] | [0.3, 0.3, 0.3, 0.3, 0.0] | An array of distance threshold values of norm of yaw [rad]. |
post_process_params.iou_nms_search_distance_2d |
double | - | If two objects are farther than the value, NMS isn’t applied. |
post_process_params.iou_nms_threshold |
double | - | IoU threshold for the IoU-based Non Maximum Suppression |
post_process_params.has_twist |
boolean | false | Indicates whether the model outputs twist value. |
densification_params.world_frame_id |
string | map |
the world frame id to fuse multi-frame pointcloud |
densification_params.num_past_frames |
int | 1 |
the number of past frames to fuse with the current frame |
The build_only option
The autoware_lidar_centerpoint node has build_only option to build the TensorRT engine file from the ONNX file.
Although it is preferred to move all the ROS parameters in .param.yaml file in Autoware Universe, the build_only option is not moved to the .param.yaml file for now, because it may be used as a flag to execute the build as a pre-task. You can execute with the following command:
ros2 launch autoware_lidar_centerpoint lidar_centerpoint.launch.xml model_name:=centerpoint_tiny model_path:=/home/autoware/autoware_data/lidar_centerpoint model_param_path:=$(ros2 pkg prefix autoware_lidar_centerpoint --share)/config/centerpoint_tiny.param.yaml build_only:=true
Assumptions / Known limits
- The
object.existence_probabilityis stored the value of classification confidence of a DNN, not probability.
Trained Models
You can download the onnx format of trained models by clicking on the links below.
- Centerpoint: pts_voxel_encoder_centerpoint.onnx, pts_backbone_neck_head_centerpoint.onnx
- Centerpoint tiny: pts_voxel_encoder_centerpoint_tiny.onnx, pts_backbone_neck_head_centerpoint_tiny.onnx
Centerpoint was trained in nuScenes (~28k lidar frames) [8] and TIER IV’s internal database (~11k lidar frames) for 60 epochs.
Centerpoint tiny was trained in Argoverse 2 (~110k lidar frames) [9] and TIER IV’s internal database (~11k lidar frames) for 20 epochs.
Training CenterPoint Model and Deploying to the Autoware
Overview
This guide provides instructions on training a CenterPoint model using the mmdetection3d repository and seamlessly deploying it within Autoware.
Installation
Install prerequisites
Step 1. Download and install Miniconda from the official website.
Step 2. Create a conda virtual environment and activate it
conda create --name train-centerpoint python=3.8 -y
conda activate train-centerpoint
Step 3. Install PyTorch
Please ensure you have PyTorch installed, and compatible with CUDA 11.6, as it is a requirement for current Autoware.
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_centerpoint
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_centerpoint): add distance-based confidence thresholds to CenterPoint (#12026)
- Add temp
- Add score_threshold_upper and score_thresholds to CenterPoint postprocessing
- Fix naming errors
- Revert changes in roi_cluster_fusion_pipeline
- Revert changes in roi_cluster_fusion markdown
- Revert changes in image_projection_based_fusion
- Update score_threshold configs in pointpainting_fusion
- Remove unnecessary comments
- Update float class_score_threshold to const float
- Update autoware_lidar_centerpoint readme
- Remove param_version from configs
- Return postprocessing of boxes if label == -1
- Add the checking of score_upper_bounds greater than 0
- Update score_threshold values to class-wise distance
- Fix pointpainting class-wise distance thresholds
- Update centerpoint params in README by json_to_markdown
- Update docstring comment in centerpoint postprocess
- style(pre-commit): autofix
- Rename configs to detection_score_thresholds with distance_bin_upper_limits and min_confidence_scores
- Update schema docstring
- Resolve missing distance_bin_upper_limits_ in CenterPointConfig
* Update pointpainting ml package schema ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
feat(autoware_lidar_centerpoint): update nvcc flags (#12049)
-
feat!: remove ROS 2 Galactic codes (#11905)
-
chore(autoware_lidar_centerpoint): remove cudnn dependency (#11885)
-
Contributors: Amadeusz Szymko, Kok Seang Tan, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
fix(lidar_centerpoint): correct index check in shufflePoints_kernel (#11711) fix(lidar_centerpoint): correct index check in shufflePoints_kernel function
-
fix(centerpoint): fix insufficient buffer clearing (#11675)
- fix(lidar_centerpoint): clear auxiliary points buffer in preprocessing
* fix(centerpoint_trt): move cudaStreamCreate to constructor initialization ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, jakor97
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
-
feat(autoware_lidar_centerpoint): add class-wise confidence thresholds to CenterPoint (#10881)
- Add PreprocessCuda to CenterPoint
- style(pre-commit): autofix
- style(pre-commit): autofix
- Add intensity preprocessing
- style(pre-commit): autofix
- Fix config_.point_feature_size_ typo
- style(pre-commit): autofix
- Fix point typo
- style(pre-commit): autofix
- Change score_threshold to score_thresholds
- Use <autoware/cuda_utils/cuda_utils.hpp> for clear_async
- Rename pre_ptr_ to pre_proc_ptr_
- Remove unused getCacheSize() and getIdx
- Use template in generateVoxels_random_kernel instead
- style(pre-commit): autofix
- Remove references in generateVoxels_random_kernel
- Remove references in generateVoxels_random_kernel
- style(pre-commit): autofix
- Remove generateIntensityFeatures_kernel and add the case of 11 to ENCODER_IN_FEATURE_SIZE for generateFeatures_kernel
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_centerpoint.launch.xml
-
- input/pointcloud [default: /sensing/lidar/pointcloud]
- output/objects [default: objects]
- data_path [default: $(env HOME)/autoware_data]
- node_name [default: lidar_centerpoint]
- model_name [default: centerpoint_tiny]
- model_path [default: $(var data_path)/$(var node_name)]
- model_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/$(var model_name)_ml_package.param.yaml]
- class_remapper_param_path [default: $(var model_path)/detection_class_remapper.param.yaml]
- common_param_path [default: $(find-pkg-share autoware_lidar_centerpoint)/config/centerpoint_common.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]