Merge "Handle a node not having a start time"
diff --git a/y2020/control_loops/drivetrain/localizer_test.cc b/y2020/control_loops/drivetrain/localizer_test.cc
index 3798c34..d440aaf 100644
--- a/y2020/control_loops/drivetrain/localizer_test.cc
+++ b/y2020/control_loops/drivetrain/localizer_test.cc
@@ -436,7 +436,7 @@
   VerifyNearGoal();
   // Due to accelerometer drift, the straight-line driving tends to be less
   // accurate...
-  EXPECT_TRUE(VerifyEstimatorAccurate(0.1));
+  EXPECT_TRUE(VerifyEstimatorAccurate(0.15));
 }
 
 // Tests that camera updates with a perfect models results in no errors.
@@ -537,7 +537,7 @@
   // If we remove the disturbance, we should now be correct.
   drivetrain_plant_.mutable_state()->topRows(3) -= disturbance;
   VerifyNearGoal(5e-3);
-  EXPECT_TRUE(VerifyEstimatorAccurate(1e-3));
+  EXPECT_TRUE(VerifyEstimatorAccurate(2e-3));
 }
 
 // Tests that we don't reject camera measurements when the turret is spinning
diff --git a/y2020/control_loops/python/drivetrain.py b/y2020/control_loops/python/drivetrain.py
index 72be909..84bbb66 100644
--- a/y2020/control_loops/python/drivetrain.py
+++ b/y2020/control_loops/python/drivetrain.py
@@ -14,18 +14,18 @@
 
 kDrivetrain = drivetrain.DrivetrainParams(
     J=6.0,
-    mass=68.0,
+    mass=58.0,
     # TODO(austin): Measure radius a bit better.
     robot_radius=0.7 / 2.0,
     wheel_radius=6.0 * 0.0254 / 2.0,
     motor_type=control_loop.Falcon(),
     G=(8.0 / 70.0) * (17.0 / 24.0),
-    q_pos=0.14,
-    q_vel=1.30,
+    q_pos=0.24,
+    q_vel=2.5,
     efficiency=0.80,
     has_imu=True,
     force=True,
-    kf_q_voltage=13.0,
+    kf_q_voltage=1.0,
     controller_poles=[0.82, 0.82])