@@ -270,13 +270,13 @@ void EgoEntity::requestAssignRoute(
270
270
" Failed to get current lanelet of ego entity. (" , __FILE__, " :" , __LINE__, " )" );
271
271
}
272
272
273
- for (size_t i = 0 ; i < route. size (); ++i ) {
273
+ for (const auto & route_point : route) {
274
274
// NOTE: Interpolating between lanelets because set route API requires continuous lanelet ids on lanelet graph
275
275
auto segment_route = hdmap_utils_ptr_->getRoute (
276
- route_segments.back ().preferred .id , route[i] .getLaneletId (), routing_configuration);
277
- for ( auto lanelet_id : segment_route) {
278
- route_segments. push_back ( make_segment (lanelet_id));
279
- }
276
+ route_segments.back ().preferred .id , route_point .getLaneletId (), routing_configuration);
277
+ std::transform (
278
+ segment_route. begin (), segment_route. end (), std::back_inserter (route_segments),
279
+ [make_segment]( const int64_t & lanelet_id) { return make_segment (lanelet_id); });
280
280
}
281
281
282
282
// NOTE: Make the lanelet IDs unique, because set route API recognizes duplicate IDs as loops and does not accept.
@@ -329,8 +329,8 @@ void EgoEntity::requestAssignRoute(
329
329
330
330
auto goal = route.back ();
331
331
std::vector<geometry_msgs::msg::Pose> waypoints;
332
- for ( size_t i = 0 ; i < route.size () - 1 ; ++i ) {
333
- waypoints.push_back (route[i] );
332
+ if ( route.size () > 1 ) {
333
+ waypoints.assign (route. begin (), route. end () - 1 );
334
334
}
335
335
336
336
if (not initialized) {
@@ -402,12 +402,13 @@ auto EgoEntity::requestReplanRoute(
402
402
concealer::FieldOperatorApplication::RouteOption route_option;
403
403
route_option.allow_goal_modification = allow_goal_modification;
404
404
assert (not route.empty ());
405
- auto goal = route.back ().pose ;
406
405
std::vector<geometry_msgs::msg::Pose> waypoints;
407
- for (size_t i = 0 ; i < route.size () - 1 ; ++i) {
408
- waypoints.push_back (route[i].pose );
406
+ if (route.size () > 1 ) {
407
+ std::transform (
408
+ route.begin (), route.end () - 1 , waypoints.begin (),
409
+ [](const geometry_msgs::msg::PoseStamped & pose) { return pose.pose ; });
409
410
}
410
- plan (goal , waypoints, route_option);
411
+ plan (route. back (). pose , waypoints, route_option);
411
412
}
412
413
enableAutowareControl ();
413
414
FieldOperatorApplication::engage ();
0 commit comments