ES3011/robot_controller/trapezoidal.h

22 lines
591 B
C

#pragma once
// unitless trapezoidal
struct Trapezoidal {
float max_vel;
float max_acc;
float dist;
};
struct Setpoint {
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);