7 #include <initializer_list> 10 #include <frc/controller/HolonomicDriveController.h> 11 #include <frc/controller/PIDController.h> 12 #include <frc/controller/ProfiledPIDController.h> 13 #include <frc/geometry/Pose2d.h> 14 #include <frc/kinematics/ChassisSpeeds.h> 15 #include <frc/kinematics/SwerveDriveKinematics.h> 16 #include <frc/kinematics/SwerveModuleState.h> 17 #include <frc/trajectory/Trajectory.h> 18 #include <units/length.h> 19 #include <units/time.h> 20 #include <units/voltage.h> 21 #include <wpi/ArrayRef.h> 23 #include <frc2/command/CommandBase.h> 24 #include <frc2/command/CommandHelper.h> 25 #include <frc2/Timer.h> 50 template <
size_t NumModules>
52 :
public CommandHelper<CommandBase, SwerveControllerCommand2<NumModules>> {
54 units::compound_unit<units::voltage::volt, units::second,
55 units::inverse<units::meter>>;
57 units::compound_unit<units::voltage::volt, units::squared<units::second>,
58 units::inverse<units::meter>>;
88 frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
89 frc::SwerveDriveKinematics<NumModules> kinematics,
90 frc2::PIDController xController, frc2::PIDController yController,
91 frc::ProfiledPIDController<units::radians> thetaController,
92 std::function<frc::Rotation2d()> desiredRotation,
93 std::function<
void(std::array<frc::SwerveModuleState, NumModules>)>
95 std::initializer_list<Subsystem*> requirements);
127 frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
128 frc::SwerveDriveKinematics<NumModules> kinematics,
129 frc2::PIDController xController, frc2::PIDController yController,
130 frc::ProfiledPIDController<units::radians> thetaController,
131 std::function<
void(std::array<frc::SwerveModuleState, NumModules>)>
133 std::initializer_list<Subsystem*> requirements);
163 frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
164 frc::SwerveDriveKinematics<NumModules> kinematics,
165 frc2::PIDController xController, frc2::PIDController yController,
166 frc::ProfiledPIDController<units::radians> thetaController,
167 std::function<frc::Rotation2d()> desiredRotation,
168 std::function<
void(std::array<frc::SwerveModuleState, NumModules>)>
170 wpi::ArrayRef<Subsystem*> requirements = {});
202 frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
203 frc::SwerveDriveKinematics<NumModules> kinematics,
204 frc2::PIDController xController, frc2::PIDController yController,
205 frc::ProfiledPIDController<units::radians> thetaController,
206 std::function<
void(std::array<frc::SwerveModuleState, NumModules>)>
208 wpi::ArrayRef<Subsystem*> requirements = {});
214 void End(
bool interrupted)
override;
223 std::function<void(std::array<frc::SwerveModuleState, NumModules>)>
units::second_t m_prevTime
units::compound_unit< units::voltage::volt, units::squared< units::second >, units::inverse< units::meter >> voltsecondssquaredpermeter
frc::HolonomicDriveController m_controller
units::compound_unit< units::voltage::volt, units::second, units::inverse< units::meter >> voltsecondspermeter
frc::Rotation2d m_finalRotation
std::function< void(std::array< frc::SwerveModuleState, NumModules >)> m_outputStates
std::function< frc::Pose2d()> m_pose
void Initialize() override
std::function< frc::Rotation2d()> m_desiredRotation
bool IsFinished() override
SwerveControllerCommand2(frc::Trajectory trajectory, std::function< frc::Pose2d()> pose, frc::SwerveDriveKinematics< NumModules > kinematics, frc2::PIDController xController, frc2::PIDController yController, frc::ProfiledPIDController< units::radians > thetaController, std::function< frc::Rotation2d()> desiredRotation, std::function< void(std::array< frc::SwerveModuleState, NumModules >)> output, std::initializer_list< Subsystem * > requirements)
frc::Trajectory m_trajectory
void End(bool interrupted) override
frc::SwerveDriveKinematics< NumModules > m_kinematics