23 const std::vector<geometry_msgs::PoseStamped>& global_plan,
26 if (global_plan.empty())
28 ROS_ERROR(
"Received plan with zero length");
31 if(plan_point >= (
int)global_plan.size())
33 ROS_ERROR(
"Goal_functions: Plan_point %d to big. Plan size: %lu",plan_point, global_plan.size());
37 const geometry_msgs::PoseStamped& plan_goal_pose = global_plan.at(plan_point);
41 plan_goal_pose.header.frame_id, plan_goal_pose.header.stamp,
45 plan_goal_pose.header.frame_id, plan_goal_pose.header.stamp,
48 transformStampedMsgToTF(tmp, transform);
50 poseStampedMsgToTF(plan_goal_pose, goal_pose);
51 goal_pose.
setData(transform * goal_pose);
52 goal_pose.stamp_ = transform.
stamp_;
53 goal_pose.frame_id_ = global_frame;
57 ROS_ERROR(
"No Transform available Error: %s\n", ex.what());
62 ROS_ERROR(
"Connectivity Error: %s\n", ex.what());
67 ROS_ERROR(
"Extrapolation Error: %s\n", ex.what());
68 if (global_plan.size() > 0)
69 ROS_ERROR(
"Global Frame: %s Plan Frame size %d: %s\n", global_frame.c_str(), (
unsigned int)global_plan.size(), global_plan[0].header.frame_id.c_str());
void setData(const T &input)
virtual bool canTransform(const std::string &target_frame, const std::string &source_frame, const ros::Time &target_time, const ros::Duration timeout, std::string *errstr=NULL) const
virtual geometry_msgs::TransformStamped lookupTransform(const std::string &target_frame, const std::string &source_frame, const ros::Time &time, const ros::Duration timeout) const
bool getXPose(const tf2_ros::Buffer &tf, const std::vector< geometry_msgs::PoseStamped > &global_plan, const std::string &global_frame, tf::Stamped< tf::Pose > &goal_pose, int plan_point)
Returns X pose in plan.