2025-Robot
Robot code for 2025 FRC season by Argos, FRC team #1756
Loading...
Searching...
No Matches
elevator_subsystem.h
Go to the documentation of this file.
1
4
5#pragma once
7#include <frc2/command/CommandPtr.h>
8#include <frc2/command/SubsystemBase.h>
9
10#include <ctre/phoenix6/TalonFX.hpp>
11
12#include "constants/position.h"
13
14class ElevatorSubsystem : public frc2::SubsystemBase {
15 public:
16 explicit ElevatorSubsystem(argos_lib::RobotInstance robotInstance);
17
21 void Periodic() override;
22
23 void ElevatorMove(double speed);
24
25 void Pivot(double speed);
26
27 void Rotate(double speed);
28
29 void Disable();
30
31 void ElevatorMoveToHeight(units::inch_t height);
32
33 void ArmMoveToAngle(units::degree_t armAngle);
34
35 void SetWristAngle(units::degree_t wristAngle);
36
37 [[nodiscard]] frc2::CommandPtr CommandElevatorToHeight(units::inch_t height);
38
39 [[nodiscard]] frc2::CommandPtr CommandArmToAngle(units::degree_t armAngle);
40
41 [[nodiscard]] frc2::CommandPtr CommandWristToAngle(units::degree_t wristAngle);
42
43 void SetElevatorManualOverride(bool desiredOverrideState);
44
45 [[nodiscard]] bool GetElevatorManualOverride() const;
46
47 [[nodiscard]] units::inch_t GetElevatorHeight();
48
49 [[nodiscard]] bool IsElevatorAtSetPoint();
50
51 [[nodiscard]] units::degree_t GetArmAngle();
52
53 [[nodiscard]] bool IsArmAtSetPoint();
54
55 [[nodiscard]] units::degree_t GetWristAngle();
56
57 [[nodiscard]] bool IsWristAtSetPoint();
58
59 [[nodiscard]] Position GetPosition();
60
61 [[nodiscard]] bool IsAtSetPoint();
62
63 [[nodiscard]] Position GetSetpoint();
64
65 void GoToPosition(const Position target);
66
67 [[nodiscard]] frc2::CommandPtr CommandToPosition(const Position target);
68
69 [[nodiscard]] bool IsAtStowPosition();
70
71 [[nodiscard]] bool IsArmOutsideFrame();
72
73 private:
74 // Components (e.g. motor controllers and sensors) should generally be
75 // declared private and exposed only through public methods.
76 ctre::phoenix6::hardware::TalonFX m_elevatorPrimary;
77 ctre::phoenix6::hardware::TalonFX m_elevatorSecondary;
78 ctre::phoenix6::hardware::TalonFX m_armMotor;
79 ctre::phoenix6::hardware::TalonFX m_wristMotor;
91};
Definition elevator_subsystem.h:14
bool m_armHomed
Definition elevator_subsystem.h:83
units::inch_t GetElevatorHeight()
Definition elevator_subsystem.cpp:142
frc2::CommandPtr CommandElevatorToHeight(units::inch_t height)
Definition elevator_subsystem.cpp:93
bool IsArmOutsideFrame()
Definition elevator_subsystem.cpp:303
units::degree_t GetArmAngle()
Definition elevator_subsystem.cpp:185
bool m_wristHomed
Definition elevator_subsystem.h:84
bool IsArmAtSetPoint()
Definition elevator_subsystem.cpp:189
ctre::phoenix6::hardware::TalonFX m_elevatorPrimary
Definition elevator_subsystem.h:76
ctre::phoenix6::hardware::TalonFX m_wristMotor
Definition elevator_subsystem.h:79
bool IsElevatorAtSetPoint()
Definition elevator_subsystem.cpp:146
bool m_elevatorHomed
Definition elevator_subsystem.h:82
void EnableWristSoftLimits()
Definition elevator_subsystem.cpp:248
void SetWristAngle(units::degree_t wristAngle)
Definition elevator_subsystem.cpp:85
Position GetSetpoint()
Definition elevator_subsystem.cpp:275
void GoToPosition(const Position target)
Definition elevator_subsystem.cpp:284
frc2::CommandPtr CommandArmToAngle(units::degree_t armAngle)
Definition elevator_subsystem.cpp:102
void ElevatorMove(double speed)
Definition elevator_subsystem.cpp:59
Position GetPosition()
Definition elevator_subsystem.cpp:267
ctre::phoenix6::hardware::TalonFX m_elevatorSecondary
Definition elevator_subsystem.h:77
void ElevatorMoveToHeight(units::inch_t height)
Definition elevator_subsystem.cpp:126
bool m_elevatorManualOverride
Definition elevator_subsystem.h:81
bool IsAtStowPosition()
Definition elevator_subsystem.cpp:299
argos_lib::RobotInstance m_robotInstance
Definition elevator_subsystem.h:80
void Rotate(double speed)
Definition elevator_subsystem.cpp:79
void Disable()
Definition elevator_subsystem.cpp:120
ElevatorSubsystem(argos_lib::RobotInstance robotInstance)
Definition elevator_subsystem.cpp:18
bool IsAtSetPoint()
Definition elevator_subsystem.cpp:271
frc2::CommandPtr CommandToPosition(const Position target)
Definition elevator_subsystem.cpp:290
void DisableElevatorSoftLimits()
Definition elevator_subsystem.cpp:178
ctre::phoenix6::hardware::TalonFX m_armMotor
Definition elevator_subsystem.h:78
void EnableElevatorSoftLimits()
Definition elevator_subsystem.cpp:165
units::degree_t GetWristAngle()
Definition elevator_subsystem.cpp:226
void DisableWristSoftLimits()
Definition elevator_subsystem.cpp:261
frc2::CommandPtr CommandWristToAngle(units::degree_t wristAngle)
Definition elevator_subsystem.cpp:111
void SetElevatorManualOverride(bool desiredOverrideState)
Definition elevator_subsystem.cpp:134
void ArmMoveToAngle(units::degree_t armAngle)
Definition elevator_subsystem.cpp:71
void EnableArmSoftLimits()
Definition elevator_subsystem.cpp:206
void Pivot(double speed)
Definition elevator_subsystem.cpp:65
bool GetElevatorManualOverride() const
Definition elevator_subsystem.cpp:138
void DisableArmSoftLimits()
Definition elevator_subsystem.cpp:219
bool IsWristAtSetPoint()
Definition elevator_subsystem.cpp:230
void Periodic() override
Definition elevator_subsystem.cpp:57
RobotInstance
Differentiates between practice robot and competition robot.
Definition config_types.h:13
Definition position.h:13