14 template <
size_t NumModules>
    16     frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
    17     frc::SwerveDriveKinematics<NumModules> kinematics,
    18     frc2::PIDController xController, frc2::PIDController yController,
    19     frc::ProfiledPIDController<units::radians> thetaController,
    20     std::function<frc::Rotation2d()> desiredRotation,
    21     std::function<
void(std::array<frc::SwerveModuleState, NumModules>)> output,
    22     std::initializer_list<Subsystem*> requirements)
    23     : m_trajectory(
std::move(trajectory)),
    24       m_pose(
std::move(pose)),
    25       m_kinematics(kinematics),
    26       m_controller(xController, yController, thetaController),
    27       m_desiredRotation(
std::move(desiredRotation)),
    28       m_outputStates(output)
    30     this->AddRequirements(requirements);
    33 template <
size_t NumModules>
    35     frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
    36     frc::SwerveDriveKinematics<NumModules> kinematics,
    37     frc2::PIDController xController, frc2::PIDController yController,
    38     frc::ProfiledPIDController<units::radians> thetaController,
    39     std::function<
void(std::array<frc::SwerveModuleState, NumModules>)> output,
    40     std::initializer_list<Subsystem*> requirements)
    47   this->AddRequirements(requirements);
    53 template <
size_t NumModules>
    55     frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
    56     frc::SwerveDriveKinematics<NumModules> kinematics,
    57     frc2::PIDController xController, frc2::PIDController yController,
    58     frc::ProfiledPIDController<units::radians> thetaController,
    59     std::function<frc::Rotation2d()> desiredRotation,
    60     std::function<
void(std::array<frc::SwerveModuleState, NumModules>)> output,
    61     wpi::ArrayRef<Subsystem*> requirements)
    69   this->AddRequirements(requirements);
    72 template <
size_t NumModules>
    74     frc::Trajectory trajectory, std::function<frc::Pose2d()> pose,
    75     frc::SwerveDriveKinematics<NumModules> kinematics,
    76     frc2::PIDController xController, frc2::PIDController yController,
    77     frc::ProfiledPIDController<units::radians> thetaController,
    78     std::function<
void(std::array<frc::SwerveModuleState, NumModules>)> output,
    79     wpi::ArrayRef<Subsystem*> requirements)
    86     this->AddRequirements(requirements);
    92 template <
size_t NumModules>
    98 template <
size_t NumModules>
   100   auto curTime = units::second_t(
m_timer.Get());
   104   auto targetChassisSpeeds = 
m_controller.Calculate(
m_pose(), m_desiredState, m_desiredState.pose.Rotation());
   112   auto targetModuleStates = 
m_kinematics.ToSwerveModuleStates(targetChassisSpeeds);
   117 template <
size_t NumModules>
   122 template <
size_t NumModules>
 
frc::HolonomicDriveController m_controller
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