made the wrist stiffer
diff --git a/frc971/control_loops/python/control_loop.py b/frc971/control_loops/python/control_loop.py
index 6704526..c5316e7 100644
--- a/frc971/control_loops/python/control_loop.py
+++ b/frc971/control_loops/python/control_loop.py
@@ -83,13 +83,15 @@
ans = [" Eigen::Matrix<double, %d, %d> %s;\n" % (
matrix.shape[0], matrix.shape[1], matrix_name)]
first = True
- for element in numpy.nditer(matrix, order='C'):
- if first:
- ans.append(" %s << " % matrix_name)
- first = False
- else:
- ans.append(", ")
- ans.append(str(element))
+ for x in xrange(matrix.shape[0]):
+ for y in xrange(matrix.shape[1]):
+ element = matrix[x, y]
+ if first:
+ ans.append(" %s << " % matrix_name)
+ first = False
+ else:
+ ans.append(", ")
+ ans.append(str(element))
ans.append(";\n")
return "".join(ans)
diff --git a/frc971/control_loops/python/wrist.py b/frc971/control_loops/python/wrist.py
index 498a485..6fc9c27 100755
--- a/frc971/control_loops/python/wrist.py
+++ b/frc971/control_loops/python/wrist.py
@@ -19,7 +19,7 @@
# Moment of inertia of the wrist in kg m^2
# TODO(aschuh): Measure this in reality. It doesn't seem high enough.
# James measured 0.51, but that can't be right given what I am seeing.
- self.J = 1.51
+ self.J = 2.0
# Resistance of the motor
self.R = 12.0 / self.stall_current + 0.024 + .003
# Motor velocity constant
@@ -45,7 +45,7 @@
self.ContinuousToDiscrete(self.A_continuous, self.B_continuous,
self.dt, self.C)
- self.PlaceControllerPoles([.84, .84])
+ self.PlaceControllerPoles([.72, .72])
print self.K
diff --git a/frc971/control_loops/wrist/wrist_motor_plant.cc b/frc971/control_loops/wrist/wrist_motor_plant.cc
index 3998cae..79d62db 100644
--- a/frc971/control_loops/wrist/wrist_motor_plant.cc
+++ b/frc971/control_loops/wrist/wrist_motor_plant.cc
@@ -8,9 +8,9 @@
StateFeedbackPlant<2, 1, 1> MakeWristPlant() {
Eigen::Matrix<double, 2, 2> A;
- A << 1.0, 0.00876530955899, 0.0, 0.763669024671;
+ A << 1.0, 0.00904786878843, 0.0, 0.815818233346;
Eigen::Matrix<double, 2, 1> B;
- B << 0.000423500644841, 0.0810618735867;
+ B << 0.000326582411818, 0.0631746179893;
Eigen::Matrix<double, 1, 2> C;
C << 1, 0;
Eigen::Matrix<double, 1, 1> D;
@@ -24,9 +24,9 @@
StateFeedbackLoop<2, 1, 1> MakeWristLoop() {
Eigen::Matrix<double, 2, 1> L;
- L << 1.66366902467, 58.1140316091;
+ L << 1.71581823335, 64.8264890043;
Eigen::Matrix<double, 1, 2> K;
- K << 31.5808145893, 0.867171288023;
+ K << 124.10047341, 5.30734038612;
return StateFeedbackLoop<2, 1, 1>(L, K, MakeWristPlant());
}