Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]
Messages
Services
Plugins
Recent questions tagged autoware_lidar_frnet at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-30 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Amadeusz Szymko
- Manato Hirabayashi
Authors
- Amadeusz Szymko
autoware_lidar_frnet
Purpose
The autoware_lidar_frnet package is used for 3D semantic segmentation based on LiDAR data (x, y, z, intensity).
Inner-workings / Algorithms
The implementation is based on the FRNet [1] project. It uses TensorRT library for data processing and network inference.
We trained the models using AWML [2].
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
~/input/pointcloud |
sensor_msgs::msg::PointCloud2 |
Input pointcloud. |
Output
| Name | Type | Description |
|---|---|---|
~/output/pointcloud/segmentation |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with class ID and probability fields. |
~/output/pointcloud/visualization |
sensor_msgs::msg::PointCloud2 |
XYZ cloud with RGB field. |
~/output/pointcloud/filtered |
sensor_msgs::msg::PointCloud2 |
Filtered cloud in the requested filter.output_format. |
debug/cyclic_time_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Cyclic time (ms). |
debug/pipeline_latency_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Pipeline latency time (ms). |
debug/processing_time/preprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Preprocess (ms). |
debug/processing_time/inference_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Inference time (ms). |
debug/processing_time/postprocess_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Postprocess time (ms). |
debug/processing_time/total_ms |
autoware_internal_debug_msgs::msg::Float64Stamped |
Total processing time (ms). |
/diagnostics |
diagnostic_msgs::msg::DiagnosticArray |
Node diagnostics with respect to processing time constraints |
Parameters
FRNet node
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/frnet.schema.json”) }}
FRNet model
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/ml_package_frnet.schema.json”) }}
FRNet diagnostics
{{ json_to_markdown(“perception/autoware_lidar_frnet/schema/diagnostics_frnet.schema.json”) }}
The build_only option
The autoware_lidar_frnet node has build_only option to build the TensorRT engine file from the ONNX file.
ros2 launch autoware_lidar_frnet lidar_frnet.launch.xml build_only:=true
Assumptions / Known limits
This library operates on raw cloud data (bytes). It supports multiple input pointcloud formats and automatically detects the format on the first received message. The supported formats are (checked in order from largest to smallest, with exact field count match required):
XYZIRCAEDT (10 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=2, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=13, datatype=2, count=1),
sensor_msgs.msg.PointField(name='channel', offset=14, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=16, datatype=7, count=1),
sensor_msgs.msg.PointField(name='elevation', offset=20, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=28, datatype=6, count=1)
]
XYZIRADRT (9 fields)
[
sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=12, datatype=7, count=1),
sensor_msgs.msg.PointField(name='ring', offset=16, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=18, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=22, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=26, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=27, datatype=8, count=1)
]
XYZIRC (6 fields)
```python [ sensor_msgs.msg.PointField(name=’x’, offset=0, datatype=7, count=1), sensor_msgs.msg.PointField(name=’y’, offset=4, datatype=7, count=1),
File truncated at 100 lines see the full file
Changelog for package autoware_lidar_frnet
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- fix(design): align the perception node designs with the packages they describe (#13339) The lanelet filter components register under the lanelet_filter:: namespace, and the apollo instance segmentation and transfusion nodes are built with the autoware_ prefix on the executable name. BEVFusion, StreamPetr and LidarFRNet name param file defaults that resolve to nothing: the first two are missing the config/ prefix, and the three files LidarFRNet names are called frnet.param.yaml, ml_package_frnet_ot128.param.yaml and diagnostics_frnet.param.yaml. ElevationMapLoader pins its map_hash input with global:, which keeps the port out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same fixed topic name while letting the port take part in the graph.
- refactor(autoware_universe): use autoware_ament_auto_package in perception DNN packages (#12277) Co-authored-by: github-actions <<github-actions@github.com>> Co-authored-by: Taekjin LEE <<taekjin.lee@tier4.jp>>
- refactor(perception): move node design files into each package (#13104) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
- fix(autoware_lidar_frnet): sync configs (#13040)
- Contributors: Amadeusz Szymko, Ryohsuke Mitsudome, Taekjin LEE, Vishal Chauhan
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(clang-tidy): fix unchecked optional access in lidar frnet (#12614)
- fix(clang-tidy): fix unchecked optional access in lidar frnet
* Address optional access review comments ---------
-
Contributors: Vishal Chauhan, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat: default artifact paths to ~/autoware_data/ml_models (#12523) feat(launches,configs): default artifact paths to ~/autoware_data/ml_models Roll every per-package [data_path]{.title-ref} / [model_path]{.title-ref} launch-arg default from [$(env HOME)/autoware_data[/...]]{.title-ref} to [$(env HOME)/autoware_data/ml_models[/...]]{.title-ref} so standalone universe launches resolve artifacts under the new [~/autoware_data/ml_models/]{.title-ref} layout (autowarefoundation/autoware#7068). When invoked through autoware_launch the parent overrides cascade and already pin the new root (autowarefoundation/autoware_launch#1835); this commit closes the gap for users who launch a perception / localization / sensing / planning component directly with [ros2 launch <pkg>]{.title-ref}. 22 launch files updated (one-line default change each):
- e2e/autoware_tensorrt_vad/launch/vad_carla_tiny.launch.xml
- localization/yabloc/yabloc_pose_initializer/launch/yabloc_pose_initializer.launch.xml
- perception/autoware_bevfusion/launch/bevfusion.launch.xml
- perception/autoware_camera_streampetr/launch/streampetr.launch.xml
- perception/autoware_image_projection_based_fusion/launch/pointpainting_fusion.launch.xml
- perception/autoware_lidar_apollo_instance_segmentation/launch/lidar_apollo_instance_segmentation.launch.xml
- perception/autoware_lidar_centerpoint/launch/lidar_centerpoint.launch.xml
- perception/autoware_lidar_frnet/launch/lidar_frnet.launch.xml
- perception/autoware_lidar_transfusion/launch/lidar_transfusion.launch.xml
- perception/autoware_ptv3/launch/ptv3.launch.xml
- perception/autoware_shape_estimation/launch/shape_estimation.launch.xml
- perception/autoware_simpl_prediction/launch/simpl.launch.xml
- perception/autoware_tensorrt_bevdet/launch/tensorrt_bevdet.launch.xml
- perception/autoware_tensorrt_bevformer/launch/bevformer.launch.xml
- perception/autoware_tensorrt_yolox/launch/{yolox_traffic_light_detector,yolox_tiny,yolox_s_plus_opt}.launch.xml
- perception/autoware_traffic_light_classifier/launch/{car,pedestrian}_traffic_light_classifier.launch.xml
- perception/autoware_traffic_light_fine_detector/launch/traffic_light_fine_detector.launch.xml
- planning/autoware_diffusion_planner/launch/diffusion_planner.launch.xml
- sensing/autoware_calibration_status_classifier/launch/calibration_status_classifier.launch.xml Drive-by README and test fixes:
- e2e/autoware_tensorrt_vad/{README.md,docs/design.md}: also migrate the [$HOME/autoware_map/Town01]{.title-ref} examples to [$HOME/autoware_data/maps/Town01]{.title-ref}.
-
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/lidar_frnet.launch.xml
-
- input/pointcloud [default: /sensing/lidar/front_upper/pointcloud_raw_ex]
- output/pointcloud/segmentation [default: ~/segmentation]
- output/pointcloud/visualization [default: ~/visualization]
- output/pointcloud/filtered [default: ~/filtered]
- data_path [default: $(env HOME)/autoware_data/ml_models]
- model_name [default: frnet]
- sensor_model [default: ot128]
- model_path [default: $(var data_path)/lidar_frnet]
- model_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/$(var model_name).param.yaml]
- ml_package_param_path [default: $(var model_path)/ml_package_$(var model_name)_$(var sensor_model).param.yaml]
- diagnostics_param_path [default: $(find-pkg-share autoware_lidar_frnet)/config/diagnostics_frnet.param.yaml]
- build_only [default: false]
- use_pointcloud_container [default: false]
- pointcloud_container_name [default: pointcloud_container]