Skip to content

Commit a4a5749

Browse files
authored
feat(behavior_path_planner_common): use azimuth for interpolatePose (#9362)
Signed-off-by: kosuke55 <kosuke.tnp@gmail.com>
1 parent 228400c commit a4a5749

File tree

1 file changed

+11
-2
lines changed
  • planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils

1 file changed

+11
-2
lines changed

planning/behavior_path_planner/autoware_behavior_path_planner_common/src/utils/path_utils.cpp

+11-2
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,8 @@ std::vector<double> spline_two_points(
329329
std::vector<Pose> interpolatePose(
330330
const Pose & start_pose, const Pose & end_pose, const double resample_interval)
331331
{
332+
using autoware::universe_utils::calcAzimuthAngle;
333+
332334
std::vector<Pose> interpolated_poses{}; // output
333335

334336
const double distance =
@@ -351,14 +353,21 @@ std::vector<Pose> interpolatePose(
351353
std::sin(tf2::getYaw(end_pose.orientation)), new_s);
352354
for (size_t i = 0; i < interpolated_x.size(); ++i) {
353355
Pose pose{};
354-
pose = autoware::universe_utils::calcInterpolatedPose(
355-
end_pose, start_pose, (distance - new_s.at(i)) / distance);
356356
pose.position.x = interpolated_x.at(i);
357357
pose.position.y = interpolated_y.at(i);
358358
pose.position.z = end_pose.position.z;
359359
interpolated_poses.push_back(pose);
360360
}
361361

362+
// insert orientation
363+
for (size_t i = 0; i < interpolated_poses.size(); ++i) {
364+
const double yaw = calcAzimuthAngle(
365+
interpolated_poses.at(i).position, i < interpolated_poses.size() - 1
366+
? interpolated_poses.at(i + 1).position
367+
: end_pose.position);
368+
interpolated_poses.at(i).orientation = autoware::universe_utils::createQuaternionFromYaw(yaw);
369+
}
370+
362371
return interpolated_poses;
363372
}
364373

0 commit comments

Comments
 (0)