Tune catapult to be a lot more accurate
Transition to the decel controller 1 cycle sooner, and also make sure to
use the aggressive decel that same cycle.
This increases shot accuracy quite a bit.
Also, tune the controller a bit. It seems to have lower resistance than
expected.
Change-Id: I04e3ad6e08ebc0a4aab5c9c3706eee27ab111a60
Signed-off-by: Austin Schuh <austin.linux@gmail.com>
diff --git a/y2022/control_loops/python/catapult.py b/y2022/control_loops/python/catapult.py
index ad0e25a..2d0588a 100755
--- a/y2022/control_loops/python/catapult.py
+++ b/y2022/control_loops/python/catapult.py
@@ -46,7 +46,7 @@
kCatapultWithBall = catapult_lib.CatapultParams(
name='Catapult',
- motor=AddResistance(control_loop.NMotor(control_loop.Falcon(), 2), 0.03),
+ motor=AddResistance(control_loop.NMotor(control_loop.Falcon(), 2), 0.01),
G=G,
J=J,
radius=lever,
diff --git a/y2022/control_loops/superstructure/catapult/catapult.cc b/y2022/control_loops/superstructure/catapult/catapult.cc
index b99f59b..fda62ad 100644
--- a/y2022/control_loops/superstructure/catapult/catapult.cc
+++ b/y2022/control_loops/superstructure/catapult/catapult.cc
@@ -384,15 +384,20 @@
}
}
- if (!use_profile_ || catapult_state_ == CatapultState::RESETTING) {
+ if (!use_profile_) {
catapult_.ForceGoal(catapult_.estimated_position(),
catapult_.estimated_velocity());
}
- } break;
+ }
+ if (catapult_state_ != CatapultState::RESETTING) {
+ break;
+ } else {
+ [[fallthrough]];
+ }
case CatapultState::RESETTING:
if (catapult_.controller().R(1, 0) > 0.0) {
- catapult_.AdjustProfile(7.0, 1000.0);
+ catapult_.AdjustProfile(7.0, 1400.0);
} else {
catapult_state_ = CatapultState::PROFILE;
}