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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_sensing_launch 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_launch.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
- David Wong
- Max Schmeller
- Dai Nguyen
Authors
autoware_sensing_launch
Shared sensing launch library. Sensor kits own the sensing entry point (<sensor_model>_launch/launch/sensing.launch.xml, included by component_sensing.launch.xml); this package hosts the reusable pre/post-processing units the kits build on. Driver launch files live in the driver layer package autoware_sensor_driver_launch.
Container ownership and addressing
Sensor kits create the containers; units only load nodes into them. pointcloud_container.launch.xml is the one unit that creates a container, and it loads nothing into it.
Units that load composable nodes take the target container as an absolute path (target_container) supplied by the caller; units never derive it from their own namespace. Callers construct the path from their literal namespace knowledge and must keep it in step with their namespace pushes. The one exception is the concatenation units, whose pointcloud_container_name keeps its historical name and receives the top-level pointcloud container path passed through unchanged.
Launch files
-
pointcloud_container.launch.xml— component container for one sensor unit, created atcontainer_namespace/container_name;use_multithreadselectscomponent_container_mt. -
pointcloud_crop_boxes.launch.xml— vehicle body crop box followed by a secondary crop box, loaded into an existing container. Used on its own where the remaining preprocessing stages do not apply. -
pointcloud_preprocessor_cpu.launch.xml— per-lidar preprocessing chain: the crop box unit, then distortion correction and ring outlier filter, loaded into an existing container. The secondary crop box is named bysecondary_crop_box(e.g.mirror,wheels). -
pointcloud_preprocessor_cuda.launch.xml— the same chain folded into one CUDA node; crop box stages come as folded lists incrop_box_param_path. -
pointcloud_concatenation_cpu.launch.xml,pointcloud_concatenation_cuda.launch.xml— multi-lidar concatenation with time synchronization; the kit passes itsconcatenate_and_time_sync_node_param_path(input topic list is kit-specific). -
blockage_diagnostics.launch.xml— blockage diagnostics on the raw pointcloud;angle_rangedefaults to the configured device angles (float-formatted). -
gnss_postprocessor.launch.xml— septentrio heading converter plus NavSatFix-to-MGRS pose (autoware_gnss_poser). -
imu_corrector.launch.xml— imu corrector plus gyro bias estimator (autoware_imu_corrector). -
radar_tracks_postprocessor.launch.xml— radar tracks noise filter plus message converter.
Config
-
distortion_corrector_node.param.yaml,ring_outlier_filter_node.param.yaml— shared preprocessing defaults; kits with different sensors or thresholds pass their own file via the*_param_patharguments (the outlier shape parameters such asvertical_binsonly take effect whenpublish_outlier_pointcloudis enabled). -
blockage_diagnostics.param.yaml— blockage diagnostics defaults; runtime shape parameters (angle range, bins) are set per sensor via launch arguments. -
radar_tracks_msgs_converter.param.yaml,radar_tracks_noise_filter.param.yaml— radar postprocessing defaults.
Crop box param files are owned by the sensor kits (they encode vehicle geometry). Kits generate them offline with:
scripts/generate_crop_box_params.py <vehicle_info.param.yaml> <mirror.param.yaml> <output_dir>
and pass the outputs via the crop_box_filter_{self,secondary}_param_path arguments.
Scripts
-
septentrio_heading_converter.py— runtime node converting the septentrio AttEuler heading to a GnssInsOrientationStamped (installed). -
generate_crop_box_params.py— offline generator for kit crop box files (not installed).
Package Dependencies
Please see <exec_depend> in package.xml.
Changelog for package autoware_sensing_launch
0.53.0 (2026-10-13)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled (#1987)
* feat(autoware_sensing_launch): run blockage_diag standalone when agnocast is enabled autoware_universe#13074 moves BlockageDiagComponent to agnocast_wrapper::Node, which is not designed to run inside a component container. Start the node as a standalone process when ENABLE_AGNOCAST=1 and keep loading it into target_container otherwise, as component_state_monitor.launch.py does for topic_state_monitor. The node name, namespace, remaps and parameters are identical in both branches.
* refactor(autoware_sensing_launch): launch blockage_diag through the autoware_node action ---------
-
feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled (#1990)
* feat(autoware_launch): run crop_box_filter standalone when agnocast is enabled autoware_universe#13384 moves CropBoxFilterComponent to agnocast_wrapper::Node on an agnocast-only executor, which the component containers do not set up. Start each of the eight crop_box_filter nodes as a standalone process when ENABLE_AGNOCAST=1 and keep loading them into their container otherwise. The node names, namespaces, remaps and parameters are the same in both branches.
* refactor(autoware_launch): launch crop_box_filter through the autoware_node action ---------
-
refactor(sensing)!: separate sensor driver and pre-processing layers from sensor kit configuration (#1938)
* refactor(launch)!: rename tier4_sensing_launch to autoware_sensing_launch tier4_sensing_launch held one 19-line pass-through page that pushed the sensing namespace and included the sensor kit entry. The component page now includes that entry directly and pushes the namespace itself, so the layer is gone and the package is left as the home of the shared sensing units added next.
- move the package to autoware_universe_launch/autoware_sensing_launch
- rename tier4_sensing_component.launch.xml to components/component_sensing.launch.xml
- drop the pass-through page and its diagram Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensing_launch): add the shared sensing unit library Declarative XML units for the sensor data pre/post-processing stages, each addressed by an absolute container path so a caller can place it in any container it owns.
- pointcloud_container, the only unit that creates a container
- pointcloud_crop_boxes, pointcloud_preprocessor_{cpu,cuda}, pointcloud_concatenation_{cpu,cuda}
- blockage_diagnostics, gnss_postprocessor, imu_corrector, radar_tracks_postprocessor
- shared preprocessing, blockage and radar defaults under config/
- generate_crop_box_params.py, which turns vehicle info and mirror geometry into the crop box files the kits commit and pass in; septentrio_heading_converter.py is installed as a runtime node The parameter files and the heading converter are ported from tier4/aip_launcher (aip_common_sensor_launch), Apache-2.0 under the same TIER IV copyright. Nothing includes these units yet. Co-Authored-By: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
* feat(autoware_sensor_driver_launch): add the sensor driver layer The hardware interface layer, kept apart from the pre-processing units so that a sensor make and model can be brought into the ROS graph on its own.
- nebula_{velodyne,robosense,hesai}: per-make driver chains, configured by the model param file shipped in the nebula driver package
- velodyne_{VLP16,VLS128}, robosense_{Bpearl,Helios}, hesai_{XT32,OT128}: per-model wrappers
- every file loads its node into target_container, an existing container owned by the caller; this package never creates one The
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| python3-numpy |
Dependant Packages
Launch files
- launch/blockage_diagnostics.launch.xml
-
- target_container
- node_name [default: blockage_diag]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- output/pointcloud [default: blockage_diag/pointcloud]
- cloud_min_angle [default: 0.0]
- cloud_max_angle [default: 360.0]
- angle_range [default: [$(var cloud_min_angle), $(var cloud_max_angle)]]
- max_range [default: 300.0]
- horizontal_ring_id [default: 64]
- vertical_bins [default: 128]
- is_channel_order_top2down [default: true]
- horizontal_resolution [default: 0.4]
- blockage_diagnostics_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/blockage_diagnostics.param.yaml]
- launch/gnss_postprocessor.launch.xml
-
- input/fix [default: septentrio/nav_sat_fix]
- input/atteuler [default: septentrio/atteuler]
- input/orientation [default: septentrio/orientation]
- output/pose [default: pose]
- output/pose_with_covariance [default: pose_with_covariance]
- output/fixed [default: fixed]
- launch/imu_corrector.launch.xml
-
- input/imu_raw
- output/imu_data [default: imu_data]
- input/odometry [default: /localization/kinematic_state]
- input/pose_with_covariance [default: /localization/pose_estimator/pose_with_covariance]
- output/imu_scaled [default: /sensing/imu_output_scaled]
- imu_corrector_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/imu_corrector.param.yaml]
- gyro_scale_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_scale_estimator.param.yaml]
- gyro_bias_estimator_param_path [default: $(find-pkg-share autoware_imu_corrector)/config/gyro_bias_estimator.param.yaml]
- launch/pointcloud_concatenation_cpu.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- use_intra_process [default: false]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_concatenation_cuda.launch.xml
-
- pointcloud_container_name [default: pointcloud_container]
- use_concat_filter [default: true]
- concatenate_and_time_sync_node_param_path
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- output/pointcloud [default: concatenated/pointcloud]
- output/pointcloud_info [default: concatenated/pointcloud_info]
- launch/pointcloud_container.launch.xml
-
- container_namespace
- container_name [default: pointcloud_container]
- use_multithread [default: false]
- launch/pointcloud_crop_boxes.launch.xml
-
- target_container
- input_frame [default: base_link]
- output_frame [default: base_link]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- intermediate/pointcloud [default: self_cropped/pointcloud_ex]
- output/pointcloud [default: $(var secondary_crop_box)_cropped/pointcloud_ex]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- launch/pointcloud_preprocessor_cpu.launch.xml
-
- target_container
- frame_id [default: lidar]
- input_frame [default: base_link]
- output_frame [default: base_link]
- output_as_sensor_frame [default: true]
- secondary_crop_box [default: mirror]
- use_intra_process [default: false]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_filter_self_param_path
- crop_box_filter_secondary_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/pointcloud_preprocessor_cuda.launch.xml
-
- target_container
- enable_ring_outlier_filter [default: true]
- input/pointcloud [default: pointcloud_raw_ex]
- input/twist [default: /sensing/vehicle_velocity_converter/twist_with_covariance]
- input/imu [default: /sensing/imu/imu_data]
- output/pointcloud [default: pointcloud_before_sync]
- crop_box_param_path
- distortion_corrector_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/distortion_corrector_node.param.yaml]
- ring_outlier_filter_node_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/ring_outlier_filter_node.param.yaml]
- launch/radar_tracks_postprocessor.launch.xml
-
- input/tracks [default: objects_raw]
- input/odometry [default: /localization/kinematic_state]
- output/noise_tracks [default: noise_objects]
- output/filtered_tracks [default: filtered_objects]
- output/radar_detected_objects [default: detected_objects]
- output/radar_tracked_objects [default: tracked_objects]
- radar_tracks_msgs_converter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_msgs_converter.param.yaml]
- radar_tracks_noise_filter_param_path [default: $(find-pkg-share autoware_sensing_launch)/config/radar_tracks_noise_filter.param.yaml]