Skip to content

Commit

Permalink
Merge branch 'beta/v0.3.18.1' into fix/virtual_traffic_light/suppress…
Browse files Browse the repository at this point in the history
…_launch
  • Loading branch information
sfukuta authored Jun 7, 2024
2 parents d770c50 + 39fe090 commit 6f21173
Showing 1 changed file with 20 additions and 17 deletions.
37 changes: 20 additions & 17 deletions planning/obstacle_avoidance_planner/src/utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -343,26 +343,29 @@ std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint> interpolate2DTraj
const auto monotonic_base_yaw = convertEulerAngleToMonotonic(base_yaw);

// spline interpolation
const auto interpolated_x = interpolation::slerp(base_s, base_x, new_s);
const auto interpolated_y = interpolation::slerp(base_s, base_y, new_s);
const auto interpolated_yaw = interpolation::slerp(base_s, monotonic_base_yaw, new_s);

for (size_t i = 0; i < interpolated_x.size(); i++) {
if (std::isnan(interpolated_x[i]) || std::isnan(interpolated_y[i])) {
return std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint>{};
std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint> interpolated_points;
try {
const auto interpolated_x = interpolation::slerp(base_s, base_x, new_s);
const auto interpolated_y = interpolation::slerp(base_s, base_y, new_s);
const auto interpolated_yaw = interpolation::slerp(base_s, monotonic_base_yaw, new_s);

for (size_t i = 0; i < interpolated_x.size(); i++) {
if (std::isnan(interpolated_x[i]) || std::isnan(interpolated_y[i])) {
return std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint>{};
}
}
}

std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint> interpolated_points;
for (size_t i = 0; i < interpolated_x.size(); i++) {
autoware_auto_planning_msgs::msg::TrajectoryPoint point;
point.pose.position.x = interpolated_x[i];
point.pose.position.y = interpolated_y[i];
point.pose.orientation = tier4_autoware_utils::createQuaternionFromYaw(
tier4_autoware_utils::normalizeRadian(interpolated_yaw[i]));
interpolated_points.push_back(point);
for (size_t i = 0; i < interpolated_x.size(); i++) {
autoware_auto_planning_msgs::msg::TrajectoryPoint point;
point.pose.position.x = interpolated_x[i];
point.pose.position.y = interpolated_y[i];
point.pose.orientation = tier4_autoware_utils::createQuaternionFromYaw(
tier4_autoware_utils::normalizeRadian(interpolated_yaw[i]));
interpolated_points.push_back(point);
}
} catch (const std::invalid_argument & e) {
return std::vector<autoware_auto_planning_msgs::msg::TrajectoryPoint>{};
}

return interpolated_points;
}

Expand Down

0 comments on commit 6f21173

Please sign in to comment.