mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-20 00:51:42 +00:00
[wpilib] Enable ArmSubsystem in ArmBot example (#2752)
This commit is contained in:
committed by
GitHub
parent
693daafe29
commit
330b90e046
@@ -1,5 +1,5 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2017-2019 FIRST. All Rights Reserved. */
|
||||
/* Copyright (c) 2017-2020 FIRST. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
@@ -27,7 +27,7 @@ void Robot::RobotPeriodic() { frc2::CommandScheduler::GetInstance().Run(); }
|
||||
* can use it to reset any subsystem information you want to clear when the
|
||||
* robot is disabled.
|
||||
*/
|
||||
void Robot::DisabledInit() {}
|
||||
void Robot::DisabledInit() { m_container.DisablePIDSubsystems(); }
|
||||
|
||||
void Robot::DisabledPeriodic() {}
|
||||
|
||||
|
||||
@@ -32,12 +32,25 @@ void RobotContainer::ConfigureButtonBindings() {
|
||||
|
||||
// Move the arm to 2 radians above horizontal when the 'A' button is pressed.
|
||||
frc2::JoystickButton(&m_driverController, 1)
|
||||
.WhenPressed([this] { m_arm.SetGoal(2_rad); }, {&m_arm});
|
||||
.WhenPressed(
|
||||
[this] {
|
||||
m_arm.SetGoal(2_rad);
|
||||
m_arm.Enable();
|
||||
},
|
||||
{&m_arm});
|
||||
|
||||
// Move the arm to neutral position when the 'B' button is pressed.
|
||||
frc2::JoystickButton(&m_driverController, 1)
|
||||
.WhenPressed([this] { m_arm.SetGoal(ArmConstants::kArmOffset); },
|
||||
{&m_arm});
|
||||
frc2::JoystickButton(&m_driverController, 2)
|
||||
.WhenPressed(
|
||||
[this] {
|
||||
m_arm.SetGoal(ArmConstants::kArmOffset);
|
||||
m_arm.Enable();
|
||||
},
|
||||
{&m_arm});
|
||||
|
||||
// Disable the arm controller when Y is pressed.
|
||||
frc2::JoystickButton(&m_driverController, 4)
|
||||
.WhenPressed([this] { m_arm.Disable(); }, {&m_arm});
|
||||
|
||||
// While holding the shoulder button, drive at half speed
|
||||
frc2::JoystickButton(&m_driverController, 6)
|
||||
@@ -45,6 +58,8 @@ void RobotContainer::ConfigureButtonBindings() {
|
||||
.WhenReleased([this] { m_drive.SetMaxOutput(1); });
|
||||
}
|
||||
|
||||
void RobotContainer::DisablePIDSubsystems() { m_arm.Disable(); }
|
||||
|
||||
frc2::Command* RobotContainer::GetAutonomousCommand() {
|
||||
// Runs the chosen command in autonomous
|
||||
return new frc2::InstantCommand([] {});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*----------------------------------------------------------------------------*/
|
||||
/* Copyright (c) 2019 FIRST. All Rights Reserved. */
|
||||
/* Copyright (c) 2019-2020 FIRST. All Rights Reserved. */
|
||||
/* Open Source Software - may be modified and shared by FRC teams. The code */
|
||||
/* must be accompanied by the FIRST BSD license file in the root directory of */
|
||||
/* the project. */
|
||||
@@ -35,6 +35,12 @@ class RobotContainer {
|
||||
public:
|
||||
RobotContainer();
|
||||
|
||||
/**
|
||||
* Disables all ProfiledPIDSubsystem and PIDSubsystem instances.
|
||||
* This should be called on robot disable to prevent integral windup.
|
||||
*/
|
||||
void DisablePIDSubsystems();
|
||||
|
||||
frc2::Command* GetAutonomousCommand();
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user