Initial tuning of the control loops.
These were tuned by looking at the plots and looking at how aggressive
the controller is.
Change-Id: I68d7b396ccdcc79640bbffaea8102414720fe164
diff --git a/y2020/control_loops/python/accelerator.py b/y2020/control_loops/python/accelerator.py
index e5b26fb..64ae12e 100644
--- a/y2020/control_loops/python/accelerator.py
+++ b/y2020/control_loops/python/accelerator.py
@@ -31,14 +31,14 @@
J=J,
q_pos=0.08,
q_vel=4.00,
- q_voltage=0.3,
+ q_voltage=0.4,
r_pos=0.05,
- controller_poles=[.87])
+ controller_poles=[.80])
def main(argv):
if FLAGS.plot:
- R = numpy.matrix([[0.0], [100.0], [0.0]])
+ R = numpy.matrix([[0.0], [500.0], [0.0]])
flywheel.PlotSpinup(kAccelerator, goal=R, iterations=200)
return 0
diff --git a/y2020/control_loops/python/drivetrain.py b/y2020/control_loops/python/drivetrain.py
index 696c8a2..95b9fcf 100644
--- a/y2020/control_loops/python/drivetrain.py
+++ b/y2020/control_loops/python/drivetrain.py
@@ -13,7 +13,7 @@
kDrivetrain = drivetrain.DrivetrainParams(
J=6.0,
- mass=58.0,
+ mass=68.0,
# TODO(austin): Measure radius a bit better.
robot_radius=0.7 / 2.0,
wheel_radius=6.0 * 0.0254 / 2.0,
@@ -25,8 +25,7 @@
has_imu=True,
force=True,
kf_q_voltage=13.0,
- controller_poles=[0.82, 0.82],
- robot_cg_offset=0.0)
+ controller_poles=[0.82, 0.82])
def main(argv):
@@ -41,5 +40,6 @@
# Write the generated constants out to a file.
drivetrain.WriteDrivetrain(argv[1:3], argv[3:5], 'y2020', kDrivetrain)
+
if __name__ == '__main__':
sys.exit(main(sys.argv))
diff --git a/y2020/control_loops/python/finisher.py b/y2020/control_loops/python/finisher.py
index b789279..0d46bb9 100644
--- a/y2020/control_loops/python/finisher.py
+++ b/y2020/control_loops/python/finisher.py
@@ -31,9 +31,9 @@
J=J,
q_pos=0.08,
q_vel=4.00,
- q_voltage=0.3,
+ q_voltage=0.4,
r_pos=0.05,
- controller_poles=[.87])
+ controller_poles=[.80])
def main(argv):
diff --git a/y2020/control_loops/python/flywheel.py b/y2020/control_loops/python/flywheel.py
index 9a6fc46..0457985 100755
--- a/y2020/control_loops/python/flywheel.py
+++ b/y2020/control_loops/python/flywheel.py
@@ -214,7 +214,7 @@
offset.append(observer_flywheel.X_hat[2, 0])
applied_U = U.copy()
- if i > 30:
+ if i > 100:
applied_U += 2
flywheel.Update(applied_U)
diff --git a/y2020/control_loops/python/hood.py b/y2020/control_loops/python/hood.py
index fa92446..b4d8c84 100644
--- a/y2020/control_loops/python/hood.py
+++ b/y2020/control_loops/python/hood.py
@@ -33,11 +33,11 @@
motor=control_loop.BAG(),
G=radians_per_turn,
J=0.08389,
- q_pos=0.20,
- q_vel=5.0,
+ q_pos=0.55,
+ q_vel=14.0,
kalman_q_pos=0.12,
kalman_q_vel=2.0,
- kalman_q_voltage=4.0,
+ kalman_q_voltage=2.5,
kalman_r_position=0.05)
diff --git a/y2020/control_loops/python/intake.py b/y2020/control_loops/python/intake.py
index 7e95758..9e80244 100644
--- a/y2020/control_loops/python/intake.py
+++ b/y2020/control_loops/python/intake.py
@@ -22,8 +22,8 @@
motor=control_loop.BAG(),
G=(12.0 / 24.0) * (1.0 / 7.0) * (1.0 / 7.0) * (16.0 / 32.0),
J=3.0 * 0.139 * 0.139,
- q_pos=0.20,
- q_vel=5.0,
+ q_pos=0.40,
+ q_vel=20.0,
kalman_q_pos=0.12,
kalman_q_vel=2.0,
kalman_q_voltage=4.0,
diff --git a/y2020/control_loops/python/turret.py b/y2020/control_loops/python/turret.py
index dd2244d..e276457 100644
--- a/y2020/control_loops/python/turret.py
+++ b/y2020/control_loops/python/turret.py
@@ -23,14 +23,19 @@
motor=control_loop.Vex775Pro(),
G=(6.0 / 60.0) * (26.0 / 150.0),
J=0.11,
- q_pos=0.20,
- q_vel=5.0,
+ q_pos=0.40,
+ q_vel=7.0,
kalman_q_pos=0.12,
kalman_q_vel=2.0,
- kalman_q_voltage=4.0,
+ kalman_q_voltage=3.0,
kalman_r_position=0.05)
def main(argv):
+ if FLAGS.plot:
+ R = numpy.matrix([[numpy.pi], [0.0]])
+ angular_system.PlotKick(kTurret, R)
+ angular_system.PlotMotion(kTurret, R)
+
# Write the generated constants out to a file.
if len(argv) != 5:
glog.fatal(