Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_shape_estimation at Robotics Stack Exchange
Package Summary
| Version | 0.53.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-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Yukihiro Saito
- Yoshi Ri
- Kaan Colak
- Taekjin Lee
- Lei Gu
- Masaki Baba
Authors
autoware_shape_estimation
Purpose
This node estimates refined 3D object shapes from point cloud clusters using object labels. It supports both rule-based algorithms (L-shape fitting, cylinder, convex hull with filtering and correction) and ML-based estimation (PointNet) for vehicles, incorporating reference information from prior detections to improve shape accuracy and orientation estimation.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input |
tier4_perception_msgs::msg::DetectedObjectsWithFeature |
detected objects with labeled cluster |
Output
| Name | Type | Description |
|---|---|---|
output/objects |
autoware_perception_msgs::msg::DetectedObjects |
detected objects with refined shape |
Parameters
{{ json_to_markdown(“perception/autoware_shape_estimation/schema/shape_estimation.schema.json”) }}
Inner-workings / Algorithms
Rule-based algorithms
This rule-based geometric algorithms applies object-type-specific shape fitting (L-shape for vehicles, cylinder for pedestrians, convex hull for unknown objects), followed by filtering and correction stages that incorporate reference information from prior detections to ensure geometric consistency and improve orientation accuracy.
The shape fitting algorithm pipeline consists of following three stages.
- Shape Estimation
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
-
L-shape Fitting Algorithm (
fitLShapefunction):-
Implements search-based rectangle fitting from IV2017 paper by Zhang et al.
-
Angle Optimization:
- Default search range: 0 to 90 degrees for full angular sweep
- Reference yaw constraint: +/-search_angle_range around reference when available
- Two optimization methods: Standard iterative search or Boost-based Brent optimization
-
Closeness Criterion: Evaluates fitting quality using Algorithm 4 from referenced paper
- Distance thresholds: d_min (0.01m squared), d_max (0.16m squared)
- Point-to-boundary distance calculation for quality assessment
-
3D Bounding Box Construction:
- Projects points onto orthogonal axes e1 and e2
- Calculates intersection points to determine center and dimensions
- Height derived from point cloud Z-range with minimum epsilon (0.001m)
- Output Validation: Ensures minimum dimensions to prevent degenerate boxes
-
-
L-shape Fitting Algorithm (
- Pedestrian (PEDESTRIAN):
- Cylinder shape estimation using cv::minEnclosingCircle
- Other/Unknown Objects:
- Convex hull shape estimation using cv::convexHull
- Vehicle Objects (CAR, TRUCK, BUS, TRAILER, MOTORCYCLE, BICYCLE):
- Filtering
- Vehicle Type-specific Filtering:
- Car Filter: Vehicle size validity verification
- Truck Filter: Truck-specific shape constraints
- Bus Filter: Bus-specific dimension checks
- Trailer Filter: Trailer shape validation
-
Physical validity checks of estimated shapes
- Exclusion of invalid estimation results
- Vehicle Type-specific Filtering:
- Corrector
-
Reference Information-based Correction:
- Orientation correction using reference yaw information
- Dimension correction using reference shape size (minimum/fixed value modes)
-
Shape Correction Algorithm (
correctWithDefaultValuefunction):-
Purpose: Rule-based bounding box correction using default vehicle dimensions when estimated shapes violate physical constraints
-
Correction Vector Application:
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Updates shape dimensions:
shape.dimensions += correction_vector * 2.0 - Adjusts pose position:
pose.position += rotation_matrix * correction_vector
- Computes correction vector based on conditions by correctWithDefaultValue Function
- Orientation Normalization: Ensures longest dimension aligns with x-axis (90 degree rotation if needed)
-
-
Vehicle Type-specific Correctors:
- Vehicle Corrector: General vehicle correction
- Dedicated correction logic for each vehicle type
- Geometric consistency assurance
-
Reference Information-based Correction:
- Fallback Mechanism
- Automatic fallback to UNKNOWN label with convex hull estimation when any stage fails
ML Based Shape Implementation
The model takes a point cloud and object label(provided by camera detections/Apollo instance segmentation) as an input and outputs the 3D bounding box of the object.
File truncated at 100 lines see the full file
Changelog for package autoware_shape_estimation
0.53.0 (2026-09-29)
0.52.0 (2026-06-30)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- fix(aeb, shape_estimation): guard pcl::fromROSMsg against empty point clouds (#12569)
- Contributors: Mert Yavuz, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
- localization/yabloc/{README.md,yabloc_pose_initializer/README.md}: also migrate [$HOME/autoware_map/sample-map-rosbag]{.title-ref} to [$HOME/autoware_data/maps/demos/sample-map-rosbag]{.title-ref}.
- control/autoware_smart_mpc_trajectory_follower/README.md: migrate the [map_path:=$HOME/autoware_map/sample-map-planning]{.title-ref} example to [$HOME/autoware_data/maps/demos/sample-map-planning]{.title-ref}.
- simulator/autoware_carla_interface/README.md: migrate every [$HOME/autoware_map/Town01/...]{.title-ref} reference to [$HOME/autoware_data/maps/Town01/...]{.title-ref}.
- perception/{autoware_bevfusion,autoware_image_projection_based_fusion,autoware_lidar_centerpoint,autoware_tensorrt_bevformer}/README.md: copy-paste examples updated to [~/autoware_data/ml_models/<pkg>]{.title-ref}.
- perception/autoware_camera_streampetr/config/ml_package_camera_streampetr.param.yaml: header comment updated.
- planning/autoware_diffusion_planner/README.md: prerequisites snippet updated.
- sensing/autoware_calibration_status_classifier/test/{test_model_inference,test_calibration_status_classifier}.cpp: hardcoded fallback ONNX path updated. Users on the legacy layout can pin the old root with [data_path:=$HOME/autoware_data]{.title-ref} (or the per-package equivalent) on the command line. Refs: https://github.com/autowarefoundation/autoware/issues/7068
-
chore(perception): move perception node configuration file to each package (#12440) move perception node configuration file to each package
-
refactor(autoware_universe): use autoware_ament_auto_package in perception utility packages (#12281)
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/shape_estimation.launch.xml
-
- input/objects [default: labeled_clusters]
- output/objects [default: shape_estimated_objects]
- node_name [default: shape_estimation]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_path [default: $(var data_path)/shape_estimation/pointnet.onnx]
- config_file [default: $(find-pkg-share autoware_shape_estimation)/config/shape_estimation.param.yaml]