Skip to content

Commit 42283e6

Browse files
Convert midbar climb to control outer hooks instead of inner
- Nick Q
1 parent d20c4f0 commit 42283e6

File tree

6 files changed

+57
-43
lines changed

6 files changed

+57
-43
lines changed

src/main/cpp/Robot.cpp

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -38,55 +38,56 @@ void Robot::RobotInit()
3838
mRunIntakeCommand = new RunIntakeCommand(mIntake);
3939
mShootCommand = new ShootCommand(mShooter);
4040

41-
mManualRetractInnerArms = new frc2::FunctionalCommand(
41+
mManualRetractOuterArms = new frc2::FunctionalCommand(
4242
[&]() {},
4343
[&]() {
44-
bool isInner1NearTarget = mClimber->isInner1NearTarget(0.0);
45-
bool isInner2NearTarget = mClimber->isInner2NearTarget(0.0);
44+
bool isOuter1NearTarget = mClimber->isOuter1NearTarget(0.0);
45+
bool isOuter2NearTarget = mClimber->isOuter2NearTarget(0.0);
4646

47-
if (isInner1NearTarget) {
48-
mClimber->stopInner1();
47+
if (isOuter1NearTarget) {
48+
mClimber->stopOuter1();
4949
} else {
50-
mClimber->runInner1(0.2);
50+
mClimber->runOuter1(0.4);
5151
}
5252

53-
if (isInner2NearTarget) {
54-
mClimber->stopInner2();
53+
if (isOuter2NearTarget) {
54+
mClimber->stopOuter2();
5555
} else {
56-
mClimber->runInner2(0.2);
56+
mClimber->runOuter2(0.4);
5757
}
5858
},
5959
[&](bool) {
60-
mClimber->stopInner1();
61-
mClimber->stopInner2();
60+
mClimber->stopOuter1();
61+
mClimber->stopOuter2();
6262
},
63-
[&]() { return mClimber->isInner1NearTarget(0.0) || mClimber->isInner2NearTarget(0.0); },
63+
[&]() { return mClimber->isOuter1NearTarget(0.0) || mClimber->isOuter2NearTarget(0.0); },
6464
{ mClimber }
6565
);
6666

67-
mManualExtendInnerArms = new frc2::FunctionalCommand(
67+
mManualExtendOuterArms = new frc2::FunctionalCommand(
6868
[&]() {},
6969
[&]() {
70-
bool isInner1NearTarget = mClimber->isInner1NearTarget(20.0);
71-
bool isInner2NearTarget = mClimber->isInner2NearTarget(20.0);
70+
bool isOuter1NearTarget = mClimber->isOuter1NearTarget(20.0);
71+
bool isOuter2NearTarget = mClimber->isOuter2NearTarget(20.0);
7272

73-
if (isInner1NearTarget) {
74-
mClimber->stopInner1();
73+
if (isOuter1NearTarget) {
74+
mClimber->stopOuter1();
7575
} else {
76-
mClimber->runInner1(-0.2);
76+
mClimber->runOuter1(-0.4);
7777
}
7878

79-
if (isInner2NearTarget) {
80-
mClimber->stopInner2();
79+
if (isOuter2NearTarget) {
80+
mClimber->stopOuter2();
8181
} else {
82-
mClimber->runInner2(-0.2);
82+
mClimber->runOuter2(-0.4);
8383
}
8484
},
8585
[&](bool) {
86-
mClimber->stopInner1();
87-
mClimber->stopInner2();
86+
mClimber->stopOuter1();
87+
mClimber->stopOuter2();
8888
},
89-
[&]() { return mClimber->isInner1NearTarget(20.0) || mClimber->isInner2NearTarget(20.0); },
89+
90+
[&]() { return mClimber->isOuter1NearTarget(20.0) || mClimber->isOuter2NearTarget(20.0); },
9091
{ mClimber }
9192
);
9293

@@ -226,14 +227,14 @@ void Robot::TeleopPeriodic()
226227
double opY = operatorController->GetLeftY();
227228
opY = fabs(opY) < 0.3 ? 0.0 : opY;
228229
if (opY < 0.0) {
229-
mManualRetractInnerArms->Schedule();
230+
mManualRetractOuterArms->Schedule();
230231
} else if (opY > 0.0) {
231-
mManualExtendInnerArms->Schedule();
232+
mManualExtendOuterArms->Schedule();
232233
} else {
233-
if (mManualRetractInnerArms->IsScheduled()) {
234-
mManualRetractInnerArms->Cancel();
235-
} else if (mManualExtendInnerArms->IsScheduled()) {
236-
mManualExtendInnerArms->Cancel();
234+
if (mManualRetractOuterArms->IsScheduled()) {
235+
mManualRetractOuterArms->Cancel();
236+
} else if (mManualExtendOuterArms->IsScheduled()) {
237+
mManualExtendOuterArms->Cancel();
237238
}
238239
}
239240
}

src/main/cpp/climber/climber.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,14 @@ void Climber::runInner2(double speed) {
139139
mInnerHookMotor2.Set(speed);
140140
}
141141

142+
void Climber::runOuter1(double speed) {
143+
mOuterHookMotor1.Set(speed);
144+
}
145+
146+
void Climber::runOuter2(double speed) {
147+
mOuterHookMotor2.Set(speed);
148+
}
149+
142150
void Climber::lockArms() {
143151
mStopServo1.Set(config.servo1.lockPosition);
144152
mStopServo2.Set(config.servo2.lockPosition);

src/main/cpp/commands/climber/ClimbMidBarOnly.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
#include "commands/climber/ExtendInnerArms.h"
44
#include "commands/climber/RetractInnerArms.h"
55
#include "commands/climber/RotateInnerArms.h"
6+
7+
#include "commands/climber/ExtendOuterArms.h"
8+
#include "commands/climber/RetractOuterArms.h"
9+
#include "commands/climber/RotateOuterArms.h"
10+
611
#include "commands/climber/LockArms.h"
712

813
#include <frc2/command/InstantCommand.h>
@@ -18,23 +23,21 @@ ClimbMidBarOnly::ClimbMidBarOnly(Climber * climber, std::shared_ptr<cpptoml::tab
1823
mReachMidBar = new frc2::SequentialCommandGroup(
1924
frc2::InstantCommand {
2025
[=]() {
21-
climber->unlockArms();
22-
climber->setInnerUnderLoad(false);
26+
climber->setOuterUnderLoad(false);
2327
},
2428
{ climber }
2529
},
26-
RotateInnerArmsCommand { climber, config.verticalArmAngle },
27-
ExtendInnerArmsCommand { climber, config.initialExtension }
30+
// RotateOuterArmsCommand { climber, config.verticalArmAngle },
31+
ExtendOuterArmsCommand { climber, config.initialExtension }
2832
);
2933

3034
mClimbMidBarAndLock = new frc2::SequentialCommandGroup(
3135
frc2::InstantCommand {
3236
[=] () {
33-
climber->setInnerUnderLoad(true);
37+
climber->setOuterUnderLoad(true);
3438
},
3539
{ climber }
3640
},
37-
RetractInnerArmsCommand { climber, config.liftRetraction },
38-
LockArmsCommand { climber }
41+
RetractOuterArmsCommand { climber, config.liftRetraction }
3942
);
4043
}

src/main/deploy/config.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ servo1.lockPosition = 0.2
2323
servo2.unlockPosition = 0.65
2424
servo2.lockPosition = 1.0
2525

26-
extendSpeed = 0.45
27-
retractSpeed = -0.45
26+
extendSpeed = -0.45
27+
retractSpeed = 0.45
2828
inchesPerRevolution = 0.128325 # equal to 2.5665 / 20, meaning 2.5665 inches per 20 revolutions
2929
innerStaticFriction = 0.05 # actual value unknown
30-
outerStaticFriction = 0.00 # actual value unknown
30+
outerStaticFriction = 0.05 # actual value unknown
3131
innerStaticFrictionWithLoad = 0.25 # actual value unknown
32-
outerStaticFrictionWithLoad = 0.0 # actual value unknown
32+
outerStaticFrictionWithLoad = 0.25 # actual value unknown
3333

3434
[command.climb.midbar]
3535
initialExtension = 16.0

src/main/include/Robot.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,8 @@ class Robot : public frc::TimedRobot
6666
ShootCommand *mShootCommand = nullptr;
6767
RunIntakeCommand *mRunIntakeCommand = nullptr;
6868

69-
frc2::FunctionalCommand *mManualRetractInnerArms = nullptr;
70-
frc2::FunctionalCommand *mManualExtendInnerArms = nullptr;
69+
frc2::FunctionalCommand *mManualRetractOuterArms = nullptr;
70+
frc2::FunctionalCommand *mManualExtendOuterArms = nullptr;
7171

7272
frc2::StartEndCommand *mShootNear = nullptr;
7373
frc2::StartEndCommand *mShootFar = nullptr;

src/main/include/climber/climber.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ class Climber : public frc2::SubsystemBase{
3030
void stopInner2();
3131
void runInner1(double speed);
3232
void runInner2(double speed);
33+
void runOuter1(double speed);
34+
void runOuter2(double speed);
3335

3436
void lockArms();
3537
void unlockArms();

0 commit comments

Comments
 (0)