Thunderbots Project
Loading...
Searching...
No Matches
trajectory_path.h
1#pragma once
2
3#include <functional>
4#include <memory>
5
6#include "software/ai/navigator/trajectory/kinematic_constraints.h"
7#include "software/ai/navigator/trajectory/trajectory_path_node.h"
8
9using TrajectoryGenerator = std::function<std::shared_ptr<Trajectory2D>(
10 const Point& initial_pos, const Point& final_pos, const Vector& initial_vel,
11 const KinematicConstraints& constraints)>;
12
19{
20 public:
21 TrajectoryPath() = delete;
22
30 TrajectoryPath(const std::shared_ptr<Trajectory2D>& initial_trajectory,
31 const TrajectoryGenerator& traj_generator);
32
41 void append(double connection_time_sec, const Point& destination,
42 const KinematicConstraints& constraints);
43
50 Point getPosition(double t_sec) const override;
51
58 Vector getVelocity(double t_sec) const override;
59
66 Vector getAcceleration(double t_sec) const override;
67
73 double getTotalTime() const override;
74
79 std::vector<Rectangle> getBoundingBoxes() const override;
80
86 const std::vector<TrajectoryPathNode>& getTrajectoryPathNodes() const;
87
88 private:
89 std::vector<TrajectoryPathNode> traj_path;
90 TrajectoryGenerator trajectory_generator;
91};
Definition kinematic_constraints.h:7
Definition point.h:14
Definition trajectory_2d.h:8
Definition trajectory_path.h:19
Vector getAcceleration(double t_sec) const override
Definition trajectory_path.cpp:76
Vector getVelocity(double t_sec) const override
Definition trajectory_path.cpp:59
Point getPosition(double t_sec) const override
Definition trajectory_path.cpp:42
std::vector< Rectangle > getBoundingBoxes() const override
Definition trajectory_path.cpp:103
void append(double connection_time_sec, const Point &destination, const KinematicConstraints &constraints)
Definition trajectory_path.cpp:12
const std::vector< TrajectoryPathNode > & getTrajectoryPathNodes() const
Definition trajectory_path.cpp:114
double getTotalTime() const override
Definition trajectory_path.cpp:93
Definition vector.h:12