Added //external:python-gflags and //external:python-glog
Change-Id: Iebaf8f4fa8574eba0636cf4a2804afbf979a197c
diff --git a/y2014/control_loops/python/drivetrain.py b/y2014/control_loops/python/drivetrain.py
index 8b17853..43d5a19 100755
--- a/y2014/control_loops/python/drivetrain.py
+++ b/y2014/control_loops/python/drivetrain.py
@@ -7,6 +7,12 @@
import argparse
from matplotlib import pylab
+import gflags
+import glog
+
+FLAGS = gflags.FLAGS
+
+gflags.DEFINE_bool('plot', False, 'If true, plot the loop response.')
class CIM(control_loop.ControlLoop):
def __init__(self):
@@ -142,9 +148,9 @@
[0.0, (1.0 / (12.0 ** 2.0))]])
self.K = controls.dlqr(self.A, self.B, self.Q, self.R)
- print "DT K", name
- print self.K
- print numpy.linalg.eig(self.A - self.B * self.K)[0]
+ glog.debug('DT K %s', name)
+ glog.debug(str(self.K))
+ glog.debug(str(numpy.linalg.eig(self.A - self.B * self.K)[0]))
self.hlp = 0.3
self.llp = 0.4
@@ -215,14 +221,7 @@
def main(argv):
- parser = argparse.ArgumentParser(description='Calculate drivetrain.')
- parser.add_argument('--plot', action='store_true', default=False, help='If true, plot')
- parser.add_argument('drivetrainh')
- parser.add_argument('drivetraincc')
- parser.add_argument('kalman_drivetrainh')
- parser.add_argument('kalman_drivetraincc')
-
- args = parser.parse_args(argv[1:])
+ argv = FLAGS(argv)
# Simulate the response of the system to a step input.
drivetrain = Drivetrain()
@@ -233,7 +232,7 @@
simulated_left.append(drivetrain.X[0, 0])
simulated_right.append(drivetrain.X[2, 0])
- if args.plot:
+ if FLAGS.plot:
pylab.plot(range(100), simulated_left)
pylab.plot(range(100), simulated_right)
pylab.show()
@@ -251,7 +250,7 @@
close_loop_left.append(drivetrain.X[0, 0])
close_loop_right.append(drivetrain.X[2, 0])
- if args.plot:
+ if FLAGS.plot:
pylab.plot(range(100), close_loop_left)
pylab.plot(range(100), close_loop_right)
pylab.show()
@@ -269,7 +268,7 @@
close_loop_left.append(drivetrain.X[0, 0])
close_loop_right.append(drivetrain.X[2, 0])
- if args.plot:
+ if FLAGS.plot:
pylab.plot(range(100), close_loop_left)
pylab.plot(range(100), close_loop_right)
pylab.show()
@@ -287,7 +286,7 @@
close_loop_left.append(drivetrain.X[0, 0])
close_loop_right.append(drivetrain.X[2, 0])
- if args.plot:
+ if FLAGS.plot:
pylab.plot(range(100), close_loop_left)
pylab.plot(range(100), close_loop_right)
pylab.show()
@@ -344,13 +343,13 @@
dog_loop_writer.AddConstant(control_loop.Constant("kT", "%f",
drivetrain_low_low.Kt))
- dog_loop_writer.Write(args.drivetrainh, args.drivetraincc)
+ dog_loop_writer.Write(argv[1], argv[2])
kf_loop_writer = control_loop.ControlLoopWriter(
"KFDrivetrain", [kf_drivetrain_low_low, kf_drivetrain_low_high,
- kf_drivetrain_high_low, kf_drivetrain_high_high],
+ kf_drivetrain_high_low, kf_drivetrain_high_high],
namespaces = namespaces)
- kf_loop_writer.Write(args.kalman_drivetrainh, args.kalman_drivetraincc)
+ kf_loop_writer.Write(argv[3], argv[4])
if __name__ == '__main__':
sys.exit(main(sys.argv))