@@ -504,35 +504,34 @@ bool isEgoOutOfRoute(
504
504
const auto shoulder_goal_lanes = route_handler->getShoulderLaneletsAtPose (goal_pose);
505
505
if (!shoulder_goal_lanes.empty ()) goal_lane = shoulder_goal_lanes.front ();
506
506
507
- const bool is_failed_getting_lanelet = std::invoke ([&]() {
508
- if (utils::isInLanelets (goal_pose, shoulder_goal_lanes)) {
509
- return !lanelet::utils::query::getClosestLanelet (shoulder_goal_lanes, goal_pose, &goal_lane);
510
- }
511
- if (common_param.enable_differential_map_loading ) {
512
- // If dynamic map is enabled, get the goal lanelet from the current lanelet map
513
- //
514
- // Check the route lanelets and last route element in the current lanelet map
515
- // will be the goal lanelet
516
-
517
- lanelet::LaneletMapPtr map = route_handler->getLaneletMapPtr ();
518
- lanelet::ConstLanelets all_lanelets = lanelet::utils::query::laneletLayer (map);
519
- lanelet::ConstLanelets route_lanelets = route_handler->getRouteLanelets ();
520
-
521
- auto goalLaneletIt =
522
- std::find_if (all_lanelets.rbegin (), all_lanelets.rend (), [&](const auto & currentLanelet) {
523
- return currentLanelet.id () == route_lanelets.back ().id ();
524
- });
525
-
526
- if (goalLaneletIt != all_lanelets.rend ()) {
507
+ bool is_failed_getting_lanelet;
508
+ if (!common_param.enable_differential_map_loading ) {
509
+ is_failed_getting_lanelet = shoulder_goal_lanes.empty () && !route_handler->getGoalLanelet (&goal_lane);
510
+ } else {
511
+ // If dynamic map is enabled, get the goal lanelet from the current lanelet map
512
+ //
513
+ // Check the route lanelets and last route element in the current lanelet map
514
+ // will be the goal lanelet
515
+
516
+ lanelet::LaneletMapPtr map = route_handler->getLaneletMapPtr ();
517
+ lanelet::ConstLanelets all_lanelets = lanelet::utils::query::laneletLayer (map);
518
+ lanelet::ConstLanelets route_lanelets = route_handler->getRouteLanelets ();
519
+
520
+ auto goalLaneletIt =
521
+ std::find_if (all_lanelets.rbegin (), all_lanelets.rend (), [&](const auto & currentLanelet) {
522
+ return currentLanelet.id () == route_lanelets.back ().id ();
523
+ });
524
+
525
+ if (goalLaneletIt != all_lanelets.rend ()) {
527
526
RCLCPP_DEBUG (
528
- rclcpp::get_logger (" behavior_path_planner" ).get_child (" util" ),
529
- " Found goal lanelet in current lanelet map" );
527
+ rclcpp::get_logger (" behavior_path_planner" ).get_child (" util" ),
528
+ " Found goal lanelet in current lanelet map" );
530
529
goal_lane = *goalLaneletIt;
531
- return false ;
532
- }
530
+ is_failed_getting_lanelet = false ;
533
531
}
534
- return !route_handler->getGoalLanelet (&goal_lane);
535
- });
532
+ is_failed_getting_lanelet = !route_handler->getGoalLanelet (&goal_lane);
533
+ }
534
+
536
535
if (is_failed_getting_lanelet) {
537
536
RCLCPP_WARN_STREAM (
538
537
rclcpp::get_logger (" behavior_path_planner" ).get_child (" util" ), " cannot find goal lanelet" );
0 commit comments