Skip to content

Commit

Permalink
Update examples to follow best practices
Browse files Browse the repository at this point in the history
  • Loading branch information
bhall-ctre committed Dec 8, 2023
1 parent 9e9ba7a commit 41537ba
Show file tree
Hide file tree
Showing 19 changed files with 78 additions and 73 deletions.
2 changes: 1 addition & 1 deletion cpp/CurrentLimits/src/main/include/Robot.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ class Robot : public frc::TimedRobot {
void SimulationInit() override;
void SimulationPeriodic() override;

ctre::phoenix6::hardware::TalonFX m_fx{0, "Fred"};
ctre::phoenix6::hardware::TalonFX m_fx{0, "canivore"};
ctre::phoenix6::controls::DutyCycleOut m_output{0};
ctre::phoenix6::configs::CurrentLimitsConfigs m_currentLimits{};

Expand Down
4 changes: 2 additions & 2 deletions cpp/FusedCANcoder/src/main/include/Robot.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ class Robot : public frc::TimedRobot {
void SimulationPeriodic() override;


ctre::phoenix6::hardware::TalonFX m_fx{1, "fred"};
ctre::phoenix6::hardware::CANcoder m_cc{1, "fred"};
ctre::phoenix6::hardware::TalonFX m_fx{1, "canivore"};
ctre::phoenix6::hardware::CANcoder m_cc{1, "canivore"};
ctre::phoenix6::StatusSignal<bool> f_fusedSensorOutOfSync = m_fx.GetFault_FusedSensorOutOfSync();
ctre::phoenix6::StatusSignal<bool> sf_fusedSensorOutOfSync = m_fx.GetStickyFault_FusedSensorOutOfSync();
ctre::phoenix6::StatusSignal<bool> f_remoteSensorInvalid = m_fx.GetFault_RemoteSensorDataInvalid();
Expand Down
2 changes: 1 addition & 1 deletion cpp/MotionMagic/src/main/include/sim/TalonFXSimProfile.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile : public SimProfile {
units::ohm_t kMotorResistance = 2_mOhm; // Assume 2mOhm resistance for voltage drop calculation
static constexpr units::ohm_t kMotorResistance = 2_mOhm; // Assume 2mOhm resistance for voltage drop calculation
frc::sim::DCMotorSim _motorSim;
ctre::phoenix6::hardware::TalonFX& _falcon;

Expand Down
24 changes: 12 additions & 12 deletions java/BasicLatencyCompensation/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,29 +21,29 @@
* project.
*/
public class Robot extends TimedRobot {
private final String CANBUS_NAME = "Fred";
private CANcoder m_cc = new CANcoder(0, CANBUS_NAME);
private TalonFX m_fx = new TalonFX(0, CANBUS_NAME);
private Pigeon2 m_p2 = new Pigeon2(0, CANBUS_NAME);
private static final String CANBUS_NAME = "canivore";
private final CANcoder m_cc = new CANcoder(0, CANBUS_NAME);
private final TalonFX m_fx = new TalonFX(0, CANBUS_NAME);
private final Pigeon2 m_p2 = new Pigeon2(0, CANBUS_NAME);
private int m_printCount = 0;

private DutyCycleOut m_dutycycle = new DutyCycleOut(0);
private final DutyCycleOut m_dutycycle = new DutyCycleOut(0);

XboxController m_joystick = new XboxController(0);
private final XboxController m_joystick = new XboxController(0);

StatusSignal<Double> m_ccpos = m_cc.getPosition();
StatusSignal<Double> m_fxpos = m_fx.getPosition();
StatusSignal<Double> m_p2yaw = m_p2.getYaw();
StatusSignal<Double> m_ccvel = m_cc.getVelocity();
StatusSignal<Double> m_fxvel = m_fx.getVelocity();
private final StatusSignal<Double> m_ccpos = m_cc.getPosition();
private final StatusSignal<Double> m_fxpos = m_fx.getPosition();
private final StatusSignal<Double> m_p2yaw = m_p2.getYaw();
private final StatusSignal<Double> m_ccvel = m_cc.getVelocity();
private final StatusSignal<Double> m_fxvel = m_fx.getVelocity();
/**
* Pigeon2 can only perform this latency compensation if the Z axis is straight up, since the
* angular velocity Z value comes from the pre-mount orientation gyroscope.
* For more information on what signals have what algorithms applied to them,
* see section 1.6 of the Pigeon 2's User's Guide
* https://store.ctr-electronics.com/content/user-manual/Pigeon2%20User's%20Guide.pdf
*/
StatusSignal<Double> m_p2yawRate = m_p2.getAngularVelocityZ();
private final StatusSignal<Double> m_p2yawRate = m_p2.getAngularVelocityZ();

/**
* This function is run when the robot is first started up and should be used for any
Expand Down
4 changes: 2 additions & 2 deletions java/CANcoder/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
* project.
*/
public class Robot extends TimedRobot {
private final double PRINT_PERIOD = 0.5; // Update every 500 ms
private static final double PRINT_PERIOD = 0.5; // Update every 500 ms

private final String canBusName = "Fred";
private static final String canBusName = "rio";
private final TalonFX talonFX = new TalonFX(2, canBusName);
private final CANcoder cancoder = new CANcoder(1, canBusName);
private final DutyCycleOut fwdOut = new DutyCycleOut(0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile extends SimProfile {
private final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private static final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private final TalonFX _falcon;
private final CANcoder _canCoder;
private final double _gearRatio;
Expand Down
8 changes: 4 additions & 4 deletions java/CurrentLimits/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,12 @@
* project.
*/
public class Robot extends TimedRobot {
TalonFX m_fx = new TalonFX(0, "Fred");
DutyCycleOut m_output = new DutyCycleOut(0);
private final TalonFX m_fx = new TalonFX(0, "canivore");
private final DutyCycleOut m_output = new DutyCycleOut(0);

CurrentLimitsConfigs m_currentLimits = new CurrentLimitsConfigs();
private final CurrentLimitsConfigs m_currentLimits = new CurrentLimitsConfigs();

XboxController m_joystick = new XboxController(0);
private final XboxController m_joystick = new XboxController(0);


int printCount = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* project.
*/
public class Robot extends TimedRobot {
private final String CANBUS_NAME = "";
private static final String CANBUS_NAME = "canivore";
private final TalonFX leftLeader = new TalonFX(1, CANBUS_NAME);
private final TalonFX leftFollower = new TalonFX(2, CANBUS_NAME);
private final TalonFX rightLeader = new TalonFX(3, CANBUS_NAME);
Expand Down
32 changes: 17 additions & 15 deletions java/FusedCANcoder/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,26 +25,28 @@
* project.
*/
public class Robot extends TimedRobot {
TalonFX m_fx = new TalonFX(1, "fred");
CANcoder m_cc = new CANcoder(1, "fred");
StatusSignal<Boolean> f_fusedSensorOutOfSync = m_fx.getFault_FusedSensorOutOfSync();
StatusSignal<Boolean> sf_fusedSensorOutOfSync = m_fx.getStickyFault_FusedSensorOutOfSync();
StatusSignal<Boolean> f_remoteSensorInvalid = m_fx.getFault_RemoteSensorDataInvalid();
StatusSignal<Boolean> sf_remoteSensorInvalid = m_fx.getStickyFault_RemoteSensorDataInvalid();
private static final String canBusName = "canivore";
private final TalonFX m_fx = new TalonFX(1, canBusName);
private final CANcoder m_cc = new CANcoder(1, canBusName);

StatusSignal<Double> fx_pos = m_fx.getPosition();
StatusSignal<Double> fx_vel = m_fx.getVelocity();
StatusSignal<Double> cc_pos = m_cc.getPosition();
StatusSignal<Double> cc_vel = m_cc.getVelocity();
StatusSignal<Double> fx_rotorPos = m_fx.getRotorPosition();
private final StatusSignal<Boolean> f_fusedSensorOutOfSync = m_fx.getFault_FusedSensorOutOfSync();
private final StatusSignal<Boolean> sf_fusedSensorOutOfSync = m_fx.getStickyFault_FusedSensorOutOfSync();
private final StatusSignal<Boolean> f_remoteSensorInvalid = m_fx.getFault_RemoteSensorDataInvalid();
private final StatusSignal<Boolean> sf_remoteSensorInvalid = m_fx.getStickyFault_RemoteSensorDataInvalid();

DutyCycleOut m_dutyCycleControl = new DutyCycleOut(0);
private final StatusSignal<Double> fx_pos = m_fx.getPosition();
private final StatusSignal<Double> fx_vel = m_fx.getVelocity();
private final StatusSignal<Double> cc_pos = m_cc.getPosition();
private final StatusSignal<Double> cc_vel = m_cc.getVelocity();
private final StatusSignal<Double> fx_rotorPos = m_fx.getRotorPosition();

XboxController m_joystick = new XboxController(0);
private final DutyCycleOut m_dutyCycleControl = new DutyCycleOut(0);

int printCount = 0;
private final XboxController m_joystick = new XboxController(0);

Mechanisms m_mechanism = new Mechanisms();
private int printCount = 0;

private final Mechanisms m_mechanism = new Mechanisms();

/**
* This function is run when the robot is first started up and should be used for any
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile extends SimProfile {
private final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private static final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private final TalonFX _falcon;
private final CANcoder _canCoder;
private final double _gearRatio;
Expand Down
11 changes: 6 additions & 5 deletions java/MotionMagic/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,13 @@
* project.
*/
public class Robot extends TimedRobot {
TalonFX m_fx = new TalonFX(1, "Fred");
MotionMagicVoltage m_mmReq = new MotionMagicVoltage(0);
XboxController m_joystick = new XboxController(0);
int m_printCount = 0;
private final TalonFX m_fx = new TalonFX(1, "canivore");
private final MotionMagicVoltage m_mmReq = new MotionMagicVoltage(0);
private final XboxController m_joystick = new XboxController(0);

Mechanisms m_mechanisms = new Mechanisms();
private int m_printCount = 0;

private final Mechanisms m_mechanisms = new Mechanisms();

@Override
public void simulationInit() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile extends SimProfile {
private final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private static final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private final TalonFX _falcon;

private final DCMotorSim _motorSim;
Expand Down
2 changes: 1 addition & 1 deletion java/Pigeon2/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
* project.
*/
public class Robot extends TimedRobot {
private final double PRINT_PERIOD = 0.5; // Update every 500 ms
private static final double PRINT_PERIOD = 0.5; // Update every 500 ms

/* Keep a reference for a TalonFX around so we can drive the thing the Pigeon is on */
private final TalonFX talonfx = new TalonFX(0, "rio");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile extends SimProfile {
private final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private static final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private final TalonFX _falcon;
private final Pigeon2 _pigeon;

Expand Down
2 changes: 1 addition & 1 deletion java/PositionClosedLoop/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
* project.
*/
public class Robot extends TimedRobot {
private final TalonFX m_fx = new TalonFX(0, "Fred");
private final TalonFX m_fx = new TalonFX(0, "canivore");

/* Be able to switch which control request to use based on a button press */
/* Start at position 0, enable FOC, no feed forward, use slot 0 */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile extends SimProfile {
private final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private static final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation

private final DCMotorSim _motorSim;
private final TalonFXSimState _falconSim;
Expand Down
5 changes: 3 additions & 2 deletions java/VelocityClosedLoop/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@
* project.
*/
public class Robot extends TimedRobot {
private final TalonFX m_fx = new TalonFX(0, "Fred");
private final TalonFX m_fllr = new TalonFX(1, "Fred");
private static final String canBusName = "canivore";
private final TalonFX m_fx = new TalonFX(0, canBusName);
private final TalonFX m_fllr = new TalonFX(1, canBusName);

/* Be able to switch which control request to use based on a button press */
/* Start at velocity 0, enable FOC, no feed forward, use slot 0 */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
* Holds information about a simulated TalonFX.
*/
class TalonFXSimProfile extends SimProfile {
private final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private static final double kMotorResistance = 0.002; // Assume 2mOhm resistance for voltage drop calculation
private final TalonFXSimState _falconSim;
private final DCMotorSim _motorSim;

Expand Down
41 changes: 21 additions & 20 deletions java/WaitForAll/src/main/java/frc/robot/Robot.java
Original file line number Diff line number Diff line change
Expand Up @@ -20,44 +20,45 @@
* project.
*/
public class Robot extends TimedRobot {
TalonFX m_motor1 = new TalonFX(0, "*"); // Pick the first CANivore bus
Pigeon2 m_pigdey = new Pigeon2(1, "*"); // Pick the first CANivore bus also
TalonFX m_transcientMotor = new TalonFX(20, "*"); // This motor may or may not be on the bus,
// selectively power it to completely test this example
TalonFX m_motor2 = new TalonFX(0, "rio"); // Pick the RIO bus to force a failure we can detect

StatusSignal<Double> m_canbus1signal1 = m_motor1.getPosition();
StatusSignal<Double> m_canbus1signal2 = m_motor1.getVelocity();
StatusSignal<ControlModeValue> m_canbus1signal3 = m_motor1.getControlMode();
StatusSignal<Double> m_canbus1signal4 = m_pigdey.getYaw();
StatusSignal<Double> m_canbus1signal5 = m_pigdey.getRoll();
private final TalonFX m_motor1 = new TalonFX(0, "*"); // Pick the first CANivore bus
private final Pigeon2 m_pigdey = new Pigeon2(1, "*"); // Pick the first CANivore bus also
private final TalonFX m_transcientMotor = new TalonFX(20, "*"); // This motor may or may not be on the bus,
// selectively power it to completely test this example
private final TalonFX m_motor2 = new TalonFX(0, "rio"); // Pick the RIO bus to force a failure we can detect

private final StatusSignal<Double> m_canbus1signal1 = m_motor1.getPosition();
private final StatusSignal<Double> m_canbus1signal2 = m_motor1.getVelocity();
private final StatusSignal<ControlModeValue> m_canbus1signal3 = m_motor1.getControlMode();
private final StatusSignal<Double> m_canbus1signal4 = m_pigdey.getYaw();
private final StatusSignal<Double> m_canbus1signal5 = m_pigdey.getRoll();

StatusSignal<Double> m_canbus2signal1 = m_motor2.getPosition();
private final StatusSignal<Double> m_canbus2signal1 = m_motor2.getPosition();

StatusSignal<Double> m_canbus1transcient1 = m_transcientMotor.getPosition();
StatusSignal<Double> m_canbus1transcient2 = m_transcientMotor.getVelocity();
private final StatusSignal<Double> m_canbus1transcient1 = m_transcientMotor.getPosition();
private final StatusSignal<Double> m_canbus1transcient2 = m_transcientMotor.getVelocity();

StatusSignal<?>[] m_signalsAcrossCANbuses = new StatusSignal<?>[]{
private final StatusSignal<?>[] m_signalsAcrossCANbuses = new StatusSignal<?>[]{
m_canbus1signal1,
m_canbus2signal1
};
StatusSignal<?>[] m_lotsOfSignals = new StatusSignal<?>[]{
private final StatusSignal<?>[] m_lotsOfSignals = new StatusSignal<?>[]{
m_canbus1signal1,
m_canbus1signal2,
m_canbus1signal3,
m_canbus1signal4,
m_canbus1signal5
};
StatusSignal<?>[] m_noSignals = new StatusSignal<?>[]{};
StatusSignal<?>[] m_tanscientSignals = new StatusSignal<?>[]{
private final StatusSignal<?>[] m_noSignals = new StatusSignal<?>[]{};
private final StatusSignal<?>[] m_tanscientSignals = new StatusSignal<?>[]{
m_canbus1signal1,
m_canbus1signal2,
m_canbus1transcient1,
m_canbus1transcient2
};

XboxController m_joystick = new XboxController(0); // Allow us to see the different errors
private final XboxController m_joystick = new XboxController(0); // Allow us to see the different errors

double m_waitForAllTimeout = 0.1;
private double m_waitForAllTimeout = 0.1;
/**
* This function is run when the robot is first started up and should be used for any
* initialization code.
Expand Down

0 comments on commit 41537ba

Please sign in to comment.