44template <
class Distance>
94 "Pass the desired and current state into calculate instead of "
95 "constructing a new TrapezoidProfile with the desired and current "
114 "Pass the desired and current state into calculate instead of "
115 "constructing a new TrapezoidProfile with the desired and current "
139 units::second_t
TotalTime()
const {
return m_endDeccel; }
160 static bool ShouldFlipAcceleration(
const State& initial,
const State& goal) {
161 return initial.position > goal.position;
165 State Direct(
const State&
in)
const {
167 result.position *= m_direction;
168 result.velocity *= m_direction;
175 Constraints m_constraints;
180 units::second_t m_endAccel;
181 units::second_t m_endFullSpeed;
182 units::second_t m_endDeccel;
Definition: TrapezoidProfile.h:55
Constraints()
Definition: TrapezoidProfile.h:57
Velocity_t maxVelocity
Definition: TrapezoidProfile.h:66
Constraints(Velocity_t maxVelocity_, Acceleration_t maxAcceleration_)
Definition: TrapezoidProfile.h:61
Acceleration_t maxAcceleration
Definition: TrapezoidProfile.h:67
Definition: TrapezoidProfile.h:70
Velocity_t velocity
Definition: TrapezoidProfile.h:73
bool operator==(const State &) const =default
Distance_t position
Definition: TrapezoidProfile.h:72
A trapezoid-shaped velocity profile.
Definition: TrapezoidProfile.h:45
TrapezoidProfile & operator=(const TrapezoidProfile &)=default
TrapezoidProfile(Constraints constraints)
Construct a TrapezoidProfile.
Definition: TrapezoidProfile.inc:14
units::compound_unit< Velocity, units::inverse< units::seconds > > Acceleration
Definition: TrapezoidProfile.h:52
units::compound_unit< Distance, units::inverse< units::seconds > > Velocity
Definition: TrapezoidProfile.h:49
TrapezoidProfile(const TrapezoidProfile &)=default
State Calculate(units::second_t t) const
Calculate the correct position and velocity for the profile at a time t where the beginning of the pr...
Definition: TrapezoidProfile.inc:67
units::second_t TimeLeftUntil(Distance_t target) const
Returns the time left until a target distance in the profile is reached.
Definition: TrapezoidProfile.inc:171
units::second_t TotalTime() const
Returns the total time the profile takes to reach the goal.
Definition: TrapezoidProfile.h:139
bool IsFinished(units::second_t t) const
Returns true if the profile has reached the goal.
Definition: TrapezoidProfile.h:149
TrapezoidProfile & operator=(TrapezoidProfile &&)=default
units::unit_t< Velocity > Velocity_t
Definition: TrapezoidProfile.h:50
TrapezoidProfile(TrapezoidProfile &&)=default
static void ReportUsage(MathUsageId id, int count)
Definition: MathShared.h:73
typename units::detail::compound_impl< U, Us... >::type compound_unit
Represents a unit type made up from other units.
Definition: base.h:1446
constexpr auto in(type t, int set) -> bool
Definition: core.h:611
Definition: AprilTagPoseEstimator.h:15
@ kTrajectory_TrapezoidProfile