@@ -290,6 +290,7 @@ DWBLocalPlanner::prepareGlobalPlan(
290290 }
291291
292292 goal_pose.header .frame_id = global_plan_.header .frame_id ;
293+ goal_pose.header .stamp = pose.header .stamp ;
293294 goal_pose.pose = global_plan_.poses .back ().pose ;
294295 nav2_util::transformPoseInTargetFrame (
295296 goal_pose, goal_pose, *tf_,
@@ -535,10 +536,17 @@ DWBLocalPlanner::transformGlobalPlan(
535536 // Helper function for the transform below. Converts a pose2D from global
536537 // frame to local
537538 auto transformGlobalPoseToLocal = [&](const auto & global_plan_pose) {
538- geometry_msgs::msg::PoseStamped transformed_pose;
539- nav2_util::transformPoseInTargetFrame (
540- global_plan_pose, transformed_pose, *tf_,
541- transformed_plan.header .frame_id , transform_tolerance_);
539+ geometry_msgs::msg::PoseStamped stamped_pose, transformed_pose;
540+ stamped_pose.header .frame_id = global_plan_.header .frame_id ;
541+ stamped_pose.header .stamp = robot_pose.header .stamp ;
542+ stamped_pose.pose = global_plan_pose.pose ;
543+ if (!nav2_util::transformPoseInTargetFrame (
544+ stamped_pose, transformed_pose, *tf_,
545+ transformed_plan.header .frame_id , transform_tolerance_))
546+ {
547+ throw nav2_core::ControllerTFError (" Unable to transform plan pose into local frame" );
548+ }
549+ transformed_pose.pose .position .z = 0.0 ;
542550 return transformed_pose;
543551 };
544552
0 commit comments