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

refactor(perception_ground_segmentation): rework parameters #5777

Closed

perception/ground_segmentation

e9b674a
Select commit
Loading
Failed to load commit list.
Closed

refactor(perception_ground_segmentation): rework parameters #5777

perception/ground_segmentation
e9b674a
Select commit
Loading
Failed to load commit list.
CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main) failed May 28, 2024 in 3m 41s

CodeScene PR Check

Code Health Quality Gates: FAILED

  • Declining Code Health: 203 findings(s) 🚩
  • Improving Code Health: 198 findings(s) ✅
  • Affected Hotspots: 16 files(s) 🔥

View detailed results in CodeScene

Details

🚩 Declining Code Health (highest to lowest):

  • Complex Conditional scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Complex Method scene.cpp: NormalLaneChange::getLaneChangePaths 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::getOcclusionStatus 🔥
  • Complex Method static_drivable_area.cpp: makeBoundLongitudinallyMonotonic
  • Large Method traffic_light_node_container.launch.py: generate_launch_description
  • Brain Method turn_signal_decider.cpp: TurnSignalDecider::getIntersectionTurnSignalInfo
  • Brain Method scene_intersection.cpp: IntersectionModule::getOcclusionStatus 🔥
  • Brain Method scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Complex Method occupancy_grid_map_projective.cpp: OccupancyGridMapProjectiveBlindSpot::updateWithPointCloud
  • Complex Conditional scene.cpp: DynamicAvoidanceModule::updateTargetObjects 🔥
  • Complex Method scene.cpp: DynamicAvoidanceModule::updateTargetObjects 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::getObjectiveLanelets 🔥
  • Complex Method manager.cpp: LaneChangeModuleManager::initParams
  • Complex Conditional manager.cpp: LaneChangeModuleManager::initParams
  • Code Duplication mission_planner.cpp
  • Large Method ndt_scan_matcher_core.cpp: is_activated_
  • Complex Method static_drivable_area.cpp: generateDrivableArea
  • Complex Method scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Complex Method utils.cpp: generateDrivableLanes 🔥
  • Complex Method utils.cpp: generateExpandDrivableLanes 🔥
  • Complex Method scene.cpp: NormalLaneChange::filterObject 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::getObjectiveLanelets 🔥
  • Complex Conditional utils.cpp: generateDrivableLanes 🔥
  • Complex Method utils.cpp: existShiftSideLane 🔥
  • Complex Method shift_pull_over.cpp: ShiftPullOver::generatePullOverPath
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::getOcclusionStatus 🔥
  • Large Method manager.cpp: DynamicAvoidanceModuleManager::updateModuleParams
  • Overall Code Complexity multi_object_tracker_core.cpp
  • Deep, Nested Complexity multi_object_tracker_core.cpp: MultiObjectTracker::sanitizeTracker
  • Lines of Code in a Single File scene.cpp 🔥
  • Overall Code Complexity scene.cpp 🔥
  • Deep, Nested Complexity scene.cpp: DynamicAvoidanceModule::calcCollisionSection 🔥
  • Lines of Code in a Single File scene.cpp 🔥
  • Overall Code Complexity scene.cpp 🔥
  • Deep, Nested Complexity scene.cpp: NormalLaneChange::getLaneChangePaths 🔥
  • Overall Code Complexity utils.cpp 🔥
  • Deep, Nested Complexity utils.cpp: generateDrivableLanes 🔥
  • Deep, Nested Complexity turn_signal_decider.cpp: TurnSignalDecider::getIntersectionTurnSignalInfo
  • Deep, Nested Complexity shift_pull_out.cpp: ShiftPullOut::plan
  • Code Duplication scene.cpp
  • Overall Code Complexity debug.cpp
  • Deep, Nested Complexity grid_utils.cpp: isCollisionFree
  • Code Duplication rtc_interface.cpp
  • Deep, Nested Complexity node.cpp: PathSampler::generatePath
  • Overall Code Complexity graph.cpp
  • Large Method debug.cpp: createDebugMarkerArray
  • Bumpy Road Ahead static_drivable_area.cpp: makeBoundLongitudinallyMonotonic
  • Complex Method scene.cpp: NormalLaneChange::insertStopPoint 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Bumpy Road Ahead utils.cpp: generateDrivableLanes 🔥
  • Complex Conditional scene.cpp: calcDistanceToPath 🔥
  • Large Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::SimplePlanningSimulator
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::generateIntersectionStopLines 🔥
  • Large Method ndt_scan_matcher_core.cpp: NDTScanMatcher::align_pose
  • Large Method manager.cpp: DynamicAvoidanceModuleManager::init
  • Complex Method multi_object_tracker_core.cpp: MultiObjectTracker::sanitizeTracker
  • Complex Method scene.cpp: DynamicAvoidanceModule::calcEgoPathBasedDynamicObstaclePolygon 🔥
  • Complex Conditional turn_signal_decider.cpp: TurnSignalDecider::getIntersectionTurnSignalInfo
  • Complex Conditional node.cpp: ObstacleCruisePlannerNode::onTrajectory
  • Complex Method scene_intersection.cpp: IntersectionModule::calcIntersectionPassingTime 🔥
  • Complex Method mission_planner.cpp: MissionPlanner::on_change_route_points
  • Complex Method mission_planner.cpp: MissionPlanner::on_change_route
  • Bumpy Road Ahead static_drivable_area.cpp: generateDrivableArea
  • Complex Method config.cpp: resolve_link_nodes
  • Large Method scene.cpp: AvoidanceModule::plan 🔥
  • Complex Method scene.cpp: DynamicAvoidanceModule::calcValidLengthToAvoid 🔥
  • Bumpy Road Ahead scene.cpp: NormalLaneChange::getLaneChangePaths 🔥
  • Complex Method scene_no_stopping_area.cpp: NoStoppingAreaModule::generateEgoNoStoppingAreaLanePolygon
  • Complex Method scene.cpp: BlindSpotModule::checkObstacleInBlindSpot
  • Complex Method utils.cpp: calcTurnSignalInfo 🔥
  • Complex Method scene.cpp: DynamicAvoidanceModule::isLabelTargetObstacle 🔥
  • Large Method node.cpp: BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode
  • Large Method test_static_centerline_optimizer.test.py: generate_test_description
  • Complex Method node.cpp: ShapeEstimationNode::callback
  • Complex Method perception_reproducer.py: PerceptionReproducer.on_timer
  • Complex Method graph.cpp: topological_sort
  • Complex Method mission_planner.cpp: MissionPlanner::on_clear_mrm_route
  • Complex Method scene.cpp: BlindSpotModule::modifyPathVelocity
  • Complex Method scene.cpp: NormalLaneChange::isLaneChangePathSafe 🔥
  • Complex Method utils.cpp: isObjectOnRoadShoulder 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::checkYieldStuckVehicleInIntersection 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::checkStuckVehicleInIntersection 🔥
  • Complex Conditional scene_intersection.cpp: isTargetCollisionVehicleType 🔥
  • Complex Method mission_planner.cpp: MissionPlanner::on_set_mrm_route
  • Complex Method static_drivable_area.cpp: generateDrivableArea
  • Complex Method scene.cpp: NormalLaneChange::calcAbortPath 🔥
  • Complex Method nodelet.cpp: TensorrtYoloNodelet::callback
  • Complex Conditional scene.cpp: DynamicAvoidanceModule::calcEgoPathBasedDynamicObstaclePolygon 🔥
  • Complex Method utils.cpp: getLeadingStaticObjectIdx 🔥
  • Complex Method graph.cpp: make_node
  • Complex Method scene_intersection.cpp: IntersectionLanelets::update 🔥
  • Complex Method planner_manager.cpp: PlannerManager::resetRootLanelet 🔥
  • Complex Method scene.cpp: NormalLaneChange::isVehicleStuck 🔥
  • Complex Conditional ndt_scan_matcher_core.cpp: NDTScanMatcher::publish_diagnostic
  • Complex Method decorative_tracker_merger.cpp: DecorativeTrackerMergerNode::decorativeMerger
  • Complex Conditional interface.cpp: LaneChangeInterface::getCurrentTurnSignalInfo 🔥
  • Complex Conditional scene.cpp: NormalLaneChange::filterObject 🔥
  • Complex Conditional scene.cpp: NormalLaneChange::isRequiredStop 🔥
  • Primitive Obsession utils.cpp 🔥
  • Complex Conditional static_drivable_area.cpp: generateDrivableArea
  • Complex Conditional scene.cpp: SideShiftModule::canTransitSuccessState
  • Complex Conditional scene.cpp: SideShiftModule::plan
  • Excess Number of Function Arguments utils.cpp: transformToGrid
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::getObjectiveLanelets 🔥
  • Deep, Nested Complexity scene_intersection.cpp: getFirstPointInsidePolygons 🔥
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::cutPredictPathWithDuration 🔥
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::getOcclusionStatus 🔥
  • Complex Method node.cpp: BehaviorVelocityPlannerNode::isDataReady
  • Excess Number of Function Arguments utility_functions.cpp: set_color
  • Complex Conditional mission_planner.cpp: MissionPlanner::on_clear_mrm_route
  • Primitive Obsession planning_interface_test_manager.cpp
  • String Heavy Function Arguments planning_interface_test_manager.cpp
  • Complex Method tool.cpp: dump_tree_path
  • Complex Method multi_object_tracker_core.cpp: MultiObjectTracker::onMeasurement
  • Complex Method scene.cpp: DynamicAvoidanceModule::calcMinMaxLateralOffsetToAvoid 🔥
  • Complex Method static_centerline_optimizer_node.cpp: StaticCenterlineOptimizerNode::evaluate
  • Complex Conditional scene_intersection.cpp: isTargetStuckVehicleType 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::generateTargetObjects 🔥
  • Complex Method utils.cpp: generateDrivableLanes 🔥
  • Complex Method mission_planner.cpp: MissionPlanner::on_set_route_points
  • Complex Method mission_planner.cpp: MissionPlanner::on_set_route
  • Complex Method utils.cpp: generateObstaclePolygonsForDrivableArea 🔥
  • Complex Method utils.cpp: isForceAvoidanceTarget 🔥
  • Bumpy Road Ahead scene.cpp: DynamicAvoidanceModule::updateTargetObjects 🔥
  • Complex Method utils.cpp: isParkedObject 🔥
  • Complex Method mission_planner.cpp: MissionPlanner::on_modified_goal
  • Bumpy Road Ahead scene.cpp: NormalLaneChange::insertStopPoint 🔥
  • Bumpy Road Ahead scene.cpp: NormalLaneChange::filterObject 🔥
  • Complex Method grid_utils.cpp: toQuantizedImage
  • Complex Method grid_utils.cpp: isCollisionFree
  • Complex Method static_centerline_optimizer_node.cpp: StaticCenterlineOptimizerNode::on_plan_path
  • Complex Method config.cpp: resolve_remove_edits
  • Complex Method multi_object_tracker_core.cpp: MultiObjectTracker::createNewTracker
  • Complex Method interface.cpp: LaneChangeInterface::canTransitFailureState 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::generateIntersectionStopLines 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::checkYieldStuckVehicleInIntersection 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionLanelets::update 🔥
  • Complex Method utils.cpp: passParkedObject 🔥
  • Complex Method utils.cpp: constructCandidatePath 🔥
  • Bumpy Road Ahead static_drivable_area.cpp: generateDrivableArea
  • Complex Method scene_intersection.cpp: IntersectionModule::checkAngleForTargetLanelets 🔥
  • Complex Method scene_intersection.cpp: getFirstPointInsidePolygons 🔥
  • Complex Method scene_intersection.cpp: formatDecisionResult 🔥
  • Bumpy Road Ahead scene.cpp: BlindSpotModule::insertPoint
  • Bumpy Road Ahead mission_planner.cpp: MissionPlanner::on_modified_goal
  • Complex Method scene.cpp: calcDistanceToPath 🔥
  • Bumpy Road Ahead start_planner_module.cpp: StartPlannerModule::plan 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::generatePathLanelets 🔥
  • Bumpy Road Ahead config.cpp: resolve_link_nodes
  • Bumpy Road Ahead multi_object_tracker_core.cpp: MultiObjectTracker::sanitizeTracker
  • Complex Conditional utils.cpp: passParkedObject 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::isGreenSolidOn 🔥
  • Bumpy Road Ahead grid_utils.cpp: isCollisionFree
  • Bumpy Road Ahead graph.cpp: topological_sort
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::checkAngleForTargetLanelets 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::generateDetectionLaneDivisions 🔥
  • Complex Method interface.cpp: LaneChangeInterface::getCurrentTurnSignalInfo 🔥
  • Bumpy Road Ahead utils.cpp: getTargetNeighborLanes 🔥
  • Bumpy Road Ahead utils.cpp: generateDrivableLanes 🔥
  • Bumpy Road Ahead utils.cpp: getSortedLaneIds 🔥
  • Bumpy Road Ahead utils.cpp: isParkedObject 🔥
  • Complex Method scene.cpp: SideShiftModule::updateData
  • Bumpy Road Ahead pointcloud_map_loader_node.cpp: PointCloudMapLoaderNode::getPCDMetadata
  • Bumpy Road Ahead path_generator.cpp: PathGenerator::generatePathForCrosswalkUser
  • Bumpy Road Ahead occupancy_grid_based_collision_detector.cpp: OccupancyGridBasedCollisionDetector::detectCollision
  • Bumpy Road Ahead perception_reproducer.py: PerceptionReproducer.on_timer
  • Bumpy Road Ahead static_centerline_optimizer_node.cpp: StaticCenterlineOptimizerNode::evaluate
  • Bumpy Road Ahead debug.cpp: Graph::debug
  • Bumpy Road Ahead tool.cpp: dump_tree_path
  • Complex Method scene.cpp: SideShiftModule::canTransitSuccessState
  • Complex Conditional scene_intersection.cpp: reactRTCApprovalByDecisionResult 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::checkAngleForTargetLanelets 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::calcIntersectionPassingTime 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionLanelets::update 🔥
  • Bumpy Road Ahead start_planner_module.cpp: StartPlannerModule::calcTurnSignalInfo 🔥
  • Bumpy Road Ahead start_planner_module.cpp: StartPlannerModule::setDebugData 🔥
  • Bumpy Road Ahead planner_manager.cpp: PlannerManager::resetRootLanelet 🔥
  • Bumpy Road Ahead scene.cpp: DynamicAvoidanceModule::updateRefPathBeforeLaneChange 🔥
  • Bumpy Road Ahead scene.cpp: DynamicAvoidanceModule::calcCollisionSection 🔥
  • Bumpy Road Ahead scene.cpp: DynamicAvoidanceModule::willObjectCutOut 🔥
  • Bumpy Road Ahead scene.cpp: DynamicAvoidanceModule::calcValidLengthToAvoid 🔥
  • Bumpy Road Ahead multi_object_tracker_core.cpp: MultiObjectTracker::onMeasurement
  • Bumpy Road Ahead graph.cpp: Graph::init
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::getStopLineIndexFromMap 🔥
  • Bumpy Road Ahead scene_intersection.cpp: getFirstPointInsidePolygons 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::generatePathLanelets 🔥
  • Bumpy Road Ahead scene_intersection.cpp: getLineStringFromArcLength 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::generateTargetObjects 🔥
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::calcIntersectionPassingTime 🔥
  • Bumpy Road Ahead config.cpp: resolve_remove_edits
  • Excess Number of Function Arguments utils.cpp: getReferencePathFromTargetLane 🔥
  • Excess Number of Function Arguments utils.cpp: passParkedObject 🔥
  • Excess Number of Function Arguments utils.cpp: hasEnoughLengthToLaneChangeAfterAbort 🔥
  • Excess Number of Function Arguments utils.cpp: convertToPredictedPath 🔥
  • Excess Number of Function Arguments utils.cpp: isParkedObject 🔥
  • Excess Number of Function Arguments utils.cpp: getTargetPreferredLanes 🔥
  • Excess Number of Function Arguments utils.cpp: constructCandidatePath 🔥
  • Excess Number of Function Arguments utils.cpp: isParkedObject 🔥
  • Excess Number of Function Arguments utils.cpp: getLeadingStaticObjectIdx 🔥

✅ Improving Code Health:

  • Large Method manager.cpp: GoalPlannerModuleManager::init
  • Large Method manager.cpp: StartPlannerModuleManager::init
  • Complex Method shift_line_generator.cpp: ShiftLineGenerator::generateAvoidOutline
  • Large Method lanelet2_map_visualization_node.cpp: Lanelet2MapVisualizationNode::onMapBin
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::objectsCallback
  • Large Method manager.cpp: GoalPlannerModuleManager::updateModuleParams
  • Complex Method pid_longitudinal_controller.cpp: PidLongitudinalController::updateControlState
  • Large Method manager.cpp: StartPlannerModuleManager::updateModuleParams
  • Complex Method debug.cpp: IntersectionModule::createDebugMarkerArray
  • Large Method manager.cpp: AvoidanceByLaneChangeModuleManager::init
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::onTimer 🔥
  • Large Method pid_longitudinal_controller.cpp: diagnostic_updater_
  • Complex Method geometric_parallel_parking.cpp: GeometricParallelParking::planOneTrial
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::setDebugData 🔥
  • Large Method traffic_light_node_container.launch.py: launch_setup
  • Code Duplication object_polygon_detail.cpp
  • Overall Code Complexity mpc.cpp
  • Overall Code Complexity pid_longitudinal_controller.cpp
  • Lines of Code in a Single File map_based_prediction_node.cpp
  • Overall Code Complexity map_based_prediction_node.cpp
  • Overall Code Complexity radar_object_tracker_node.cpp
  • Lines of Code in a Single File scene.cpp 🔥
  • Overall Code Complexity scene.cpp 🔥
  • Overall Code Complexity shift_line_generator.cpp
  • Lines of Code in a Single File utils.cpp 🔥
  • Lines of Code in a Single File goal_planner_module.cpp 🔥
  • Overall Code Complexity goal_planner_module.cpp 🔥
  • Overall Code Complexity turn_signal_decider.cpp
  • Overall Code Complexity drivable_area_expansion.cpp
  • Overall Code Complexity geometric_parallel_parking.cpp
  • Overall Code Complexity path_utils.cpp
  • Lines of Code in a Single File utils.cpp 🔥
  • Lines of Code in a Single File start_planner_module.cpp 🔥
  • Overall Code Complexity scene_crosswalk.cpp 🔥
  • Overall Code Complexity manager.cpp
  • Code Duplication scene_intersection.cpp 🔥
  • Overall Code Complexity occlusion_spot_utils.cpp
  • Overall Code Complexity scene.cpp
  • Lines of Code in a Single File mpt_optimizer.cpp
  • Lines of Code in a Single File node.cpp
  • Large Method pid_longitudinal_controller.cpp: PidLongitudinalController::paramCallback
  • Complex Method mission_planner.cpp: MissionPlanner::check_reroute_safety
  • Complex Method manager.cpp: AvoidanceModuleManager::updateModuleParams 🔥
  • Large Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::BehaviorPathPlannerNode 🔥
  • Bumpy Road Ahead mission_planner.cpp: MissionPlanner::check_reroute_safety
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::getPredictedObjectAsCrosswalkUser
  • Complex Method scene_intersection.cpp: IntersectionModule::isOverPassJudgeLinesStatus 🔥
  • Complex Method utils.cpp: getSafetyCheckTargetObjects 🔥
  • Complex Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::run 🔥
  • Large Method test_longitudinal_controller_utils.cpp: TEST:TestLongitudinalControllerUtils:lerpTrajectoryPoint
  • Complex Conditional scene_intersection.cpp: IntersectionModule::getTrafficPrioritizedLevel 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::isOverPassJudgeLinesStatus 🔥
  • Large Method ndt_scan_matcher_core.cpp: NDTScanMatcher::NDTScanMatcher
  • Complex Conditional mission_planner.cpp: MissionPlanner::check_reroute_safety
  • Large Method map_based_prediction_node.cpp: MapBasedPredictionNode::MapBasedPredictionNode
  • Complex Method planner_manager.cpp: PlannerManager::runApprovedModules 🔥
  • Complex Method pointcloud_based_occupancy_grid_map_node.cpp: PointcloudBasedOccupancyGridMapNode::onPointcloudWithObstacleAndRaw
  • Complex Method safety_check.cpp: getCollidedPolygons 🔥
  • Bumpy Road Ahead map_based_prediction_node.cpp: MapBasedPredictionNode::objectsCallback
  • Complex Method static_drivable_area.cpp: postProcess
  • Complex Method static_drivable_area.cpp: getBoundWithFreeSpaceAreas
  • Complex Method static_drivable_area.cpp: removeSharpPoints
  • Complex Method node.cpp: PathSampler::generateCandidatesFromPreviousPath
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::calcIntentionToCrossWithTrafficSignal
  • Complex Method map_based_prediction_node.cpp: removeOldObjectsHistory
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::tryMatchNewObjectToDisappeared
  • Complex Method static_drivable_area.cpp: combineDrivableLanes
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::selectPullOverPath 🔥
  • Complex Method turn_signal_decider.cpp: TurnSignalDecider::getBehaviorTurnSignalInfo
  • Complex Method utils.cpp: filterTargetObjects 🔥
  • Complex Method shift_pull_out.cpp: ShiftPullOut::plan
  • Complex Method scene.cpp: AvoidanceModule::isSafePath 🔥
  • Complex Method ndt_scan_matcher_core.cpp: NDTScanMatcher::callback_sensor_points_main
  • Complex Method node.cpp: ObstacleCruisePlannerNode::findYieldCruiseObstacles
  • Excess Number of Function Arguments node.cpp: AEB::addMarker
  • Complex Conditional goal_planner_module.cpp: GoalPlannerModule::onFreespaceParkingTimer 🔥
  • Primitive Obsession util.cpp
  • Primitive Obsession safety_check.cpp 🔥
  • Deep, Nested Complexity collision.cpp: find_closest_collision_point
  • Complex Method object_filtering.cpp: filter_predicted_objects
  • Primitive Obsession scene_intersection.cpp 🔥
  • Complex Method default_planner.cpp: DefaultPlanner::is_goal_valid
  • Excess Number of Function Arguments rtc_interface.cpp: RTCInterface::updateCooperateStatus
  • Complex Conditional simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_input
  • Complex Method mission_planner.cpp: MissionPlanner::on_set_waypoint_route
  • Complex Method mission_planner.cpp: MissionPlanner::on_set_lanelet_route
  • Complex Method start_planner_module.cpp: StartPlannerModule::isPreventingRearVehicleFromPassingThrough 🔥
  • Complex Method start_planner_module.cpp: StartPlannerModule::onFreespacePlannerTimer 🔥
  • Complex Method start_planner_module.cpp: StartPlannerModule::updateData 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::modifyPathVelocity 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::applySafetySlowDownSpeed 🔥
  • Complex Method utils.cpp: generateExpandedDrivableLanes 🔥
  • Complex Method utils.cpp: isNeverAvoidanceTarget 🔥
  • Complex Method utils.cpp: isParkedVehicle 🔥
  • Complex Method utils.cpp: getRoadShoulderDistance 🔥
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::checkDecidingPathStatus 🔥
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::isSafePath 🔥
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::onFreespaceParkingTimer 🔥
  • Complex Method node.cpp: ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles
  • Complex Method pid_longitudinal_controller.cpp: PidLongitudinalController::predictedStateAfterDelay
  • Complex Method pid_longitudinal_controller.cpp: PidLongitudinalController::getControlData
  • Complex Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::isDataReady 🔥
  • Complex Method goal_planner_module.cpp: GoalPlannerModule::sortPullOverPathCandidatesByGoalPriority 🔥
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::updateTrafficSignalObservation 🔥
  • Complex Method utils.cpp: getAdjacentLane 🔥
  • Complex Method utils.cpp: isSatisfiedWithVehicleCondition 🔥
  • Bumpy Road Ahead node.cpp: PathSampler::generateCandidatesFromPreviousPath
  • Complex Method static_drivable_area.cpp: calcBound
  • Complex Method scene.cpp: BlindSpotModule::isCollisionDetected
  • Complex Method scene.cpp: findLaneIdInterval
  • Complex Method scene.cpp: BlindSpotModule::modifyPathVelocityDetail
  • Complex Method occlusion_spot_utils.cpp: calcSlowDownPointsForPossibleCollision
  • Deep, Nested Complexity static_drivable_area.cpp: getOverlappedLaneletId
  • Bumpy Road Ahead geometric_parallel_parking.cpp: GeometricParallelParking::planOneTrial
  • Complex Method scene.cpp: RunOutModule::modifyPathVelocity
  • Complex Method scene.cpp: AvoidanceModule::insertPrepareVelocity 🔥
  • Bumpy Road Ahead static_drivable_area.cpp: postProcess
  • Bumpy Road Ahead shift_line_generator.cpp: ShiftLineGenerator::generateAvoidOutline
  • Complex Method static_drivable_area.cpp: getOverlappedLaneletId
  • Complex Method scene.cpp: AvoidanceModule::plan 🔥
  • Large Method scene.cpp: AvoidanceModule::fillFundamentalData 🔥
  • Complex Conditional start_planner_module.cpp: StartPlannerModule::onFreespacePlannerTimer 🔥
  • Complex Conditional start_planner_module.cpp: StartPlannerModule::updateData 🔥
  • Deep, Nested Complexity utils.cpp: getAdjacentLane 🔥
  • Deep, Nested Complexity utils.cpp: generateExpandedDrivableLanes 🔥
  • Complex Conditional scene_crosswalk.cpp: CrosswalkModule::modifyPathVelocity 🔥
  • Deep, Nested Complexity scene_crosswalk.cpp: CrosswalkModule::modifyPathVelocity 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::getTrafficPrioritizedLevel 🔥
  • Complex Conditional goal_planner_module.cpp: GoalPlannerModule::onTimer 🔥
  • Complex Conditional goal_planner_module.cpp: GoalPlannerModule::sortPullOverPathCandidatesByGoalPriority 🔥
  • Complex Conditional goal_planner_module.cpp: GoalPlannerModule::checkDecidingPathStatus 🔥
  • Bumpy Road Ahead map_based_prediction_node.cpp: removeOldObjectsHistory
  • Bumpy Road Ahead map_based_prediction_node.cpp: MapBasedPredictionNode::calcIntentionToCrossWithTrafficSignal
  • Excess Number of Function Arguments object_polygon_detail.cpp: get_shape_marker_ptr
  • Excess Number of Function Arguments node.cpp: AEB::createObjectDataUsingPointCloudClusters
  • Bumpy Road Ahead lanelet2_map_loader_node.cpp: Lanelet2MapLoaderNode::load_map
  • Bumpy Road Ahead occupancy_grid_map_fixed.cpp: OccupancyGridMapFixedBlindSpot::updateWithPointCloud
  • Bumpy Road Ahead scene.cpp: AvoidanceModule::isSafePath 🔥
  • Complex Conditional utils.cpp: isNeverAvoidanceTarget 🔥
  • Excess Number of Function Arguments start_planner_module.cpp: StartPlannerModule::StartPlannerData::update 🔥
  • Bumpy Road Ahead default_planner.cpp: DefaultPlanner::is_goal_valid
  • Excess Number of Function Arguments default_planner.cpp: DefaultPlanner::check_goal_footprint_inside_lanes
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::findYieldCruiseObstacles
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::createOneStepPolygons
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles
  • Complex Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_input
  • Complex Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::initialize_vehicle_model
  • Complex Method drivable_area_expansion.cpp: expand_drivable_area
  • Bumpy Road Ahead utils.cpp: filterTargetObjects 🔥
  • Bumpy Road Ahead utils.cpp: getSafetyCheckTargetObjects 🔥
  • Complex Method mpc_lateral_controller.cpp: MpcLateralController::run
  • Bumpy Road Ahead goal_planner_module.cpp: GoalPlannerModule::sortPullOverPathCandidatesByGoalPriority 🔥
  • Bumpy Road Ahead node.cpp: AEB::createObjectDataUsingPointCloudClusters
  • Bumpy Road Ahead default_planner.cpp: DefaultPlanner::check_goal_footprint_inside_lanes
  • Complex Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_initial_state
  • Excess Number of Function Arguments static_drivable_area.cpp: calcBound
  • Bumpy Road Ahead utils.cpp: isNeverAvoidanceTarget 🔥
  • Bumpy Road Ahead utils.cpp: isParkedVehicle 🔥
  • Bumpy Road Ahead utils.cpp: generateExpandedDrivableLanes 🔥
  • Bumpy Road Ahead utils.cpp: getAdjacentLane 🔥
  • Complex Method node.cpp: AEB::checkCollision
  • Complex Method node.cpp: AEB::createObjectDataUsingPointCloudClusters
  • Complex Method node.cpp: AEB::fetchLatestData
  • Excess Number of Function Arguments static_drivable_area.cpp: postProcess
  • Excess Number of Function Arguments scene.cpp: RunOutModule::insertStoppingVelocity
  • Excess Number of Function Arguments geometric_parallel_parking.cpp: GeometricParallelParking::planOneTrial
  • Excess Number of Function Arguments util.cpp: generateExpandedPullOverLanes
  • Excess Number of Function Arguments util.cpp: generateBetweenEgoAndExpandedPullOverLanes
  • Excess Number of Function Arguments util.cpp: extractObjectsInExpandedPullOverLanes
  • Excess Number of Function Arguments util.cpp: extractStaticObjectsInExpandedPullOverLanes
  • Excess Number of Function Arguments debug.cpp: createArrowLineMarkerArray
  • Bumpy Road Ahead map_height_fitter.cpp: MapHeightFitter::Impl::get_ground_height
  • Bumpy Road Ahead map_height_fitter.cpp: MapHeightFitter::Impl::fit
  • Excess Number of Function Arguments safety_check.cpp: createExtendedPolygonAlongPath 🔥
  • Excess Number of Function Arguments utils.cpp: getSafetyCheckTargetObjects 🔥
  • Excess Number of Function Arguments geometric_parallel_parking.cpp: GeometricParallelParking::planPullOut
  • Complex Method object_polygon_detail.cpp: get_shape_marker_ptr
  • Bumpy Road Ahead object_polygon_detail.cpp: get_shape_marker_ptr
  • Complex Conditional node.cpp: AEB::createObjectDataUsingPointCloudClusters
  • Overall Code Complexity node.cpp
  • Complex Method map_update_module.cpp: MapUpdateModule::update_ndt
  • Bumpy Road Ahead map_update_module.cpp: MapUpdateModule::update_map
  • Complex Method map_height_fitter.cpp: MapHeightFitter::Impl::fit
  • Overall Code Complexity map_height_fitter.cpp
  • Complex Method lanelet2_map_loader_node.cpp: Lanelet2MapLoaderNode::load_map
  • Large Method multi_object_tracker_core.cpp: MultiObjectTracker::MultiObjectTracker
  • Complex Method debug.cpp: createDebugMarkerArray
  • Overall Code Complexity debug.cpp
  • Excess Number of Function Arguments goal_planner_module.cpp: GoalPlannerModule::GoalPlannerData::update 🔥
  • Complex Conditional object_filtering.cpp: filter_predicted_objects
  • Code Duplication debug.cpp
  • Excess Number of Function Arguments mission_planner.cpp: MissionPlanner::create_route
  • Excess Number of Function Arguments mission_planner.cpp: MissionPlanner::create_route
  • Large Method node.cpp: ObstacleCruisePlannerNode::createOneStepPolygons
  • Large Method node.cpp: ObstacleCruisePlannerNode::BehaviorDeterminationParam::onParam
  • Overall Code Complexity node.cpp
  • Deep, Nested Complexity node.cpp: ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles
  • Deep, Nested Complexity node.cpp: ObstacleCruisePlannerNode::findYieldCruiseObstacles

Annotations

Check warning on line 236 in planning/behavior_path_side_shift_module/src/scene.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Method

SideShiftModule::updateData 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 175 in planning/behavior_path_side_shift_module/src/scene.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Method

SideShiftModule::canTransitSuccessState 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.

Check warning on line 154 in planning/behavior_path_side_shift_module/src/scene.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Conditional

SideShiftModule::canTransitSuccessState 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 269 in planning/behavior_path_side_shift_module/src/scene.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Conditional

SideShiftModule::plan 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 99 in planning/behavior_path_side_shift_module/src/utils.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

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

Check notice on line 1 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ Getting better: Lines of Code in a Single File

The lines of code decreases from 1238 to 1122, improve code health by reducing it to 1000. The number of Lines of Code in a single file. More Lines of Code lowers the code health.

Check notice on line 718 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ Getting better: Complex Method

AvoidanceModule::isSafePath decreases in cyclomatic complexity from 17 to 15, 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 notice on line 1614 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ Getting better: Complex Method

AvoidanceModule::insertPrepareVelocity decreases in cyclomatic complexity from 17 to 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 notice on line 504 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

ℹ Getting worse: Complex Method

AvoidanceModule::fillEgoStatus increases in cyclomatic complexity from 9 to 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.

Check notice on line 166 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

ℹ Getting worse: Complex Method

AvoidanceModule::isSatisfiedSuccessCondition increases in cyclomatic complexity from 9 to 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.

Check notice on line 940 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Complex Method

AvoidanceModule::plan 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.

Check notice on line 262 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Large Method

AvoidanceModule::fillFundamentalData is no longer above the threshold for lines of code. 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 1 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

❌ New issue: Large Method

AvoidanceModule::plan has 78 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 notice on line 718 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ Getting better: Bumpy Road Ahead

AvoidanceModule::isSafePath decreases from 3 to 2 logical blocks with deeply nested code, threshold is one single 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 notice on line 1 in planning/behavior_path_avoidance_module/src/scene.cpp

See this annotation in the file changed.

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

✅ Getting better: Overall Code Complexity

The mean cyclomatic complexity decreases from 5.17 to 4.67, threshold = 4. This file has many conditional statements (e.g. if, for, while) across its implementation, leading to lower code health. Avoid adding more conditionals.

Check notice on line 1 in planning/behavior_velocity_traffic_light_module/src/scene.cpp

See this annotation in the file changed.

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

✅ Getting better: Overall Code Complexity

The mean cyclomatic complexity decreases from 4.50 to 4.42, threshold = 4. This file has many conditional statements (e.g. if, for, while) across its implementation, leading to lower code health. Avoid adding more conditionals.

Check warning on line 430 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Method

MultiObjectTracker::sanitizeTracker 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 301 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Method

MultiObjectTracker::onMeasurement 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 328 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Complex Method

MultiObjectTracker::createNewTracker 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 430 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Bumpy Road Ahead

MultiObjectTracker::sanitizeTracker has 3 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 301 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Bumpy Road Ahead

MultiObjectTracker::onMeasurement 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 1 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Overall Code Complexity

This module has a mean cyclomatic complexity of 4.12 across 17 functions. The mean complexity threshold is 4. This file has many conditional statements (e.g. if, for, while) across its implementation, leading to lower code health. Avoid adding more conditionals.

Check warning on line 430 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

❌ New issue: Deep, Nested Complexity

MultiObjectTracker::sanitizeTracker has a nested complexity depth of 6, 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 notice on line 238 in perception/multi_object_tracker/src/multi_object_tracker_core.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Large Method

MultiObjectTracker::MultiObjectTracker is no longer above the threshold for lines of code

Check notice on line 372 in planning/behavior_path_avoidance_module/src/shift_line_generator.cpp

See this annotation in the file changed.

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

✅ Getting better: Complex Method

ShiftLineGenerator::generateAvoidOutline decreases in cyclomatic complexity from 48 to 46, 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.