Thunderbots Project
Loading...
Searching...
No Matches
bang_bang_trajectory_2d.h
1#pragma once
2
3#include <memory>
4
5#include "software/ai/navigator/trajectory/bang_bang_trajectory_1d.h"
6#include "software/ai/navigator/trajectory/kinematic_constraints.h"
7#include "software/ai/navigator/trajectory/trajectory_2d.h"
8#include "software/geom/rectangle.h"
9
11{
12 public:
17
27 BangBangTrajectory2D(const Point& initial_pos, const Point& final_pos,
28 const Vector& initial_vel,
29 const KinematicConstraints& constraints);
30
46 void generate(const Point& initial_pos, const Point& final_pos,
47 const Vector& initial_vel, double max_vel, double max_accel,
48 double max_decel);
49
56 Point getPosition(double t_sec) const override;
57
64 Vector getVelocity(double t_sec) const override;
65
72 Vector getAcceleration(double t_sec) const override;
73
79 double getTotalTime() const override;
80
85 std::vector<Rectangle> getBoundingBoxes() const override;
86
96 static std::shared_ptr<Trajectory2D> generator(
97 const Point& initial_pos, const Point& final_pos, const Vector& initial_vel,
98 const KinematicConstraints& constraints);
99
100 private:
101 BangBangTrajectory1D x_trajectory;
102 BangBangTrajectory1D y_trajectory;
103
104 // The maximum difference the x and y trajectory runtimes could have from each other
105 // in seconds
106 static constexpr double TRAJ_ACCURACY_TOLERANCE_SEC = 0.01;
107};
Definition bang_bang_trajectory_1d.h:8
Definition bang_bang_trajectory_2d.h:11
static std::shared_ptr< Trajectory2D > generator(const Point &initial_pos, const Point &final_pos, const Vector &initial_vel, const KinematicConstraints &constraints)
Definition bang_bang_trajectory_2d.cpp:117
BangBangTrajectory2D()=default
Vector getAcceleration(double t_sec) const override
Definition bang_bang_trajectory_2d.cpp:86
Vector getVelocity(double t_sec) const override
Definition bang_bang_trajectory_2d.cpp:81
Point getPosition(double t_sec) const override
Definition bang_bang_trajectory_2d.cpp:76
std::vector< Rectangle > getBoundingBoxes() const override
Definition bang_bang_trajectory_2d.cpp:97
void generate(const Point &initial_pos, const Point &final_pos, const Vector &initial_vel, double max_vel, double max_accel, double max_decel)
Definition bang_bang_trajectory_2d.cpp:12
double getTotalTime() const override
Definition bang_bang_trajectory_2d.cpp:92
Definition kinematic_constraints.h:7
Definition point.h:14
Definition trajectory_2d.h:8
Definition vector.h:12