23 lines
625 B
C
23 lines
625 B
C
#pragma once
|
|
|
|
// unitless trapezoidal
|
|
struct Trapezoidal {
|
|
float max_vel;
|
|
float max_acc;
|
|
float dist;
|
|
};
|
|
|
|
struct Setpoint {
|
|
float acceleration; // unitless
|
|
float velocity; // unitless
|
|
float position; // unitless
|
|
bool complete; // the setpoint will no longer change
|
|
};
|
|
|
|
// returns the position and velocity at the given time on a trapezoidal motion plan
|
|
// this could be baked if too computationally expensive
|
|
// not fully fuzzed
|
|
struct Setpoint trapezoidal_planner(struct Trapezoidal* trapezoidal, float time);
|
|
|
|
// returns the time a given plan will take
|
|
float trapezoidal_time(struct Trapezoidal* trapezoidal);
|