Upgraded the rest of Time.

Change-Id: I0ee083837e51d8f74a798b7ba14a3b6bb3859f35
diff --git a/y2015/actors/pickup_actor.cc b/y2015/actors/pickup_actor.cc
index 3aa0c18..0aa1c58 100644
--- a/y2015/actors/pickup_actor.cc
+++ b/y2015/actors/pickup_actor.cc
@@ -1,11 +1,12 @@
 #include "y2015/actors/pickup_actor.h"
 
+#include <chrono>
 #include <cmath>
 
-#include "aos/common/logging/logging.h"
 #include "aos/common/controls/control_loop.h"
-#include "aos/common/util/phased_loop.h"
+#include "aos/common/logging/logging.h"
 #include "aos/common/time.h"
+#include "aos/common/util/phased_loop.h"
 #include "y2015/control_loops/claw/claw.q.h"
 
 namespace y2015 {
@@ -19,6 +20,8 @@
 constexpr double kClawMoveUpAcceleration = 25.0;
 }  // namespace
 
+namespace chrono = ::std::chrono;
+using ::aos::monotonic_clock;
 using ::y2015::control_loops::claw_queue;
 
 PickupActor::PickupActor(PickupActionQueueGroup* queues)
@@ -91,13 +94,14 @@
   }
 
   // Pull in for params.intake_time.
-  ::aos::time::Time end_time =
-      ::aos::time::Time::Now() + aos::time::Time::InSeconds(params.intake_time);
-  while ( ::aos::time::Time::Now() <= end_time) {
-    ::aos::time::PhasedLoopXMS(
-        ::std::chrono::duration_cast<::std::chrono::milliseconds>(
-            ::aos::controls::kLoopFrequency).count(),
-        2500);
+  monotonic_clock::time_point end_time =
+      monotonic_clock::now() +
+      chrono::duration_cast<chrono::nanoseconds>(
+          chrono::duration<double>(params.intake_time));
+  ::aos::time::PhasedLoop phased_loop(::aos::controls::kLoopFrequency,
+                                      ::std::chrono::milliseconds(5) / 2);
+  while (monotonic_clock::now() <= end_time) {
+    phased_loop.SleepUntilNext();
     if (ShouldCancel()) return true;
   }