Package Summary
| Version | 0.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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.50.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-04-07 |
| 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.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): update nvcc flags (#12050)
-
chore(autoware_lidar_frnet): remove cudnn dependency (#11888)
-
chore: add maintainer of PTv3, FRNet, and CalibrationStatusClassifier (#11945)
- chore: update [autoware_ptv3]{.title-ref} maintainer
- chore: update [autoware_lidar_frnet]{.title-ref} maintainer
* chore: update [autoware_calibration_status_classifier]{.title-ref} maintainer ---------
-
Contributors: Amadeusz Szymko, Manato Hirabayashi, Ryohsuke Mitsudome
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
feat(autoware_lidar_frnet): integrate cuda blackboard into point clooud process (#11677)
- feat(lidar_frnet): integrate cuda_blackboard for enhanced point cloud processing
- feat(lidar_frnet): integrate CudaBlackboard for point cloud publishing
* feat(lidar_frnet): add CUDA remappings for point cloud outputs in launch configuration Co-authored-by: Amadeusz Szymko <<amadeuszszymko@gmail.com>>
* fix(lidar_frnet): make point cloud layout members const for safety ---------Co-authored-by: Amadeusz Szymko <<amadeusz.szymko.2@tier4.jp>>
-
Contributors: Kyoichi Sugahara, Ryohsuke Mitsudome
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation (#10503)
- feat(autoware_lidar_frnet): add FRNet for LiDAR semantic segmentation
* docs(autoware_lidar_frnet): style Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
- feat(autoware_lidar_frnet): store cloud layouts in minimal type
- feat(autoware_lidar_frnet): use clear async
- fix(autoware_lidar_frnet): correct value for cuda mem set & use clear async
- fix(autoware_lidar_frnet): remove redundant stream sync
- fix(autoware_lidar_frnet): avoid cuda memory allocation
- fix(autoware_lidar_frnet): avoid cuda memory allocation (2)
- fix(autoware_lidar_frnet): precess only output clouds with active subscribers
- fix(autoware_lidar_frnet): atomic operation for fp precision point (x, y, z, intensity)
- fix(autoware_lidar_frnet): explicit device stream sync for thrust
- feat(autoware_lidar_frnet): use cub::DeviceRadixSort
- feat(autoware_lidar_frnet): avoid host vectors
- feat(autoware_lidar_frnet): update cuda flags
* fix(autoware_lidar_frnet): final adjustment ---------Co-authored-by: Kenzo Lobos Tsunekawa <<kenzo.lobos@gmail.com>>
-
Contributors: Amadeusz Szymko, Ryohsuke Mitsudome
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]
- 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]