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(detected_object_validation): filter reverted radar object #7253

Closed

feat(object_lanelet_filter): add velocity direction based object lane…

d23ccf5
Select commit
Loading
Failed to load commit list.
Closed

feat(detected_object_validation): filter reverted radar object #7253

feat(object_lanelet_filter): add velocity direction based object lane…
d23ccf5
Select commit
Loading
Failed to load commit list.
CodeScene Delta Analysis / CodeScene Cloud Delta Analysis (main) failed Jun 3, 2024 in 2m 25s

CodeScene PR Check

Code Health Quality Gates: FAILED

  • Declining Code Health: 353 findings(s) 🚩
  • Improving Code Health: 168 findings(s) ✅
  • Affected Hotspots: 8 files(s) 🔥

View detailed results in CodeScene

Details

🚩 Declining Code Health (highest to lowest):

  • Complex Method scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::isOcclusionCleared 🔥
  • Complex Method utils.cpp: filterTargetObjects
  • Complex Method util.cpp: getObjectiveLanelets 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Complex Method normal.cpp: NormalLaneChange::getLaneChangePaths
  • Brain Method utils.cpp: filterTargetObjects
  • Brain Method scene_intersection.cpp: IntersectionModule::isOcclusionCleared 🔥
  • Brain Method scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Brain Method util.cpp: getObjectiveLanelets 🔥
  • Complex Conditional accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::timerCallback
  • Complex Conditional map_based_prediction_node.cpp: MapBasedPredictionNode::objectsCallback 🔥
  • Large Method behavior_planning.launch.py: launch_setup
  • Complex Method manager.cpp: AvoidanceModuleManager::AvoidanceModuleManager
  • Complex Method occupancy_grid_map_projective.cpp: OccupancyGridMapProjectiveBlindSpot::updateWithPointCloud
  • Complex Method utils.cpp: makeBoundLongitudinallyMonotonic
  • Complex Method avoidance_module.cpp: AvoidanceModule::calcRawShiftLinesFromObjects
  • Bumpy Road Ahead node.cpp: ObstacleStopPlannerNode::searchPredictedObject 🔥
  • Bumpy Road Ahead util.cpp: getObjectiveLanelets 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Complex Method utils.cpp: generateDrivableArea
  • Complex Method accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::timerCallback
  • Complex Method utils.cpp: generateDrivableLanes
  • Complex Method normal.cpp: NormalLaneChange::filterObject
  • Complex Conditional avoidance_module.cpp: AvoidanceModule::addNewShiftLines
  • Complex Method utils.cpp: getBoundWithIntersectionAreas
  • Complex Conditional scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Complex Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::run 🔥
  • Complex Conditional utils.cpp: generateDrivableLanes
  • Complex Method avoidance_module.cpp: AvoidanceModule::addReturnShiftLineFromEgo
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::isOcclusionCleared 🔥
  • Complex Method accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::AccelBrakeMapCalibrator
  • Complex Method manager.cpp: AvoidanceModuleManager::updateModuleParams
  • Large Method avoidance_module.cpp: AvoidanceModule::updateDebugMarker
  • Complex Method utils.cpp: generateExpandDrivableLanes
  • Complex Method utils.cpp: generatePolygonInsideBounds
  • Complex Method predicted_objects_display.cpp: PredictedObjectsDisplay::createMarkers
  • Complex Conditional front_vehicle_velocity_estimator.cpp: FrontVehicleVelocityEstimator::isFrontVehicle
  • Overall Code Complexity fusion_node.cpp
  • Overall Function Size bicycle_tracker.cpp
  • Overall Code Complexity bicycle_tracker.cpp
  • Overall Code Complexity behavior_path_planner_node.cpp 🔥
  • Code Duplication debug.cpp
  • Overall Code Complexity utils.cpp
  • Lines of Code in a Single File avoidance_module.cpp
  • Overall Code Complexity avoidance_module.cpp
  • Bumpy Road Ahead interface.cpp: LaneChangeInterface::updateState
  • Lines of Code in a Single File normal.cpp
  • Overall Code Complexity normal.cpp
  • Deep, Nested Complexity normal.cpp: NormalLaneChange::getLaneChangePaths
  • Lines of Code in a Single File utils.cpp
  • Overall Code Complexity utils.cpp
  • Overall Code Complexity drivable_area_expansion.cpp
  • Deep, Nested Complexity map_utils.cpp: extract_uncrossable_segments
  • Overall Code Complexity utils.cpp
  • Deep, Nested Complexity utils.cpp: generateDrivableLanes
  • Overall Code Complexity objects_filtering.cpp
  • Code Duplication safety_check.cpp
  • Overall Code Complexity path_utils.cpp
  • Lines of Code in a Single File utils.cpp
  • Overall Code Complexity utils.cpp
  • Lines of Code in a Single File util.cpp 🔥
  • Complex Conditional util.cpp: isTargetStuckVehicleType 🔥
  • Deep, Nested Complexity util.cpp: getPathIndexRangeIncludeLaneId
  • Lines of Code in a Single File accel_brake_map_calibrator_node.cpp
  • Overall Code Complexity accel_brake_map_calibrator_node.cpp
  • Complex Method normal.cpp: NormalLaneChange::insertStopPoint
  • Complex Method path_utils.cpp: resamplePathWithSpline
  • Complex Method planner_interface.cpp: PlannerInterface::generateStopTrajectory
  • Complex Method util.cpp: generateIntersectionStopLines 🔥
  • Bumpy Road Ahead utils.cpp: generateDrivableLanes
  • Complex Method motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::calcExternalVelocityLimit
  • Complex Method accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::updateFourCellAroundOffset
  • Complex Method accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::updateAccelBrakeMap
  • Complex Method big_vehicle_tracker.cpp: BigVehicleTracker::measureWithPose
  • Complex Method normal_vehicle_tracker.cpp: NormalVehicleTracker::measureWithPose
  • Complex Method avoidance_module.cpp: AvoidanceModule::trimSharpReturn
  • Bumpy Road Ahead utils.cpp: filterTargetObjects
  • Large Method manager.cpp: AvoidanceByLaneChangeModuleManager::AvoidanceByLaneChangeModuleManager
  • Complex Method scene.cpp: TrafficLightModule::modifyPathVelocity
  • Complex Method ekf_localizer.cpp: EKFLocalizer::timerCallback
  • Complex Method utils.cpp: concatenateTwoPolygons
  • Large Method radar_tracks_msgs_converter_node.cpp: RadarTracksMsgsConverterNode::convertRadarTrackToTrackedObjects
  • Complex Method path_utils.cpp: getPathTurnSignal
  • Complex Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::BehaviorPathPlannerNode 🔥
  • Large Method test_drivable_area_expansion.cpp: TEST:DrivableAreaExpansionProjection:expand_drivable_area
  • Large Method big_vehicle_tracker.cpp: BigVehicleTracker::getTrackedObject
  • Large Method normal_vehicle_tracker.cpp: NormalVehicleTracker::getTrackedObject
  • Bumpy Road Ahead scene.cpp: TrafficLightModule::modifyPathVelocity
  • Complex Conditional scene_intersection.cpp: isTargetCollisionVehicleType 🔥
  • Complex Method utils.cpp: getSafetyCheckTargetObjects
  • Complex Method utils.cpp: getBoundWithHatchedRoadMarkings
  • Complex Conditional nodelet.cpp: TrafficLightOcclusionPredictorNodelet::syncCallback
  • Complex Conditional drivable_area_expansion.cpp: reuse_previous_poses
  • Complex Conditional utils.cpp: generatePolygonInsideBounds
  • Complex Conditional utils.cpp: concatenateTwoPolygons
  • Deep, Nested Complexity utils.cpp: getDistanceToCrosswalk
  • Complex Conditional node.cpp: ObstacleCruisePlannerNode::onTrajectory 🔥
  • Complex Method motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::smoothVelocity
  • Large Method bicycle_tracker.cpp: BicycleTracker::getTrackedObject
  • Complex Method bicycle_tracker.cpp: BicycleTracker::measureWithPose
  • Complex Method objects_filtering.cpp: isTargetObjectType
  • Large Method test_safety_check.cpp: TEST:BehaviorPathPlanningSafetyUtilsTest:createExtendedEgoPolygon
  • Complex Method interface.cpp: LaneChangeInterface::updateState
  • Complex Method node.cpp: ObstacleAvoidancePlanner::applyInputVelocity
  • Bumpy Road Ahead normal.cpp: NormalLaneChange::getLaneChangePaths
  • Large Method pedestrian_tracker.cpp: PedestrianTracker::getTrackedObject
  • Complex Conditional map_based_prediction_node.cpp: changeLabelForPrediction 🔥
  • Complex Method avoidance_module.cpp: AvoidanceModule::findNewShiftLine
  • Complex Method avoidance_module.cpp: AvoidanceModule::generateTotalShiftLine
  • Large Method ekf_localizer.cpp: EKFLocalizer::measurementUpdatePose
  • Complex Method node.cpp: ShapeEstimationNode::callback
  • Complex Method utils.cpp: createFurthestLineStringMarkerArray
  • Complex Method safety_check.cpp: getCollidedPolygons
  • Complex Method utils.cpp: cutOverlappedLanes
  • Large Method node.cpp: BehaviorVelocityPlannerNode::BehaviorVelocityPlannerNode
  • Bumpy Road Ahead utils.cpp: makeBoundLongitudinallyMonotonic
  • Deep, Nested Complexity utils.cpp: concatenatePolygons
  • Deep, Nested Complexity utils.cpp: getSignedDistanceFromBoundary
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Complex Method motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::calcInitialMotion
  • Complex Method normal.cpp: NormalLaneChange::isLaneChangePathSafe
  • Complex Method scene_merge_from_private_road.cpp: MergeFromPrivateRoadModule::modifyPathVelocity
  • Complex Method avoidance_module.cpp: AvoidanceModule::addNewShiftLines
  • Complex Method utils.cpp: combineDrivableLanes
  • Complex Method utils.cpp: generateDrivableArea
  • Complex Method utils.cpp: isEgoOutOfRoute
  • Complex Method scene_intersection.cpp: IntersectionModule::generateTargetObjects 🔥
  • Complex Method avoidance_module.cpp: AvoidanceModule::isSafePath
  • Complex Method avoidance_module.cpp: AvoidanceModule::extractShiftLinesFromLine
  • Complex Method route_handler.cpp: RouteHandler::getLaneletSequenceUpTo 🔥
  • Complex Method route_handler.cpp: RouteHandler::getCheckTargetLanesFromPath 🔥
  • Deep, Nested Complexity utils.cpp: filterTargetObjects
  • Deep, Nested Complexity drivable_area_expansion.cpp: calculate_minimum_expansions
  • Complex Method motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::onParameter
  • Complex Method utils.cpp: extendToRoadShoulderDistanceWithPolygon
  • Complex Method utils.cpp: getLeadingStaticObjectIdx
  • Complex Method avoidance_module.cpp: AvoidanceModule::insertPrepareVelocity
  • Complex Method avoidance_module.cpp: AvoidanceModule::canTransitSuccessState
  • Complex Method normal.cpp: NormalLaneChange::isVehicleStuck
  • Complex Method normal.cpp: NormalLaneChange::getAbortPath
  • Complex Method utils.cpp: extractObstaclesFromDrivableArea
  • Complex Method utils.cpp: getExtendedCurrentLanes
  • Complex Method utils.cpp: getDistanceToCrosswalk
  • Complex Conditional ndt_scan_matcher_core.cpp: NDTScanMatcher::publish_diagnostic
  • Complex Conditional ndt_scan_matcher_core.cpp: NDTScanMatcher::callback_initial_pose
  • Primitive Obsession ndt_scan_matcher_core.cpp
  • Complex Method obstacle_pointcloud_based_validator.cpp: ObstaclePointCloudBasedValidator::onObjectsAndObstaclePointCloud
  • Complex Conditional front_vehicle_velocity_estimator.cpp: FrontVehicleVelocityEstimator::update
  • Complex Method unknown_tracker.cpp: UnknownTracker::measureWithPose
  • Complex Method decorative_tracker_merger.cpp: DecorativeTrackerMergerNode::decorativeMerger
  • Primitive Obsession debug.cpp
  • Missing Arguments Abstractions utils.cpp
  • Primitive Obsession utils.cpp
  • Complex Conditional interface.cpp: LaneChangeInterface::getCurrentTurnSignalInfo
  • Complex Conditional normal.cpp: NormalLaneChange::filterObject
  • Complex Conditional utils.cpp: filterTargetObjects
  • Complex Conditional drivable_area_expansion.cpp: expand_bound
  • Complex Conditional drivable_area_expansion.cpp: expand_drivable_area
  • Primitive Obsession utils.cpp
  • Primitive Obsession safety_check.cpp
  • Number of Functions in a Single Module utils.cpp
  • Complex Conditional utils.cpp: findIndexOutOfGoalSearchRange
  • Complex Conditional utils.cpp: checkPathRelativeAngle
  • Deep, Nested Complexity utils.cpp: getBoundWithHatchedRoadMarkings
  • Deep, Nested Complexity utils.cpp: makeBoundLongitudinallyMonotonic
  • Deep, Nested Complexity utils.cpp: getDistanceToNextIntersection
  • Deep, Nested Complexity utils.cpp: combineDrivableLanes
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::checkCollision 🔥
  • Complex Method scene_merge_from_private_road.cpp: MergeFromPrivateRoadModule::extractPathNearExitOfPrivateRoad
  • Complex Conditional util.cpp: checkAngleForTargetLanelets 🔥
  • Deep, Nested Complexity util.cpp: getFirstPointInsidePolygons 🔥
  • Deep, Nested Complexity util.cpp: getObjectiveLanelets 🔥
  • Deep, Nested Complexity util.cpp: cutPredictPathWithDuration 🔥
  • Complex Method node.cpp: BehaviorVelocityPlannerNode::isDataReady
  • Complex Conditional scene.cpp: TrafficLightModule::modifyPathVelocity
  • Complex Conditional motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::checkData
  • Deep, Nested Complexity motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::calcExternalVelocityLimit
  • Deep, Nested Complexity motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::smoothVelocity
  • Primitive Obsession accel_brake_map_calibrator_node.cpp
  • Complex Method util.cpp: checkAngleForTargetLanelets 🔥
  • Complex Method util.cpp: checkYieldStuckVehicleInIntersection 🔥
  • Complex Method util.cpp: getFirstPointInsidePolygons 🔥
  • Complex Conditional avoidance_module.cpp: AvoidanceModule::addReturnShiftLineFromEgo
  • Complex Method route_handler.cpp: RouteHandler::getRelation 🔥
  • Bumpy Road Ahead utils.cpp: generateDrivableArea
  • Bumpy Road Ahead utils.cpp: getBoundWithHatchedRoadMarkings
  • Complex Method scene_intersection.cpp: formatDecisionResult 🔥
  • Complex Method utils.cpp: getDistanceToNextIntersection
  • Complex Method utils.cpp: generateDrivableLanes
  • Complex Method util.cpp: generatePathLanelets 🔥
  • Complex Method util.cpp: getTrafficPrioritizedLevel 🔥
  • Deep, Nested Complexity utils.cpp: generateExpandDrivableLanes
  • Deep, Nested Complexity drivable_area_expansion.cpp: reuse_previous_poses
  • Complex Method avoidance_module.cpp: AvoidanceModule::calcTurnSignalInfo
  • Complex Method avoidance_module.cpp: AvoidanceModule::registerRawShiftLines
  • Complex Method avoidance_module.cpp: AvoidanceModule::fillEgoStatus
  • Complex Method utils.cpp: getDistanceToNextTrafficLight
  • Complex Method utils.cpp: calcBound
  • Complex Method utils.cpp: isParkedObject
  • Bumpy Road Ahead normal.cpp: NormalLaneChange::insertStopPoint
  • Bumpy Road Ahead normal.cpp: NormalLaneChange::filterObject
  • Complex Method drivable_area_expansion.cpp: reuse_previous_poses
  • Complex Method objects_filtering.cpp: separateObjectIndicesByLanelets
  • Bumpy Road Ahead utils.cpp: generateExpandDrivableLanes
  • Complex Method util.cpp: calcIntersectionPassingTime 🔥
  • Complex Method scene.cpp: TrafficLightModule::isTrafficSignalStop
  • Complex Method route_handler.cpp: RouteHandler::getLaneChangeableDistance 🔥
  • Complex Method route_handler.cpp: RouteHandler::getFurthestLinestring 🔥
  • Complex Method avoidance_module.cpp: AvoidanceModule::updateEgoBehavior
  • Complex Method utils.cpp: getAdjacentLane
  • Complex Method utils.cpp: combineRawShiftLinesWithUniqueCheck
  • Complex Method utils.cpp: generateObstaclePolygonsForDrivableArea
  • Complex Method scene_intersection.cpp: isGreenSolidOn 🔥
  • Complex Method utils.cpp: getSignedDistanceFromBoundary
  • Complex Method utils.cpp: getOverlappedLaneletId
  • Complex Method utils.cpp: findIndexOutOfGoalSearchRange
  • Complex Method utils.cpp: getPolygonPointsInsideBounds
  • Complex Method utils.cpp: concatenatePolygons
  • Complex Method utils.cpp: passParkedObject
  • Complex Method utils.cpp: constructCandidatePath
  • Bumpy Road Ahead util.cpp: generateDetectionLaneDivisions 🔥
  • Bumpy Road Ahead util.cpp: checkAngleForTargetLanelets 🔥
  • Bumpy Road Ahead path_utils.cpp: resamplePathWithSpline
  • Bumpy Road Ahead motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::calcExternalVelocityLimit
  • Bumpy Road Ahead accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::indexValueSearch
  • Complex Method interface.cpp: LaneChangeInterface::getCurrentTurnSignalInfo
  • Bumpy Road Ahead drivable_area_expansion.cpp: reuse_previous_poses
  • Bumpy Road Ahead utils.cpp: getDistanceToCrosswalk
  • Complex Conditional scene_intersection.cpp: reactRTCApprovalByDecisionResult 🔥
  • Bumpy Road Ahead predicted_objects_display.cpp: PredictedObjectsDisplay::createMarkers
  • Bumpy Road Ahead utils.cpp: extendToRoadShoulderDistanceWithPolygon
  • Bumpy Road Ahead utils.cpp: getSafetyCheckTargetObjects
  • Complex Conditional utils.cpp: passParkedObject
  • Excess Number of Function Arguments debug.cpp: createAvoidLineMarkerArray
  • Bumpy Road Ahead path_utils.cpp: correctDividedPathVelocity
  • Excess Number of Function Arguments path_utils.cpp: getPathTurnSignal
  • Bumpy Road Ahead utils.cpp: getTargetNeighborLanes
  • Bumpy Road Ahead utils.cpp: generateDrivableLanes
  • Bumpy Road Ahead utils.cpp: getSortedLaneIds
  • Bumpy Road Ahead utils.cpp: isParkedObject
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::calcRawShiftLinesFromObjects
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::generateTotalShiftLine
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::trimSharpReturn
  • Bumpy Road Ahead front_vehicle_velocity_estimator.cpp: FrontVehicleVelocityEstimator::filterFrontVehicle
  • Bumpy Road Ahead bicycle_tracker.cpp: BicycleTracker::measureWithPose
  • Bumpy Road Ahead utils.cpp: createFurthestLineStringMarkerArray
  • Bumpy Road Ahead drivable_area_expansion.cpp: calculate_minimum_expansions
  • Bumpy Road Ahead map_utils.cpp: extract_uncrossable_segments
  • Bumpy Road Ahead scene_intersection.cpp: IntersectionModule::generateTargetObjects 🔥
  • Bumpy Road Ahead node.cpp: ObstacleAvoidancePlanner::applyInputVelocity
  • Bumpy Road Ahead node.cpp: ObstacleAvoidancePlanner::insertZeroVelocityOutsideDrivableArea
  • Bumpy Road Ahead util.cpp: getStopLineIndexFromMap 🔥
  • Bumpy Road Ahead util.cpp: generateIntersectionStopLines 🔥
  • Bumpy Road Ahead util.cpp: getFirstPointInsidePolygons 🔥
  • Bumpy Road Ahead util.cpp: IntersectionLanelets::update 🔥
  • Bumpy Road Ahead util.cpp: generatePathLanelets 🔥
  • Bumpy Road Ahead utils.cpp: generatePolygonInsideBounds
  • Bumpy Road Ahead utils.cpp: concatenateTwoPolygons
  • Bumpy Road Ahead utils.cpp: getBoundWithIntersectionAreas
  • Bumpy Road Ahead utils.cpp: generateDrivableArea
  • Bumpy Road Ahead utils.cpp: getDistanceToNextIntersection
  • Bumpy Road Ahead utils.cpp: getExtendedCurrentLanes
  • Excess Number of Function Arguments debug.cpp: createOverhangFurthestLineStringMarkerArray
  • Excess Number of Function Arguments path_utils.cpp: splineTwoPoints
  • Bumpy Road Ahead motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::calcTrajectoryVelocity
  • Bumpy Road Ahead motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::smoothVelocity
  • Bumpy Road Ahead motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::insertBehindVelocity
  • Bumpy Road Ahead motion_velocity_smoother_node.cpp: MotionVelocitySmootherNode::calcInitialMotion
  • Bumpy Road Ahead accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::updateAccelBrakeMap
  • Bumpy Road Ahead accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::updateTotalMapOffset
  • Bumpy Road Ahead accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::publishMap
  • Bumpy Road Ahead accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::writeMapToCSV
  • Bumpy Road Ahead predicted_objects_display.cpp: PredictedObjectsDisplay::update
  • Bumpy Road Ahead utils.cpp: calcParentIds
  • Bumpy Road Ahead utils.cpp: updateRegisteredObject
  • Bumpy Road Ahead utils.cpp: separateObjectsByPath
  • Complex Method drivable_area_expansion.cpp: calculate_minimum_expansions
  • Bumpy Road Ahead path_utils.cpp: getIdxByArclength
  • Bumpy Road Ahead path_utils.cpp: getPathTurnSignal
  • Complex Method drivable_area_expansion.cpp: expand_bound
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::canTransitSuccessState
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::registerRawShiftLines
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::addReturnShiftLineFromEgo
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::isSafePath
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::addNewShiftLines
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::findNewShiftLine
  • Bumpy Road Ahead avoidance_module.cpp: AvoidanceModule::calcTurnSignalInfo
  • Bumpy Road Ahead drivable_area_expansion.cpp: expand_bound
  • Excess Number of Function Arguments drivable_area_expansion.cpp: reuse_previous_poses
  • Excess Number of Function Arguments drivable_area_expansion.cpp: calculate_minimum_expansions
  • Excess Number of Function Arguments drivable_area_expansion.cpp: calculate_maximum_distance
  • Excess Number of Function Arguments objects_filtering.cpp: filterObjects
  • Excess Number of Function Arguments objects_filtering.cpp: filterObjectsByPosition
  • Excess Number of Function Arguments objects_filtering.cpp: createPredictedPath
  • Bumpy Road Ahead utils.cpp: getPolygonPointsInsideBounds
  • Bumpy Road Ahead utils.cpp: findIndexOutOfGoalSearchRange
  • Bumpy Road Ahead utils.cpp: isEgoOutOfRoute
  • Bumpy Road Ahead utils.cpp: getOverlappedLaneletId
  • Bumpy Road Ahead utils.cpp: cutOverlappedLanes
  • Bumpy Road Ahead utils.cpp: getDistanceToNextTrafficLight
  • Bumpy Road Ahead utils.cpp: getCurrentLanesFromPath
  • Bumpy Road Ahead utils.cpp: extendNextLane
  • Bumpy Road Ahead utils.cpp: extendPrevLane
  • Bumpy Road Ahead utils.cpp: combineDrivableLanes
  • Bumpy Road Ahead utils.cpp: extractObstaclesFromDrivableArea
  • Excess Number of Function Arguments safety_check.cpp: checkCollision
  • Excess Number of Function Arguments safety_check.cpp: checkCollisionWithExtraStoppingMargin
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::addLogToCSV
  • Excess Number of Function Arguments utils.cpp: extendToRoadShoulderDistanceWithPolygon
  • Excess Number of Function Arguments safety_check.cpp: createExtendedPolygon
  • Excess Number of Function Arguments safety_check.cpp: createExtendedPolygon
  • Excess Number of Function Arguments utils.cpp: separateObjectsByPath
  • Excess Number of Function Arguments utils.cpp: getReferencePathFromTargetLane
  • Excess Number of Function Arguments utils.cpp: setEndData
  • Excess Number of Function Arguments utils.cpp: setStartData
  • Excess Number of Function Arguments utils.cpp: insertDecelPoint
  • Excess Number of Function Arguments utils.cpp: filterTargetObjects
  • Excess Number of Function Arguments utils.cpp: passParkedObject
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::updateEachValOffset
  • Excess Number of Function Arguments utils.cpp: createShiftLineMarkerArray
  • Excess Number of Function Arguments utils.cpp: createShiftGradMarkerArray
  • Excess Number of Function Arguments utils.cpp: createPolygonMarkerArray
  • Excess Number of Function Arguments utils.cpp: createPredictedPathMarkerArray
  • Excess Number of Function Arguments utils.cpp: hasEnoughLengthToLaneChangeAfterAbort
  • Excess Number of Function Arguments utils.cpp: isParkedObject
  • Excess Number of Function Arguments utils.cpp: generateDrivableArea
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::updateFourCellAroundOffset
  • Excess Number of Function Arguments utils.cpp: createPoseMarkerArray
  • Excess Number of Function Arguments utils.cpp: createPathMarkerArray
  • Excess Number of Function Arguments utils.cpp: createShiftLengthMarkerArray
  • Excess Number of Function Arguments utils.cpp: createObjectsMarkerArray
  • Excess Number of Function Arguments utils.cpp: getCenterLinePath
  • Excess Number of Function Arguments utils.cpp: calcLaneAroundPose
  • Excess Number of Function Arguments utils.cpp: getTargetPreferredLanes
  • Excess Number of Function Arguments utils.cpp: constructCandidatePath
  • Excess Number of Function Arguments utils.cpp: convertToPredictedPath
  • Excess Number of Function Arguments utils.cpp: isParkedObject
  • Excess Number of Function Arguments utils.cpp: getLeadingStaticObjectIdx
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::executeUpdate
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::calculateEstimatedAcc
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::calculateAccelSquaredError
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::calculateAccelErrorL1Norm
  • Excess Number of Function Arguments accel_brake_map_calibrator_node.cpp: AccelBrakeMapCalibrator::getOccMsg
  • Excess Number of Function Arguments utils.cpp: createLaneletsAreaMarkerArray
  • Excess Number of Function Arguments utils.cpp: intersectBound
  • Excess Number of Function Arguments utils.cpp: getDistanceBetweenPredictedPaths
  • Excess Number of Function Arguments utils.cpp: getDistanceBetweenPredictedPathAndObject
  • Excess Number of Function Arguments utils.cpp: refinePathForGoal
  • Excess Number of Function Arguments utils.cpp: calcBound
  • Excess Number of Function Arguments utils.cpp: getTargetLaneletPolygons
  • Excess Number of Function Arguments utils.cpp: setDecelerationVelocity
  • Excess Number of Function Arguments utils.cpp: setDecelerationVelocity

✅ Improving Code Health:

  • Code Duplication route_handler.cpp 🔥
  • Large Method lanelet2_map_visualization_node.cpp: Lanelet2MapVisualizationNode::onMapBin
  • Large Method vehicle_cmd_gate.cpp: VehicleCmdGate::VehicleCmdGate
  • Large Method node.cpp: ObstacleStopPlannerNode::ObstacleStopPlannerNode 🔥
  • Complex Method planner_interface.cpp: PlannerInterface::generateSlowDownTrajectory
  • Complex Method pid_longitudinal_controller.cpp: PidLongitudinalController::updateControlState
  • Complex Method node.cpp: RoiClusterFusionNode::fuseOnSingleImage
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::objectsCallback 🔥
  • Complex Method scene_out_of_lane.cpp: OutOfLaneModule::modifyPathVelocity
  • Complex Method scene_intersection.cpp: IntersectionModule::isOverPassJudgeLinesStatus 🔥
  • Complex Method scene_intersection.cpp: IntersectionModule::getTrafficPrioritizedLevel 🔥
  • Large Method pid_longitudinal_controller.cpp: diagnostic_updater_
  • Bumpy Road Ahead pid_longitudinal_controller.cpp: PidLongitudinalController::updateControlState
  • Overall Code Complexity pid_longitudinal_controller.cpp
  • Overall Code Complexity node.cpp
  • Bumpy Road Ahead node.cpp: RoiClusterFusionNode::fuseOnSingleImage
  • Overall Code Complexity utils.cpp
  • Lines of Code in a Single File map_based_prediction_node.cpp 🔥
  • Overall Code Complexity map_based_prediction_node.cpp 🔥
  • Overall Code Complexity pedestrian_tracker.cpp
  • Overall Code Complexity node.cpp
  • Overall Code Complexity scene_crosswalk.cpp 🔥
  • Overall Code Complexity manager.cpp
  • Overall Code Complexity decisions.cpp
  • Overall Code Complexity scene.cpp
  • Lines of Code in a Single File node.cpp 🔥
  • Overall Code Complexity planner_interface.cpp
  • Lines of Code in a Single File node.cpp 🔥
  • Overall Code Complexity route_handler.cpp 🔥
  • Overall Code Complexity concatenate_and_time_sync_nodelet.cpp
  • Overall Code Complexity system_error_monitor_core.cpp
  • Large Method preprocessor.launch.py: launch_setup
  • Complex Method debug.cpp: IntersectionModule::createDebugMarkerArray
  • Large Method pid_longitudinal_controller.cpp: PidLongitudinalController::paramCallback
  • Large Method big_vehicle_tracker.cpp: BigVehicleTracker::BigVehicleTracker
  • Large Method normal_vehicle_tracker.cpp: NormalVehicleTracker::NormalVehicleTracker
  • Large Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::SimplePlanningSimulator
  • Large Method bicycle_tracker.cpp: BicycleTracker::BicycleTracker
  • Large Method pedestrian_tracker.cpp: PedestrianTracker::PedestrianTracker
  • Large Method test_longitudinal_controller_utils.cpp: TEST:TestLongitudinalControllerUtils:lerpTrajectoryPoint
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::getPredictedObjectAsCrosswalkUser 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::getTrafficPrioritizedLevel 🔥
  • Complex Conditional scene_intersection.cpp: IntersectionModule::isOverPassJudgeLinesStatus 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::checkStopForStuckVehicles 🔥
  • Complex Method map_based_prediction_node.cpp: isReachableCrosswalkEdgePoints 🔥
  • Complex Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::isDataReady 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::checkStopForCrosswalkUsers 🔥
  • Complex Method decisions.cpp: object_time_to_range
  • Complex Method route_handler.cpp: RouteHandler::getLeftLanelet 🔥
  • Complex Method route_handler.cpp: RouteHandler::getRightLanelet 🔥
  • Large Method ndt_scan_matcher_core.cpp: NDTScanMatcher::align_pose
  • Complex Method pointcloud_based_occupancy_grid_map_node.cpp: PointcloudBasedOccupancyGridMapNode::onPointcloudWithObstacleAndRaw
  • Complex Method decisions.cpp: object_time_to_range
  • Complex Method map_based_prediction_node.cpp: MapBasedPredictionNode::getPredictedReferencePath 🔥
  • Complex Method node.cpp: MapBasedDetector::getVisibleTrafficLights
  • Bumpy Road Ahead map_based_prediction_node.cpp: MapBasedPredictionNode::objectsCallback 🔥
  • Large Method behavior_path_planner_node.cpp: BehaviorPathPlannerNode::BehaviorPathPlannerNode 🔥
  • Complex Method vehicle_cmd_gate.cpp: VehicleCmdGate::publishControlCommands
  • Complex Method map_based_prediction_node.cpp: changeLabelForPrediction 🔥
  • Complex Method route_handler.cpp: RouteHandler::planPathLaneletsBetweenCheckpoints 🔥
  • Complex Method node.cpp: SurroundObstacleCheckerNode::getNearestObstacleByDynamicObject
  • Complex Method route_handler.cpp: RouteHandler::getLaneletSequence 🔥
  • Complex Method route_handler.cpp: RouteHandler::getLaneletSequenceAfter 🔥
  • Primitive Obsession mpc_utils.cpp
  • Excess Number of Function Arguments utils.cpp: updateOutputFusedObjects
  • Complex Method traffic_light_arbiter.cpp: TrafficLightArbiter::arbitrateAndPublish
  • Primitive Obsession scene_intersection.cpp 🔥
  • Complex Method freespace_planner_node.cpp: FreespacePlannerNode::onTimer
  • Complex Method planning_validator.cpp: PlanningValidator::isAllValid
  • Complex Method concatenate_and_time_sync_nodelet.cpp: PointCloudConcatenateDataSynchronizerComponent::cloud_callback
  • Complex Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_input
  • 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 Conditional map_based_prediction_node.cpp: isReachableCrosswalkEdgePoints 🔥
  • Complex Method node.cpp: ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles 🔥
  • Complex Method node.cpp: ObstacleStopPlannerNode::filterObstacles 🔥
  • Complex Method scene.cpp: RunOutModule::calcStopPoint
  • Complex Method node.cpp: ObstacleCruisePlannerNode::findYieldCruiseObstacles 🔥
  • Complex Method node.cpp: ObstacleCruisePlannerNode::createStopObstacle 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::modifyPathVelocity 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::updateObjectState 🔥
  • Complex Method scene_crosswalk.cpp: CrosswalkModule::applySafetySlowDownSpeed 🔥
  • Complex Method node.cpp: MapBasedDetector::routeCallback
  • Complex Method pid_longitudinal_controller.cpp: PidLongitudinalController::predictedStateAfterDelay
  • Complex Method pid_longitudinal_controller.cpp: PidLongitudinalController::getControlData
  • Complex Method ndt_scan_matcher_core.cpp: NDTScanMatcher::callback_sensor_points_main
  • Bumpy Road Ahead scene_crosswalk.cpp: CrosswalkModule::checkStopForCrosswalkUsers 🔥
  • Complex Method node.cpp: CrosswalkTrafficLightEstimatorNode::updateLastDetectedSignals
  • Complex Method node.cpp: CrosswalkTrafficLightEstimatorNode::updateAndGetColorState
  • Complex Method scene.cpp: RunOutModule::modifyPathVelocity
  • Deep, Nested Complexity scene_crosswalk.cpp: CrosswalkModule::modifyPathVelocity 🔥
  • Deep, Nested Complexity scene_crosswalk.cpp: CrosswalkModule::checkStopForCrosswalkUsers 🔥
  • Bumpy Road Ahead mrm_summary_overlay_display.cpp: MrmSummaryOverlayDisplay::update
  • Excess Number of Function Arguments ndt_scan_matcher_core.cpp: NDTScanMatcher::publish_initial_to_result
  • Complex Method utils.cpp: updateOutputFusedObjects
  • Excess Number of Function Arguments utils.cpp: closest_cluster
  • Complex Method pedestrian_tracker.cpp: PedestrianTracker::measureWithShape
  • Bumpy Road Ahead occupancy_grid_map_fixed.cpp: OccupancyGridMapFixedBlindSpot::updateWithPointCloud
  • Bumpy Road Ahead node.cpp: MapBasedDetector::routeCallback
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::modifyPathVelocityDetail 🔥
  • Deep, Nested Complexity scene_intersection.cpp: IntersectionModule::updateTrafficSignalObservation 🔥
  • Bumpy Road Ahead map_based_prediction_node.cpp: isReachableCrosswalkEdgePoints 🔥
  • Bumpy Road Ahead map_based_prediction_node.cpp: removeOldObjectsHistory 🔥
  • Bumpy Road Ahead map_based_prediction_node.cpp: MapBasedPredictionNode::getPredictedReferencePath 🔥
  • Bumpy Road Ahead map_based_prediction_node.cpp: MapBasedPredictionNode::calcIntentionToCrossWithTrafficSignal 🔥
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::findYieldCruiseObstacles 🔥
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::createOneStepPolygons 🔥
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles 🔥
  • Bumpy Road Ahead node.cpp: ObstacleCruisePlannerNode::createStopObstacle 🔥
  • Complex Method mpc_lateral_controller.cpp: MpcLateralController::run
  • Bumpy Road Ahead concatenate_and_time_sync_nodelet.cpp: PointCloudConcatenateDataSynchronizerComponent::publish
  • Bumpy Road Ahead route_handler.cpp: RouteHandler::getRightLanelet 🔥
  • Bumpy Road Ahead route_handler.cpp: RouteHandler::getLeftLanelet 🔥
  • Bumpy Road Ahead scene_crosswalk.cpp: CrosswalkModule::checkStopForStuckVehicles 🔥
  • Bumpy Road Ahead node.cpp: MapBasedDetector::mapCallback
  • Bumpy Road Ahead route_handler.cpp: RouteHandler::getLaneletSequence 🔥
  • Complex Method concatenate_and_time_sync_nodelet.cpp: PointCloudConcatenateDataSynchronizerComponent::combineClouds
  • Complex Method concatenate_and_time_sync_nodelet.cpp: PointCloudConcatenateDataSynchronizerComponent::publish
  • Complex Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::initialize_vehicle_model
  • Complex Method simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_initial_state
  • Excess Number of Function Arguments map_based_prediction_node.cpp: MapBasedPredictionNode::addReferencePaths 🔥
  • Bumpy Road Ahead ekf_localizer.cpp: EKFLocalizer::updatePredictFrequency
  • Bumpy Road Ahead node.cpp: CrosswalkTrafficLightEstimatorNode::updateLastDetectedSignals
  • Bumpy Road Ahead node.cpp: CrosswalkTrafficLightEstimatorNode::updateAndGetColorState
  • Bumpy Road Ahead big_vehicle_tracker.cpp: BigVehicleTracker::getUpdatingObject
  • Bumpy Road Ahead normal_vehicle_tracker.cpp: NormalVehicleTracker::getUpdatingObject
  • Bumpy Road Ahead scene_merge_from_private_road.cpp: MergeFromPrivateRoadModule::getAttentionLanelets
  • Excess Number of Function Arguments scene.cpp: RunOutModule::insertStoppingVelocity
  • Bumpy Road Ahead freespace_planner_node.cpp: FreespacePlannerNode::onTimer
  • Excess Number of Function Arguments map_based_prediction_node.cpp: isReachableCrosswalkEdgePoints 🔥
  • Excess Number of Function Arguments debug.cpp: createArrowLineMarkerArray
  • Complex Method mrm_summary_overlay_display.cpp: MrmSummaryOverlayDisplay::update
  • Complex Conditional vehicle_cmd_gate.cpp: VehicleCmdGate::publishMarkers
  • Complex Method map_update_module.cpp: MapUpdateModule::update_ndt
  • Bumpy Road Ahead map_update_module.cpp: MapUpdateModule::update_map
  • Complex Conditional node.cpp: CrosswalkTrafficLightEstimatorNode::updateFlashingState
  • Bumpy Road Ahead object_lanelet_filter.cpp: ObjectLaneletFilterNode::isObjectOverlapLanelets
  • Deep, Nested Complexity object_lanelet_filter.cpp: ObjectLaneletFilterNode::isObjectOverlapLanelets
  • Code Duplication obstacle_pointcloud_based_validator.cpp
  • Large Method voxel_grid_based_euclidean_cluster.launch.py: launch_setup
  • Large Method map_based_prediction_node.cpp: MapBasedPredictionNode::MapBasedPredictionNode 🔥
  • Complex Conditional bicycle_tracker.cpp: BicycleTracker::measureWithShape
  • Complex Conditional pedestrian_tracker.cpp: PedestrianTracker::measureWithShape
  • Bumpy Road Ahead pedestrian_tracker.cpp: PedestrianTracker::measureWithShape
  • Large Method unknown_tracker.cpp: UnknownTracker::UnknownTracker
  • Large Method occupancy_grid_map_outlier_filter_nodelet.cpp: OccupancyGridMapOutlierFilterComponent::onOccupancyGridMapAndPointCloud2
  • Code Duplication radar_tracks_msgs_converter_node.cpp
  • Bumpy Road Ahead traffic_light_arbiter.cpp: TrafficLightArbiter::arbitrateAndPublish
  • Overall Code Complexity traffic_light_arbiter.cpp
  • Complex Method nodelet.cpp: TrafficLightOcclusionPredictorNodelet::syncCallback
  • Bumpy Road Ahead nodelet.cpp: TrafficLightOcclusionPredictorNodelet::syncCallback
  • Excess Number of Function Arguments nodelet.cpp: TrafficLightOcclusionPredictorNodelet::syncCallback
  • Brain Method scene_crosswalk.cpp: CrosswalkModule::checkStopForCrosswalkUsers 🔥
  • Complex Conditional scene_crosswalk.cpp: CrosswalkModule::modifyPathVelocity 🔥
  • Complex Conditional scene_crosswalk.cpp: CrosswalkModule::checkStopForCrosswalkUsers 🔥
  • Complex Conditional scene_crosswalk.cpp: CrosswalkModule::checkStopForStuckVehicles 🔥
  • Code Duplication debug.cpp
  • Bumpy Road Ahead scene.cpp: RunOutModule::calcStopPoint
  • Large Method node.cpp: ObstacleCruisePlannerNode::BehaviorDeterminationParam::onParam 🔥
  • Large Method node.cpp: ObstacleCruisePlannerNode::createOneStepPolygons 🔥
  • Overall Code Complexity node.cpp 🔥
  • Deep, Nested Complexity node.cpp: ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles 🔥
  • Deep, Nested Complexity node.cpp: ObstacleCruisePlannerNode::findYieldCruiseObstacles 🔥
  • Large Method node.cpp: SurroundObstacleCheckerNode::SurroundObstacleCheckerNode
  • Complex Conditional simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_input
  • Complex Conditional simple_planning_simulator_core.cpp: SimplePlanningSimulator::set_initial_state
  • Complex Conditional system_error_monitor_core.cpp: AutowareErrorMonitor::loggingErrors

Annotations

Check notice on line 458 in simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.cpp

See this annotation in the file changed.

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

✅ Getting better: Complex Method

SimplePlanningSimulator::set_input decreases in cyclomatic complexity from 12 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 254 in simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.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

SimplePlanningSimulator::initialize_vehicle_model 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 554 in simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.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

SimplePlanningSimulator::set_initial_state 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 180 in simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.cpp

See this annotation in the file changed.

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

✅ Getting better: Large Method

SimplePlanningSimulator::SimplePlanningSimulator decreases from 97 to 95 lines of code, 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 458 in simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Complex Conditional

SimplePlanningSimulator::set_input no longer has a complex conditional

Check notice on line 554 in simulator/simple_planning_simulator/src/simple_planning_simulator/simple_planning_simulator_core.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Complex Conditional

SimplePlanningSimulator::set_initial_state no longer has a complex conditional

Check notice on line 148 in perception/traffic_light_arbiter/src/traffic_light_arbiter.cpp

See this annotation in the file changed.

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

✅ Getting better: Complex Method

TrafficLightArbiter::arbitrateAndPublish decreases in cyclomatic complexity from 15 to 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 notice on line 148 in perception/traffic_light_arbiter/src/traffic_light_arbiter.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Bumpy Road Ahead

TrafficLightArbiter::arbitrateAndPublish is no longer above the threshold for logical blocks with deeply nested code

Check notice on line 1 in perception/traffic_light_arbiter/src/traffic_light_arbiter.cpp

See this annotation in the file changed.

@codescene-delta-analysis 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

Check notice on line 363 in planning/surround_obstacle_checker/src/node.cpp

See this annotation in the file changed.

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

ℹ Getting worse: Complex Method

SurroundObstacleCheckerNode::onTimer increases in cyclomatic complexity from 18 to 23, 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 510 in planning/surround_obstacle_checker/src/node.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

SurroundObstacleCheckerNode::getNearestObstacleByDynamicObject 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 161 in planning/surround_obstacle_checker/src/node.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

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

Check notice on line 1 in planning/obstacle_cruise_planner/src/node.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 1249 to 1019, 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 695 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

✅ Getting better: Complex Method

ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles decreases in cyclomatic complexity from 13 to 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 notice on line 778 in planning/obstacle_cruise_planner/src/node.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

ObstacleCruisePlannerNode::findYieldCruiseObstacles 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 990 in planning/obstacle_cruise_planner/src/node.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

ObstacleCruisePlannerNode::createStopObstacle 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 1185 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

ℹ New issue: Complex Method

ObstacleCruisePlannerNode::checkConsistency 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 482 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

❌ Getting worse: Complex Conditional

ObstacleCruisePlannerNode::onTrajectory increases from 1 complex conditionals with 2 branches to 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 notice on line 1185 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

ℹ Getting worse: Bumpy Road Ahead

ObstacleCruisePlannerNode::checkConsistency increases from 2 to 3 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 778 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Bumpy Road Ahead

ObstacleCruisePlannerNode::findYieldCruiseObstacles 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.

Check notice on line 534 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Bumpy Road Ahead

ObstacleCruisePlannerNode::createOneStepPolygons 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.

Check notice on line 695 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Bumpy Road Ahead

ObstacleCruisePlannerNode::determineEgoBehaviorAgainstObstacles 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.

Check notice on line 990 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

✅ No longer an issue: Bumpy Road Ahead

ObstacleCruisePlannerNode::createStopObstacle 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.

Check notice on line 1 in planning/obstacle_cruise_planner/src/node.cpp

See this annotation in the file changed.

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

ℹ Getting worse: Primitive Obsession

The ratio of primitive types in function arguments increases from 30.91% to 32.00%, threshold = 30.0%. The functions in this file have too many primitive types (e.g. int, double, float) in their function argument lists. Using many primitive types lead to the code smell Primitive Obsession. Avoid adding more primitive arguments.

Check notice on line 330 in planning/obstacle_cruise_planner/src/node.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

ObstacleCruisePlannerNode::BehaviorDeterminationParam::onParam is no longer above the threshold for lines of code