Fixed the reset for min max edge value. Not compiled as the build is broken.
diff --git a/aos/common/control_loop/ControlLoop-tmpl.h b/aos/common/control_loop/ControlLoop-tmpl.h
index 032d5fc..22712f0 100644
--- a/aos/common/control_loop/ControlLoop-tmpl.h
+++ b/aos/common/control_loop/ControlLoop-tmpl.h
@@ -72,7 +72,7 @@
     if (control_loop_->position.FetchLatest()) {
       position = control_loop_->position.get();
     } else {
-      if (control_loop_->position.get()) {
+      if (control_loop_->position.get() && !reset_) {
         int msec_age = control_loop_->position.Age().ToMSec();
         if (!control_loop_->position.IsNewerThanMS(kPositionTimeoutMs)) {
           LOG_INTERVAL(very_stale_position_);
@@ -126,7 +126,7 @@
     output.Send();
   } else {
     // The outputs are disabled, so pass NULL in for the output.
-    RunIteration(goal, position, NULL, status.get());
+    RunIteration(goal, position, nullptr, status.get());
     ZeroOutputs();
   }
 
diff --git a/aos/common/control_loop/ControlLoop.h b/aos/common/control_loop/ControlLoop.h
index 9dde589..f1109e6 100644
--- a/aos/common/control_loop/ControlLoop.h
+++ b/aos/common/control_loop/ControlLoop.h
@@ -84,7 +84,9 @@
   void ZeroOutputs();
 
   // Returns true if the device reading the sensors reset and potentially lost
-  // track of encoder counts.  Calling this read method clears the flag.
+  // track of encoder counts.  Calling this read method clears the flag.  After
+  // a reset, RunIteration will not be called until there is a valid position
+  // message.
   bool reset() {
     bool ans = reset_;
     reset_ = false;