@@ -618,12 +618,6 @@ std::pair<LaneParkingResponse, FreespaceParkingResponse> GoalPlannerModule::sync
618
618
vehicle_footprint_, goal_candidates_, getPreviousModuleOutput (),
619
619
use_bus_stop_area_ && goal_searcher.bus_stop_area_available ());
620
620
}
621
- const auto lane_change_status =
622
- goal_planner_utils::find_lane_change_completed_lanelet (
623
- getPreviousModuleOutput ().path , planner_data_->route_handler ->getLaneletMapPtr (),
624
- planner_data_->route_handler ->getRoutingGraphPtr ())
625
- .has_value ();
626
-
627
621
// NOTE: for the above reasons, PlannerManager/behavior_path_planner_node ensure that
628
622
// planner_data_ is not nullptr, so it is OK to copy as value
629
623
// By copying PlannerData as value, the internal shared member variables are also copied
@@ -634,7 +628,7 @@ std::pair<LaneParkingResponse, FreespaceParkingResponse> GoalPlannerModule::sync
634
628
lane_parking_request_.value ().update (
635
629
*planner_data_, getCurrentStatus (), getPreviousModuleOutput (), pull_over_path,
636
630
path_decision_controller_.get_current_state (), trigger_thread_on_approach_,
637
- lane_change_status );
631
+ lane_change_status_changed_ );
638
632
// NOTE: RouteHandler holds several shared pointers in it, so just copying PlannerData as
639
633
// value does not adds the reference counts of RouteHandler.lanelet_map_ptr_ and others. Since
640
634
// behavior_path_planner::run() updates
@@ -697,40 +691,40 @@ void GoalPlannerModule::updateData()
697
691
goal_candidates_ = generateGoalCandidates (goal_searcher_.value (), use_bus_stop_area_);
698
692
}
699
693
700
- const auto lane_change_status =
694
+ const auto lane_change_detected =
701
695
goal_planner_utils::find_lane_change_completed_lanelet (
702
696
getPreviousModuleOutput ().path , planner_data_->route_handler ->getLaneletMapPtr (),
703
697
planner_data_->route_handler ->getRoutingGraphPtr ())
704
698
.has_value ();
705
699
lane_change_status_changed_ =
706
- prev_lane_change_status_ && prev_lane_change_status_ .value () != lane_change_status ;
707
- prev_lane_change_status_ = lane_change_status ;
700
+ prev_lane_change_detected_ && prev_lane_change_detected_ .value () != lane_change_detected ;
701
+ prev_lane_change_detected_ = lane_change_detected ;
708
702
709
703
const lanelet::ConstLanelets current_lanes =
710
704
utils::getCurrentLanesFromPath (getPreviousModuleOutput ().reference_path , planner_data_);
711
705
712
- if (getCurrentStatus () == ModuleStatus::IDLE) {
713
- if (
714
- !trigger_thread_on_approach_ &&
715
- utils::isAllowedGoalModification (planner_data_->route_handler ) &&
716
- goal_planner_utils::is_goal_reachable_on_path (
717
- current_lanes, *(planner_data_->route_handler ), left_side_parking_)) {
718
- const double self_to_goal_arc_length = utils::getSignedDistance (
719
- planner_data_->self_odometry ->pose .pose ,
720
- planner_data_->route_handler ->getOriginalGoalPose (), current_lanes);
721
- if (self_to_goal_arc_length < parameters_.pull_over_prepare_length ) {
722
- trigger_thread_on_approach_ = true ;
723
- [[maybe_unused]] const auto send_only_request = syncWithThreads ();
724
- RCLCPP_INFO (
725
- getLogger (), " start preparing goal candidates once for goal ahead of %f meter" ,
726
- self_to_goal_arc_length);
727
- return ;
728
- }
706
+ if (
707
+ !trigger_thread_on_approach_ &&
708
+ utils::isAllowedGoalModification (planner_data_->route_handler ) &&
709
+ goal_planner_utils::is_goal_reachable_on_path (
710
+ current_lanes, *(planner_data_->route_handler ), left_side_parking_)) {
711
+ const double self_to_goal_arc_length = utils::getSignedDistance (
712
+ planner_data_->self_odometry ->pose .pose , planner_data_->route_handler ->getOriginalGoalPose (),
713
+ current_lanes);
714
+ if (self_to_goal_arc_length < parameters_.pull_over_prepare_length ) {
715
+ trigger_thread_on_approach_ = true ;
716
+ [[maybe_unused]] const auto send_only_request = syncWithThreads ();
717
+ RCLCPP_INFO (
718
+ getLogger (), " start preparing goal candidates once for goal ahead of %f meter" ,
719
+ self_to_goal_arc_length);
720
+ return ;
729
721
}
722
+ }
723
+
724
+ if (getCurrentStatus () == ModuleStatus::IDLE) {
730
725
if (lane_change_status_changed_) {
731
726
[[maybe_unused]] const auto send_only_request = syncWithThreads ();
732
727
RCLCPP_INFO (getLogger (), " restart preparing goal candidates since lane_change is detected" );
733
- return ;
734
728
}
735
729
return ;
736
730
}
@@ -762,7 +756,6 @@ void GoalPlannerModule::updateData()
762
756
763
757
const bool upstream_module_has_stopline_except_terminal =
764
758
goal_planner_utils::has_stopline_except_terminal (getPreviousModuleOutput ().path );
765
-
766
759
path_decision_controller_.transit_state (
767
760
pull_over_path_recv, upstream_module_has_stopline_except_terminal, clock_->now (),
768
761
static_target_objects, dynamic_target_objects, planner_data_, occupancy_grid_map_,
0 commit comments