42 units::meters_per_second_squared_t maxLinearAccel,
43 units::radians_per_second_squared_t maxAngularAccel)
45 -maxLinearAccel, maxLinearAccel,
62 units::meters_per_second_squared_t minLinearAccel,
63 units::meters_per_second_squared_t maxLinearAccel,
64 units::radians_per_second_squared_t maxAngularAccel)
65 : m_system{
std::move(system)},
66 m_trackwidth{trackwidth},
67 m_minLinearAccel{minLinearAccel},
68 m_maxLinearAccel{maxLinearAccel},
69 m_maxAngularAccel{maxAngularAccel} {
70 if (minLinearAccel > maxLinearAccel) {
71 throw std::invalid_argument(
72 "maxLinearAccel must be greater than minLinearAccel");
86 units::meters_per_second_t leftVelocity,
87 units::meters_per_second_t rightVelocity, units::volt_t leftVoltage,
88 units::volt_t rightVoltage);
92 units::meter_t m_trackwidth;
93 units::meters_per_second_squared_t m_minLinearAccel;
94 units::meters_per_second_squared_t m_maxLinearAccel;
95 units::radians_per_second_squared_t m_maxAngularAccel;
#define WPILIB_DLLEXPORT
Definition SymbolExports.h:36
Filters the provided voltages to limit a differential drive's linear and angular acceleration.
Definition DifferentialDriveAccelerationLimiter.h:29
DifferentialDriveAccelerationLimiter(LinearSystem< 2, 2, 2 > system, units::meter_t trackwidth, units::meters_per_second_squared_t minLinearAccel, units::meters_per_second_squared_t maxLinearAccel, units::radians_per_second_squared_t maxAngularAccel)
Constructs a DifferentialDriveAccelerationLimiter.
Definition DifferentialDriveAccelerationLimiter.h:60
DifferentialDriveWheelVoltages Calculate(units::meters_per_second_t leftVelocity, units::meters_per_second_t rightVelocity, units::volt_t leftVoltage, units::volt_t rightVoltage)
Returns the next voltage pair subject to acceleration constraints.
DifferentialDriveAccelerationLimiter(LinearSystem< 2, 2, 2 > system, units::meter_t trackwidth, units::meters_per_second_squared_t maxLinearAccel, units::radians_per_second_squared_t maxAngularAccel)
Constructs a DifferentialDriveAccelerationLimiter.
Definition DifferentialDriveAccelerationLimiter.h:40
A plant defined using state-space notation.
Definition LinearSystem.h:35
Implement std::hash so that hash_code can be used in STL containers.
Definition PointerIntPair.h:280
Motor voltages for a differential drive.
Definition DifferentialDriveWheelVoltages.h:14