29 #ifndef SWRI_ROUTE_UTIL_PATH_UTIL_H_ 30 #define SWRI_ROUTE_UTIL_PATH_UTIL_H_ 32 #include <marti_nav_msgs/Plan.h> 33 #include <marti_nav_msgs/PlanPosition.h> 43 void transform(marti_nav_msgs::Plan &path,
45 const std::string &target_frame);
59 const marti_nav_msgs::Plan& path,
60 const double x,
const double y,
61 marti_nav_msgs::PlanPosition& nearest_position,
62 double& nearest_separation);
66 const marti_nav_msgs::Plan& path);
71 const marti_nav_msgs::PlanPosition position,
73 const bool allow_extrapolation =
false);
78 const marti_nav_msgs::PlanPosition position,
80 bool extrapolate =
false);
84 const marti_nav_msgs::PlanPosition position,
85 marti_nav_msgs::PlanPoint& pt,
86 bool extrapolate =
false);
91 return tf::Vector3(pt.x, pt.y, pt.z);
96 const marti_nav_msgs::Plan &route,
97 const tf::Vector3 &point,
98 bool extrapolate_before_start,
99 bool extrapolate_past_end);
103 marti_nav_msgs::PlanPosition &position,
104 const marti_nav_msgs::Plan &route,
105 const tf::Vector3 &point,
106 const marti_nav_msgs::PlanPosition &window_start,
107 const marti_nav_msgs::PlanPosition &window_end);
113 const marti_nav_msgs::PlanPosition &
start,
114 const marti_nav_msgs::PlanPosition &end,
115 const marti_nav_msgs::Plan &route);
117 #endif // SWRI_ROUTE_UTIL_UTIL_H_
void normalizePlanPosition(marti_nav_msgs::PlanPosition &position, const marti_nav_msgs::Plan &path)
tf::Vector3 getPointPosition(const marti_nav_msgs::PlanPoint &pt)
void projectToXY(marti_nav_msgs::Plan &route)
bool projectOntoPlan(marti_nav_msgs::PlanPosition &position, const marti_nav_msgs::Plan &route, const tf::Vector3 &point, bool extrapolate_before_start, bool extrapolate_past_end)
bool findLocalNearestDistanceForward(const marti_nav_msgs::Path &path, const double x, const double y, PathPosition &nearest_position, double &nearest_separation)
void getPlanPosition(const marti_nav_msgs::Plan &path, const marti_nav_msgs::PlanPosition position, tf::Vector3 &tf, bool extrapolate=false)
void getPathPose(const marti_nav_msgs::Path &path, const PathPosition position, tf::Transform &tf, const bool allow_extrapolation=false)
void interpolatePlanPosition(const marti_nav_msgs::Plan &path, const marti_nav_msgs::PlanPosition position, marti_nav_msgs::PlanPoint &pt, bool extrapolate=false)
void transform(marti_nav_msgs::Path &path, const swri_transform_util::Transform &transform, const std::string &target_frame)
void fillOrientations(marti_nav_msgs::Path &path)
bool projectOntoPlanWindow(marti_nav_msgs::PlanPosition &position, const marti_nav_msgs::Plan &route, const tf::Vector3 &point, const marti_nav_msgs::PlanPosition &window_start, const marti_nav_msgs::PlanPosition &window_end)
bool planDistance(double &distance, const marti_nav_msgs::PlanPosition &start, const marti_nav_msgs::PlanPosition &end, const marti_nav_msgs::Plan &route)