feat(autoware_pointcloud_preprocessor): cuda-accelerated pointcloud concatenation #9455
CodeScene PR Check
Quality Gate Failed
Code Health Improved
(1 files improve in Code Health)
Gates Failed
New code is healthy
(3 new files with code health below 9.00)
Enforce critical code health rules
(3 files with Deep, Nested Complexity, Bumpy Road Ahead)
Enforce advisory code health rules
(6 files with Complex Method, Lines of Code in a Single File, Code Duplication, Large Method, Excess Number of Function Arguments, Primitive Obsession, Overall Code Complexity)
Gates Passed
1 Quality Gates Passed
See analysis details in CodeScene
Reason for failure
New code is healthy | Violations | Code Health Impact | |
---|---|---|---|
concatenate_and_time_sync_node.ipp | 4 rules | 10.00 → 7.36 | Suppress |
test_concatenate_node_component.py | 4 rules | 10.00 → 7.77 | Suppress |
test_concatenate_node_unit.cpp | 4 rules | 10.00 → 8.24 | Suppress |
Enforce critical code health rules | Violations | Code Health Impact | |
---|---|---|---|
concatenate_and_time_sync_node.ipp | 2 critical rules | 10.00 → 7.36 | Suppress |
cuda_combine_cloud_handler.cpp | 1 critical rule | 10.00 → 9.13 | Suppress |
collector_matching_strategy.ipp | 1 critical rule | 10.00 → 9.39 | Suppress |
Enforce advisory code health rules | Violations | Code Health Impact | |
---|---|---|---|
concatenate_and_time_sync_node.ipp | 2 advisory rules | 10.00 → 7.36 | Suppress |
test_concatenate_node_component.py | 4 advisory rules | 10.00 → 7.77 | Suppress |
test_concatenate_node_unit.cpp | 4 advisory rules | 10.00 → 8.24 | Suppress |
cuda_combine_cloud_handler.cpp | 1 advisory rule | 10.00 → 9.13 | Suppress |
memory.cpp | 1 advisory rule | 10.00 → 9.39 | Suppress |
combine_cloud_handler.cpp | 1 advisory rule | 7.79 → 7.73 | Suppress |
View Improvements
File | Code Health Impact | Categories Improved |
---|---|---|
combine_cloud_handler.cpp | 7.79 → 7.73 | Code Duplication, Complex Method, Complex Conditional, Bumpy Road Ahead |
concatenate_and_time_sync_node.cpp | 7.15 → 10.00 | Complex Method, Bumpy Road Ahead, Overall Code Complexity, Deep, Nested Complexity |
collector_matching_strategy.cpp | 9.39 → nu | Deep, Nested Complexity |
Quality Gate Profile: Clean Code Collective
Want more control? Customize Code Health rules or catch issues early with our IDE extension and CLI tool.
Details
🚩 Declining Code Health (highest to lowest):
- Complex Method cuda_combine_cloud_handler.cpp: combine_pointclouds
- Complex Method test_concatenate_node_unit.cpp: TEST:ConcatenateCloudTest:TestConcatenateClouds
- Deep, Nested Complexity collector_matching_strategy.ipp: match_cloud_to_collector
- Overall Code Complexity concatenate_and_time_sync_node.ipp
- Deep, Nested Complexity concatenate_and_time_sync_node.ipp: publish_clouds
- Code Duplication memory.cpp
- Lines of Code in a Single File test_concatenate_node_component.py
- Code Duplication test_concatenate_node_component.py
- Code Duplication test_concatenate_node_unit.cpp
- Large Method test_concatenate_node_component.py: TestConcatenateNode.test_8_abnormal_pointcloud_drop_continue_normal
- Large Method test_concatenate_node_component.py: TestConcatenateNode.test_7_abnormal_pointcloud_delay
- Complex Method concatenate_and_time_sync_node.ipp: publish_clouds
- Complex Method concatenate_and_time_sync_node.ipp: PointCloudConcatenateDataSynchronizerComponentTemplated
- Excess Number of Function Arguments test_concatenate_node_component.py: generate_transform_msg
- Primitive Obsession test_concatenate_node_unit.cpp
- Excess Number of Function Arguments test_concatenate_node_unit.cpp: generate_transform_msg
- Complex Method concatenate_and_time_sync_node.ipp: check_concat_status
- Complex Method concatenate_and_time_sync_node.ipp: cloud_callback
- Bumpy Road Ahead concatenate_and_time_sync_node.ipp: check_concat_status
- Complex Method combine_cloud_handler.cpp: combine_pointclouds
- Complex Method combine_cloud_handler.cpp: convert_to_xyzirc_cloud
- Bumpy Road Ahead cuda_combine_cloud_handler.cpp: combine_pointclouds
- Bumpy Road Ahead concatenate_and_time_sync_node.ipp: publish_clouds
- Bumpy Road Ahead concatenate_and_time_sync_node.ipp: cloud_callback
✅ Improving Code Health:
- Code Duplication combine_cloud_handler.cpp
- Complex Conditional combine_cloud_handler.cpp: CombineCloudHandler::convert_to_xyzirc_cloud
- Complex Method combine_cloud_handler.cpp: CombineCloudHandler::combine_pointclouds
- Complex Method combine_cloud_handler.cpp: CombineCloudHandler::convert_to_xyzirc_cloud
- Bumpy Road Ahead combine_cloud_handler.cpp: CombineCloudHandler::process_twist
- Bumpy Road Ahead combine_cloud_handler.cpp: CombineCloudHandler::process_odometry
- Bumpy Road Ahead combine_cloud_handler.cpp: CombineCloudHandler::convert_to_xyzirc_cloud
- Bumpy Road Ahead combine_cloud_handler.cpp: CombineCloudHandler::combine_pointclouds
- Deep, Nested Complexity collector_matching_strategy.cpp: NaiveMatchingStrategy::match_cloud_to_collector
- Complex Method concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::PointCloudConcatenateDataSynchronizerComponent
- Complex Method concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::publish_clouds
- Complex Method concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::check_concat_status
- Complex Method concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::cloud_callback
- Bumpy Road Ahead concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::check_concat_status
- Bumpy Road Ahead concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::publish_clouds
- Bumpy Road Ahead concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::PointCloudConcatenateDataSynchronizerComponent
- Bumpy Road Ahead concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::cloud_callback
- Overall Code Complexity concatenate_and_time_sync_node.cpp
- Deep, Nested Complexity concatenate_and_time_sync_node.cpp: PointCloudConcatenateDataSynchronizerComponent::publish_clouds
Annotations
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ Getting better: Code Duplication
reduced similar code in: CombineCloudHandler::process_odometry,CombineCloudHandler::process_twist. Avoid duplicated, aka copy-pasted, code inside the module. More duplication lowers the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Method
CombineCloudHandler::combine_pointclouds is no longer above the threshold for cyclomatic complexity. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Method
CombineCloudHandler::convert_to_xyzirc_cloud is no longer above the threshold for cyclomatic complexity. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Complex Method
combine_pointclouds has a cyclomatic complexity of 10, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Complex Method
convert_to_xyzirc_cloud has a cyclomatic complexity of 9, threshold = 9. This function has many conditional statements (e.g. if, for, while), leading to lower code health. Avoid adding more conditionals and code to it without refactoring.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Conditional
CombineCloudHandler::convert_to_xyzirc_cloud no longer has a complex conditional. A complex conditional is an expression inside a branch (e.g. if, for, while) which consists of multiple, logical operators such as AND/OR. The more logical operators in an expression, the more severe the code smell.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
CombineCloudHandler::process_twist is no longer above the threshold for logical blocks with deeply nested code. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
CombineCloudHandler::process_odometry is no longer above the threshold for logical blocks with deeply nested code. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
CombineCloudHandler::convert_to_xyzirc_cloud is no longer above the threshold for logical blocks with deeply nested code. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
CombineCloudHandler::combine_pointclouds is no longer above the threshold for logical blocks with deeply nested code. The Bumpy Road code smell is a function that contains multiple chunks of nested conditional logic. The deeper the nesting and the more bumps, the lower the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Method
PointCloudConcatenateDataSynchronizerComponent::PointCloudConcatenateDataSynchronizerComponent is no longer above the threshold for cyclomatic complexity
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Method
PointCloudConcatenateDataSynchronizerComponent::publish_clouds is no longer above the threshold for cyclomatic complexity
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Method
PointCloudConcatenateDataSynchronizerComponent::check_concat_status is no longer above the threshold for cyclomatic complexity
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Complex Method
PointCloudConcatenateDataSynchronizerComponent::cloud_callback is no longer above the threshold for cyclomatic complexity
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
PointCloudConcatenateDataSynchronizerComponent::check_concat_status is no longer above the threshold for logical blocks with deeply nested code
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
PointCloudConcatenateDataSynchronizerComponent::publish_clouds is no longer above the threshold for logical blocks with deeply nested code
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
PointCloudConcatenateDataSynchronizerComponent::PointCloudConcatenateDataSynchronizerComponent is no longer above the threshold for logical blocks with deeply nested code
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Bumpy Road Ahead
PointCloudConcatenateDataSynchronizerComponent::cloud_callback is no longer above the threshold for logical blocks with deeply nested code
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Overall Code Complexity
The mean cyclomatic complexity in this module is no longer above the threshold
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
✅ No longer an issue: Deep, Nested Complexity
PointCloudConcatenateDataSynchronizerComponent::publish_clouds is no longer above the threshold for nested complexity depth
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Lines of Code in a Single File
This module has 690 lines of code, improve code health by reducing it to 600. The number of Lines of Code in a single file. More Lines of Code lowers the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Code Duplication
The module contains 7 functions with similar structure: TestConcatenateNode.test_1_normal_inputs,TestConcatenateNode.test_2_normal_inputs_with_noise,TestConcatenateNode.test_3_abnormal_null_pointcloud,TestConcatenateNode.test_5_abnormal_multiple_pointcloud_drop and 3 more functions. Avoid duplicated, aka copy-pasted, code inside the module. More duplication lowers the code health.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Large Method
TestConcatenateNode.test_8_abnormal_pointcloud_drop_continue_normal has 89 lines, threshold = 70. Large functions with many lines of code are generally harder to understand and lower the code health. Avoid adding more lines to this function.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Large Method
TestConcatenateNode.test_7_abnormal_pointcloud_delay has 81 lines, threshold = 70. Large functions with many lines of code are generally harder to understand and lower the code health. Avoid adding more lines to this function.
codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)
❌ New issue: Excess Number of Function Arguments
generate_transform_msg has 9 arguments, threshold = 4. This function has too many arguments, indicating a lack of encapsulation. Avoid adding more arguments.