Make a mutual drivetrain between robots.

Change-Id: I23cc9634d9af5d0482dc5a5501dccc064b7b53d3
diff --git a/y2014/control_loops/drivetrain/drivetrain_base.cc b/y2014/control_loops/drivetrain/drivetrain_base.cc
new file mode 100644
index 0000000..b4ef447
--- /dev/null
+++ b/y2014/control_loops/drivetrain/drivetrain_base.cc
@@ -0,0 +1,36 @@
+#include "y2014/control_loops/drivetrain/drivetrain_base.h"
+
+#include "frc971/control_loops/drivetrain/drivetrain_config.h"
+
+#include "y2014/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
+#include "y2014/control_loops/drivetrain/polydrivetrain_dog_motor_plant.h"
+#include "y2014/control_loops/drivetrain/kalman_drivetrain_motor_plant.h"
+#include "y2014/constants.h"
+
+using ::frc971::control_loops::drivetrain::DrivetrainConfig;
+
+namespace y2014 {
+namespace control_loops {
+
+const DrivetrainConfig &GetDrivetrainConfig() {
+  static DrivetrainConfig kDrivetrainConfig{
+      ::frc971::control_loops::drivetrain::ShifterType::HALL_EFFECT_SHIFTER,
+
+      ::y2014::control_loops::drivetrain::MakeDrivetrainLoop,
+      ::y2014::control_loops::drivetrain::MakeVelocityDrivetrainLoop,
+      ::y2014::control_loops::drivetrain::MakeKFDrivetrainLoop,
+
+      drivetrain::kDt, drivetrain::kStallTorque, drivetrain::kStallCurrent,
+      drivetrain::kFreeSpeedRPM, drivetrain::kFreeCurrent, drivetrain::kJ,
+      drivetrain::kMass, drivetrain::kRobotRadius, drivetrain::kWheelRadius,
+      drivetrain::kR, drivetrain::kV, drivetrain::kT,
+
+      constants::GetValues().turn_width, constants::GetValues().high_gear_ratio,
+      constants::GetValues().low_gear_ratio,
+      constants::GetValues().left_drive, constants::GetValues().right_drive};
+
+  return kDrivetrainConfig;
+};
+
+}  // namespace control_loops
+}  // namespace y2014