40template <
class Distance,
class Input>
105 const State& goal)
const;
123 const State& goal)
const;
138 const State& inflectionPoint,
146 Velocity_t ComputeVelocityFromTime(
const units::second_t& time,
148 const State& initial)
const;
154 Distance_t ComputeDistanceFromTime(
const units::second_t& time,
156 const State& initial)
const;
164 const State& initial)
const;
170 units::second_t ComputeTimeFromVelocity(
const Velocity_t& velocity,
179 const State& current,
180 const State& goal)
const;
188 bool ShouldFlipInput(
const State& current,
const State& goal)
const;
Definition: ExponentialProfile.h:58
Input_t maxInput
Definition: ExponentialProfile.h:66
A_t A
Definition: ExponentialProfile.h:67
Constraints(Input_t maxInput, A_t A, B_t B)
Definition: ExponentialProfile.h:60
Constraints(Input_t maxInput, kV_t kV, kA_t kA)
Definition: ExponentialProfile.h:62
Velocity_t MaxVelocity() const
Definition: ExponentialProfile.h:64
B_t B
Definition: ExponentialProfile.h:68
Definition: ExponentialProfile.h:78
units::second_t totalTime
Definition: ExponentialProfile.h:81
units::second_t inflectionTime
Definition: ExponentialProfile.h:80
bool IsFinished(const units::second_t &time) const
Definition: ExponentialProfile.h:83
Definition: ExponentialProfile.h:71
bool operator==(const State &) const =default
Distance_t position
Definition: ExponentialProfile.h:73
Velocity_t velocity
Definition: ExponentialProfile.h:74
A Exponential-shaped velocity profile.
Definition: ExponentialProfile.h:41
units::second_t TimeLeftUntil(const State ¤t, const State &goal) const
Calculate the time it will take for this profile to reach the goal state.
Definition: ExponentialProfile.inc:71
ExponentialProfile(const ExponentialProfile &)=default
State Calculate(const units::second_t &t, const State ¤t, const State &goal) const
Calculate the correct position and velocity for the profile at a time t where the current state is at...
Definition: ExponentialProfile.inc:21
ProfileTiming CalculateProfileTiming(const State ¤t, const State &goal) const
Calculate the time it will take for this profile to reach the inflection point, and the time it will ...
Definition: ExponentialProfile.inc:80
units::compound_unit< Distance, units::inverse< units::seconds > > Velocity
Definition: ExponentialProfile.h:45
ExponentialProfile & operator=(ExponentialProfile &&)=default
units::compound_unit< Input, units::inverse< Acceleration > > KA
Definition: ExponentialProfile.h:55
ExponentialProfile & operator=(const ExponentialProfile &)=default
ExponentialProfile(ExponentialProfile &&)=default
ExponentialProfile(Constraints constraints)
Construct a ExponentialProfile.
Definition: ExponentialProfile.inc:16
units::compound_unit< Input, units::inverse< Velocity > > KV
Definition: ExponentialProfile.h:53
units::compound_unit< Velocity, units::inverse< units::seconds > > Acceleration
Definition: ExponentialProfile.h:48
State CalculateInflectionPoint(const State ¤t, const State &goal) const
Calculate the point after which the fastest way to reach the goal state is to apply input in the oppo...
Definition: ExponentialProfile.inc:45
typename units::detail::compound_impl< U, Us... >::type compound_unit
Represents a unit type made up from other units.
Definition: base.h:1446
Definition: AprilTagPoseEstimator.h:15