Upgraded //y2015_bot3 to use the common drive code.

This is a fixup from changing the call signature of DoCoerceGoal

Change-Id: I3b96da7107a524ca0e6cd66c9de3ae3443124253
diff --git a/y2015_bot3/autonomous/auto.cc b/y2015_bot3/autonomous/auto.cc
index 71a0efc..0eaf921 100644
--- a/y2015_bot3/autonomous/auto.cc
+++ b/y2015_bot3/autonomous/auto.cc
@@ -10,16 +10,16 @@
 
 #include "y2015_bot3/autonomous/auto.q.h"
 #include "y2015_bot3/actors/drivetrain_actor.h"
-#include "y2015_bot3/control_loops/drivetrain/drivetrain.q.h"
-#include "y2015_bot3/control_loops/drivetrain/drivetrain.h"
+#include "frc971/control_loops/drivetrain/drivetrain.q.h"
+#include "frc971/control_loops/drivetrain/drivetrain.h"
 #include "y2015_bot3/control_loops/elevator/elevator.q.h"
 #include "y2015_bot3/control_loops/intake/intake.q.h"
+#include "y2015_bot3/control_loops/drivetrain/drivetrain_base.h"
 
 using ::aos::time::Time;
-using ::y2015_bot3::control_loops::drivetrain_queue;
+using ::frc971::control_loops::drivetrain_queue;
 using ::y2015_bot3::control_loops::intake_queue;
 using ::y2015_bot3::control_loops::elevator_queue;
-using ::y2015_bot3::control_loops::kDrivetrainTurnWidth;
 
 namespace y2015_bot3 {
 namespace autonomous {
@@ -53,7 +53,7 @@
 
 void ResetDrivetrain() {
   LOG(INFO, "resetting the drivetrain\n");
-  control_loops::drivetrain_queue.goal.MakeWithBuilder()
+  drivetrain_queue.goal.MakeWithBuilder()
       .control_loop_driving(false)
       .steering(0.0)
       .throttle(0.0)
@@ -65,11 +65,9 @@
 }
 
 void InitializeEncoders() {
-  control_loops::drivetrain_queue.status.FetchAnother();
-  left_initial_position =
-      control_loops::drivetrain_queue.status->estimated_left_position;
-  right_initial_position =
-      control_loops::drivetrain_queue.status->estimated_right_position;
+  drivetrain_queue.status.FetchAnother();
+  left_initial_position = drivetrain_queue.status->estimated_left_position;
+  right_initial_position = drivetrain_queue.status->estimated_right_position;
 }
 
 ::std::unique_ptr< ::frc971::actors::DrivetrainAction> SetDriveGoal(
@@ -89,8 +87,10 @@
   auto drivetrain_action = actors::MakeDrivetrainAction(params);
 
   drivetrain_action->Start();
-  left_initial_position += distance - theta * kDrivetrainTurnWidth / 2.0;
-  right_initial_position += distance + theta * kDrivetrainTurnWidth / 2.0;
+  left_initial_position +=
+      distance - theta * control_loops::drivetrain::kDrivetrainTurnWidth / 2.0;
+  right_initial_position +=
+      distance + theta * control_loops::drivetrain::kDrivetrainTurnWidth / 2.0;
   return ::std::move(drivetrain_action);
 }
 void WaitUntilDoneOrCanceled(
@@ -111,13 +111,13 @@
 void WaitUntilNear(double distance) {
   while (true) {
     if (ShouldExitAuto()) return;
-    control_loops::drivetrain_queue.status.FetchAnother();
-    double left_error = ::std::abs(
-        left_initial_position -
-        control_loops::drivetrain_queue.status->estimated_left_position);
-    double right_error = ::std::abs(
-        right_initial_position -
-        control_loops::drivetrain_queue.status->estimated_right_position);
+    drivetrain_queue.status.FetchAnother();
+    double left_error =
+        ::std::abs(left_initial_position -
+                   drivetrain_queue.status->estimated_left_position);
+    double right_error =
+        ::std::abs(right_initial_position -
+                   drivetrain_queue.status->estimated_right_position);
     const double kPositionThreshold = 0.05 + distance;
     if (right_error < kPositionThreshold && left_error < kPositionThreshold) {
       LOG(INFO, "At the goal\n");
@@ -183,7 +183,7 @@
   //const double kMoveBackDistance = 0.0;
 
   // Drive backwards, and pulse the can grabbers again to tip the cans.
-  control_loops::drivetrain_queue.goal.MakeWithBuilder()
+  drivetrain_queue.goal.MakeWithBuilder()
       .control_loop_driving(true)
       .steering(0.0)
       .throttle(0.0)