9#include <frc2/command/Command.h>
10#include <frc2/command/CommandHelper.h>
18class AutoAimCommand :
public frc2::CommandHelper<frc2::Command, AutoAimCommand> {
26 bool endWhenAimed =
false);
32 void End(
bool interrupted)
override;
45 std::chrono::time_point<std::chrono::steady_clock>
m_startTime;
61 [[nodiscard]] std::optional<units::degree_t>
GetAdjustmentOffset(
const std::optional<AimParams>& params);
66 [[nodiscard]]
bool Aimed(
const std::optional<AimParams>& params);
71 [[nodiscard]]
bool Aim(
const std::optional<AimParams>& params);
Definition auto_aim_command.h:18
void Execute() override
Definition auto_aim_command.cpp:45
void End(bool interrupted) override
Definition auto_aim_command.cpp:54
VisionSubsystem * m_pVision
Definition auto_aim_command.h:40
std::optional< AimParams > GetAimParams()
Read latest vision targets from vision subsystem and generate parameters useful for aiming.
Definition auto_aim_command.cpp:65
void SetOperatorFeedback(const std::optional< AimParams > ¶ms)
Set LEDs and vibration based on aiming status.
Definition auto_aim_command.cpp:109
SwerveDriveSubsystem * m_pSwerveDrive
Definition auto_aim_command.h:37
argos_lib::SwappableControllersSubsystem * m_pControllers
Definition auto_aim_command.h:41
SimpleLedSubsystem * m_pLeds
Definition auto_aim_command.h:42
argos_lib::Debouncer m_aimedDebouncer
Definition auto_aim_command.h:44
ElevatorSubsystem * m_pElevator
Definition auto_aim_command.h:39
bool Aimed(const std::optional< AimParams > ¶ms)
Check if robot is currently aimed at vision target.
Definition auto_aim_command.cpp:84
std::chrono::time_point< std::chrono::steady_clock > m_startTime
Definition auto_aim_command.h:45
ShooterSubsystem * m_pShooter
Definition auto_aim_command.h:38
bool IsFinished() override
Definition auto_aim_command.cpp:62
std::optional< units::degree_t > GetAdjustmentOffset(const std::optional< AimParams > ¶ms)
Calculate angle offset to aim toward vision target.
Definition auto_aim_command.cpp:77
void Initialize() override
Definition auto_aim_command.cpp:28
bool Aim(const std::optional< AimParams > ¶ms)
Aim at vision target.
Definition auto_aim_command.cpp:94
bool m_endWhenAimed
Definition auto_aim_command.h:43
Definition elevator_subsystem.h:14
Definition shooter_subsystem.h:13
Definition simple_led_subsystem.h:24
Subsystem for controlling the swerve drivetrain of the robot.
Definition swerve_drive_subsystem.h:67
Definition vision_subsystem.h:120
Definition debouncer.h:14
Allows two controllers to swap between "Driver" and "Operator" control schemes on the fly by swapping...
Definition swappable_controllers_subsystem.h:18
Definition Constants.h:68
Definition auto_aim_command.h:47
units::angular_velocity::revolutions_per_minute_t shooterSpeed
Definition auto_aim_command.h:49
units::degree_t carriageAngle
Definition auto_aim_command.h:48
units::degree_t cameraAngleOffset
Definition auto_aim_command.h:51
units::degree_t targetAngleOffset
Definition auto_aim_command.h:50