20template <
class Distance>
41 units::second_t period = 20_ms)
42 : m_profile(constraints),
43 m_state{initialPosition, Velocity_t(0)},
44 m_goal{initialPosition, Velocity_t{0}},
48 m_state = m_profile.Calculate(m_period, m_state, m_goal);
59 void SetGoal(State goal) { m_goal = goal; }
91 units::second_t m_period;
92 bool m_enabled{
false};
A base for subsystems that handles registration in the constructor, and provides a more intuitive met...
Definition: SubsystemBase.h:24
A subsystem that generates and runs trapezoidal motion profiles automatically.
Definition: TrapezoidProfileSubsystem.h:21
void SetGoal(State goal)
Sets the goal state for the subsystem.
Definition: TrapezoidProfileSubsystem.h:59
void Disable()
Disable the TrapezoidProfileSubsystem's output.
Definition: TrapezoidProfileSubsystem.h:85
void SetGoal(Distance_t goal)
Sets the goal state for the subsystem.
Definition: TrapezoidProfileSubsystem.h:66
TrapezoidProfileSubsystem(Constraints constraints, Distance_t initialPosition=Distance_t{0}, units::second_t period=20_ms)
Creates a new TrapezoidProfileSubsystem.
Definition: TrapezoidProfileSubsystem.h:39
void Periodic() override
This method is called periodically by the CommandScheduler.
Definition: TrapezoidProfileSubsystem.h:47
void Enable()
Enable the TrapezoidProfileSubsystem's output.
Definition: TrapezoidProfileSubsystem.h:80
virtual void UseState(State state)=0
Users should override this to consume the current state of the motion profile.
Profile constraints.
Definition: TrapezoidProfile.h:58
Profile state.
Definition: TrapezoidProfile.h:90
A trapezoid-shaped velocity profile.
Definition: TrapezoidProfile.h:45
typename units::detail::compound_impl< U, Us... >::type compound_unit
Represents a unit type made up from other units.
Definition: base.h:1434
state
Definition: core.h:2271
Definition: TrapezoidProfileSubsystem.h:12