Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(autoware_lidar_bevfusion): implementation of bevusion using tensorrt #10024

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

chore: and yet more spells

741f5c0
Select commit
Loading
Failed to load commit list.
Open

feat(autoware_lidar_bevfusion): implementation of bevusion using tensorrt #10024

chore: and yet more spells
741f5c0
Select commit
Loading
Failed to load commit list.
CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main) failed Feb 21, 2025 in 47s

CodeScene PR Check

Quality Gate Failed

Gates Failed
New code is healthy (4 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 (10 files with Complex Method, Large Method, Excess Number of Function Arguments, Complex Conditional)

Gates Passed
1 Quality Gates Passed

See analysis details in CodeScene

Reason for failure
New code is healthy Violations Code Health Impact
get_indices_pairs_implicit_gemm_plugin_creator.cpp 3 rules 10.00 → 7.45 Suppress
lidar_bevfusion_node.cpp 3 rules 10.00 → 8.23 Suppress
bevfusion_trt.cpp 3 rules 10.00 → 8.70 Suppress
precomputed_features.cpp 3 rules 10.00 → 8.85 Suppress
Enforce critical code health rules Violations Code Health Impact
get_indices_pairs_implicit_gemm_plugin_creator.cpp 2 critical rules 10.00 → 7.45 Suppress
detection_class_remapper.cpp 1 critical rule 10.00 → 9.10 Suppress
non_maximum_suppression.cpp 2 critical rules 10.00 → 9.24 Suppress
Enforce advisory code health rules Violations Code Health Impact
get_indices_pairs_implicit_gemm_plugin_creator.cpp 1 advisory rule 10.00 → 7.45 Suppress
lidar_bevfusion_node.cpp 3 advisory rules 10.00 → 8.23 Suppress
bevfusion_trt.cpp 3 advisory rules 10.00 → 8.70 Suppress
precomputed_features.cpp 3 advisory rules 10.00 → 8.85 Suppress
detection_class_remapper.cpp 1 advisory rule 10.00 → 9.10 Suppress
get_indices_pairs_implicit_gemm_plugin.cpp 1 advisory rule 10.00 → 9.52 Suppress
implicit_gemm_plugin_creator.cpp 1 advisory rule 10.00 → 9.53 Suppress
implicit_gemm_plugin.cpp 1 advisory rule 10.00 → 9.69 Suppress
quick_cumsum_cuda_plugin.cpp 1 advisory rule 10.00 → 9.69 Suppress
quick_cumsum_cuda_plugin_creator.cpp 1 advisory rule 10.00 → 9.69 Suppress

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 get_indices_pairs_implicit_gemm_plugin_creator.cpp: GetIndicesPairsImplicitGemmPluginCreator::createPlugin
  • Bumpy Road Ahead get_indices_pairs_implicit_gemm_plugin_creator.cpp: GetIndicesPairsImplicitGemmPluginCreator::createPlugin
  • Large Method lidar_bevfusion_node.cpp: LidarBEVFusionNode::LidarBEVFusionNode
  • Deep, Nested Complexity detection_class_remapper.cpp: DetectionClassRemapper::mapClasses
  • Deep, Nested Complexity non_maximum_suppression.cpp: NonMaximumSuppression::generateIoUMatrix
  • Deep, Nested Complexity get_indices_pairs_implicit_gemm_plugin_creator.cpp: GetIndicesPairsImplicitGemmPluginCreator::createPlugin
  • Large Method bevfusion_trt.cpp: BEVFusionTRT::initTrt
  • Complex Method precomputed_features.cpp: bev_pool_aux
  • Large Method get_indices_pairs_implicit_gemm_plugin.cpp: GetIndicesPairsImplicitGemmPlugin::enqueue
  • Complex Method implicit_gemm_plugin_creator.cpp: ImplicitGemmPluginCreator::createPlugin
  • Complex Conditional lidar_bevfusion_node.cpp: LidarBEVFusionNode::cloudCallback
  • Complex Method bevfusion_trt.cpp: BEVFusionTRT::preProcess
  • Complex Method lidar_bevfusion_node.cpp: LidarBEVFusionNode::cloudCallback
  • Large Method precomputed_features.cpp: get_geometry
  • Excess Number of Function Arguments bevfusion_trt.cpp: BEVFusionTRT::detect
  • Complex Conditional detection_class_remapper.cpp: DetectionClassRemapper::mapClasses
  • Excess Number of Function Arguments precomputed_features.cpp: get_geometry
  • Complex Conditional lidar_bevfusion_node.cpp: LidarBEVFusionNode::cameraInfoCallback
  • Complex Method implicit_gemm_plugin.cpp: ImplicitGemmPlugin::supportsFormatCombination
  • Complex Method quick_cumsum_cuda_plugin.cpp: QuickCumsumCudaPlugin::supportsFormatCombination
  • Complex Method quick_cumsum_cuda_plugin_creator.cpp: QuickCumsumCudaPluginCreator::createPlugin
  • Bumpy Road Ahead non_maximum_suppression.cpp: NonMaximumSuppression::generateIoUMatrix

Annotations

Check warning on line 505 in perception/autoware_lidar_bevfusion/lib/bevfusion_trt.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

BEVFusionTRT::preProcess 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.

Check warning on line 292 in perception/autoware_lidar_bevfusion/lib/bevfusion_trt.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Large Method

BEVFusionTRT::initTrt has 110 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.

Check warning on line 326 in perception/autoware_lidar_bevfusion/lib/bevfusion_trt.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Excess Number of Function Arguments

BEVFusionTRT::detect has 6 arguments, threshold = 4. This function has too many arguments, indicating a lack of encapsulation. Avoid adding more arguments.

Check warning on line 64 in perception/autoware_lidar_bevfusion/lib/detection_class_remapper.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Conditional

DetectionClassRemapper::mapClasses has 1 complex conditionals with 2 branches, threshold = 2. 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.

Check warning on line 72 in perception/autoware_lidar_bevfusion/lib/detection_class_remapper.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Deep, Nested Complexity

DetectionClassRemapper::mapClasses has a nested complexity depth of 4, threshold = 4. This function contains deeply nested logic such as if statements and/or loops. The deeper the nesting, the lower the code health.

Check warning on line 94 in perception/autoware_lidar_bevfusion/lib/postprocess/non_maximum_suppression.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Bumpy Road Ahead

NonMaximumSuppression::generateIoUMatrix has 2 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is one single, nested block per function. 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.

Check warning on line 94 in perception/autoware_lidar_bevfusion/lib/postprocess/non_maximum_suppression.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Deep, Nested Complexity

NonMaximumSuppression::generateIoUMatrix has a nested complexity depth of 4, threshold = 4. This function contains deeply nested logic such as if statements and/or loops. The deeper the nesting, the lower the code health.

Check warning on line 303 in perception/autoware_lidar_bevfusion/lib/preprocess/precomputed_features.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

bev_pool_aux has a cyclomatic complexity of 13, 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.

Check warning on line 186 in perception/autoware_lidar_bevfusion/lib/preprocess/precomputed_features.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Large Method

get_geometry has 72 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.

Check warning on line 186 in perception/autoware_lidar_bevfusion/lib/preprocess/precomputed_features.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Excess Number of Function Arguments

get_geometry has 6 arguments, threshold = 4. This function has too many arguments, indicating a lack of encapsulation. Avoid adding more arguments.

Check warning on line 284 in perception/autoware_lidar_bevfusion/src/lidar_bevfusion_node.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

LidarBEVFusionNode::cloudCallback has a cyclomatic complexity of 17, 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.

Check warning on line 200 in perception/autoware_lidar_bevfusion/src/lidar_bevfusion_node.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Conditional

LidarBEVFusionNode::cloudCallback has 1 complex conditionals with 3 branches, threshold = 2. 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.

Check warning on line 310 in perception/autoware_lidar_bevfusion/src/lidar_bevfusion_node.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Conditional

LidarBEVFusionNode::cameraInfoCallback has 1 complex conditionals with 2 branches, threshold = 2. 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.

Check warning on line 194 in perception/autoware_lidar_bevfusion/src/lidar_bevfusion_node.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Large Method

LidarBEVFusionNode::LidarBEVFusionNode has 132 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.

Check warning on line 188 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/implicit_gemm_plugin.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

ImplicitGemmPlugin::supportsFormatCombination 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.

Check warning on line 171 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/implicit_gemm_plugin_creator.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

ImplicitGemmPluginCreator::createPlugin has a cyclomatic complexity of 13, 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.

Check warning on line 161 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/quick_cumsum_cuda_plugin.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

QuickCumsumCudaPlugin::supportsFormatCombination has a cyclomatic complexity of 11, 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.

Check warning on line 140 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/quick_cumsum_cuda_plugin_creator.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

QuickCumsumCudaPluginCreator::createPlugin has a cyclomatic complexity of 11, 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.

Check warning on line 364 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/get_indices_pairs_implicit_gemm_plugin.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Large Method

GetIndicesPairsImplicitGemmPlugin::enqueue has 87 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.

Check warning on line 317 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/get_indices_pairs_implicit_gemm_plugin_creator.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Complex Method

GetIndicesPairsImplicitGemmPluginCreator::createPlugin has a cyclomatic complexity of 42, 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.

Check warning on line 317 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/get_indices_pairs_implicit_gemm_plugin_creator.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Bumpy Road Ahead

GetIndicesPairsImplicitGemmPluginCreator::createPlugin has 13 blocks with nested conditional logic. Any nesting of 2 or deeper is considered. Threshold is one single, nested block per function. 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.

Check warning on line 317 in perception/autoware_lidar_bevfusion/src/tensorrt_plugins/get_indices_pairs_implicit_gemm_plugin_creator.cpp

See this annotation in the file changed.

@codescene-delta-analysis codescene-delta-analysis / CodeScene Cloud Delta Analysis (main)

❌ New issue: Deep, Nested Complexity

GetIndicesPairsImplicitGemmPluginCreator::createPlugin has a nested complexity depth of 4, threshold = 4. This function contains deeply nested logic such as if statements and/or loops. The deeper the nesting, the lower the code health.