10 #include <initializer_list>
13 #include <frc/controller/PIDController.h>
14 #include <frc/controller/ProfiledPIDController.h>
15 #include <frc/controller/SimpleMotorFeedforward.h>
16 #include <frc/geometry/Pose2d.h>
17 #include <frc/kinematics/ChassisSpeeds.h>
18 #include <frc/kinematics/MecanumDriveKinematics.h>
19 #include <frc/kinematics/MecanumDriveWheelSpeeds.h>
20 #include <frc/trajectory/Trajectory.h>
21 #include <units/units.h>
22 #include <wpi/ArrayRef.h>
24 #include "CommandBase.h"
25 #include "CommandHelper.h"
26 #include "frc2/Timer.h"
51 :
public CommandHelper<CommandBase, MecanumControllerCommand> {
93 units::meters_per_second_t maxWheelVelocity,
99 std::function<
void(units::volt_t, units::volt_t, units::volt_t,
102 std::initializer_list<Subsystem*> requirements);
144 units::meters_per_second_t maxWheelVelocity,
150 std::function<
void(units::volt_t, units::volt_t, units::volt_t,
186 units::meters_per_second_t maxWheelVelocity,
187 std::function<
void(units::meters_per_second_t, units::meters_per_second_t,
188 units::meters_per_second_t,
189 units::meters_per_second_t)>
191 std::initializer_list<Subsystem*> requirements);
224 units::meters_per_second_t maxWheelVelocity,
225 std::function<
void(units::meters_per_second_t, units::meters_per_second_t,
226 units::meters_per_second_t,
227 units::meters_per_second_t)>
235 void End(
bool interrupted)
override;
244 std::unique_ptr<frc2::PIDController> m_xController;
245 std::unique_ptr<frc2::PIDController> m_yController;
246 std::unique_ptr<frc::ProfiledPIDController<units::radians>> m_thetaController;
247 const units::meters_per_second_t m_maxWheelVelocity;
248 std::unique_ptr<frc2::PIDController> m_frontLeftController;
249 std::unique_ptr<frc2::PIDController> m_rearLeftController;
250 std::unique_ptr<frc2::PIDController> m_frontRightController;
251 std::unique_ptr<frc2::PIDController> m_rearRightController;
253 std::function<void(units::meters_per_second_t, units::meters_per_second_t,
254 units::meters_per_second_t, units::meters_per_second_t)>
256 std::function<void(units::volt_t, units::volt_t, units::volt_t,
263 units::second_t m_prevTime;