3#include "../core/include/utils/geometry.h"
4#include "../core/include/utils/vector2d.h"
10namespace PurePursuit {
21 Path(std::vector<point_t> points,
double radius);
39 std::vector<point_t> points;
48 double a, b, c, d, x_start, x_end;
50 double getY(
double x) {
return a * pow((x - x_start), 3) + b * pow((x - x_start), 2) + c * (x - x_start) + d; }
62 point_t getPoint()
const {
return {x, y}; }
71extern std::vector<point_t> line_circle_intersections(
point_t center,
double r,
point_t point1,
point_t point2);
75extern point_t get_lookahead(
const std::vector<point_t> &path,
pose_t robot_loc,
double radius);
80extern std::vector<point_t> inject_path(
const std::vector<point_t> &path,
double spacing);
93extern std::vector<point_t> smooth_path(
const std::vector<point_t> &path,
double weight_data,
double weight_smooth,
96extern std::vector<point_t> smooth_path_cubic(
const std::vector<point_t> &path,
double res);
106extern std::vector<point_t> smooth_path_hermite(
const std::vector<hermite_point> &path,
double step);
118extern double estimate_remaining_dist(
const std::vector<point_t> &path,
pose_t robot_pose,
double radius);
Definition pure_pursuit.h:14
bool is_valid()
Definition pure_pursuit.cpp:57
Path(std::vector< point_t > points, double radius)
Definition pure_pursuit.cpp:8
std::vector< point_t > get_points()
Definition pure_pursuit.cpp:47
double get_radius()
Definition pure_pursuit.cpp:52
Definition pure_pursuit.h:56
Definition pure_pursuit.h:47