commit | d85c66e12cae1c5b0738b841896cb0a45fb273ad | [log] [tgz] |
---|---|---|
author | Austin Schuh <austin.linux@gmail.com> | Sun Apr 16 10:50:33 2017 -0700 |
committer | Austin Schuh <austin.linux@gmail.com> | Sun May 28 17:02:03 2017 -0700 |
tree | df17c14d049c69a915630334aba5cfac24861b41 | |
parent | c102622eb2003cd92dc170006aa791c664ec2bca [diff] |
Reset the vision averagers and trackers on button release. Change-Id: If07ea4fdc9ab26752e6d7664998a69ddc84643b1
diff --git a/y2017/control_loops/superstructure/column/column.cc b/y2017/control_loops/superstructure/column/column.cc index cbc76ab..9ee07b5 100644 --- a/y2017/control_loops/superstructure/column/column.cc +++ b/y2017/control_loops/superstructure/column/column.cc
@@ -536,6 +536,8 @@ profiled_subsystem_.set_turret_unprofiled_goal( vision_time_adjuster_.goal() + vision_error_); } + } else { + vision_time_adjuster_.ResetTime(); } if (freeze_) {
diff --git a/y2017/control_loops/superstructure/superstructure.cc b/y2017/control_loops/superstructure/superstructure.cc index 1faed36..95c771b 100644 --- a/y2017/control_loops/superstructure/superstructure.cc +++ b/y2017/control_loops/superstructure/superstructure.cc
@@ -51,6 +51,10 @@ shooter_goal = unsafe_goal->shooter; indexer_goal = unsafe_goal->indexer; + if (!unsafe_goal->use_vision_for_shots) { + distance_average_.Reset(); + } + distance_average_.Tick(::aos::monotonic_clock::now(), vision_status); status->vision_distance = distance_average_.Get(); if (distance_average_.Valid()) {
diff --git a/y2017/control_loops/superstructure/vision_distance_average.h b/y2017/control_loops/superstructure/vision_distance_average.h index fbe2f00..7cd1ee1 100644 --- a/y2017/control_loops/superstructure/vision_distance_average.h +++ b/y2017/control_loops/superstructure/vision_distance_average.h
@@ -36,6 +36,9 @@ // Valid gives a sense of how recent the data is. bool Valid() { return data_.size() > 4; } + // Clears all the saved samples. + void Reset() { data_.Reset(); } + private: double ComputeValue() { double result = 0.0;
diff --git a/y2017/control_loops/superstructure/vision_time_adjuster.h b/y2017/control_loops/superstructure/vision_time_adjuster.h index a7b79f3..46c7f89 100644 --- a/y2017/control_loops/superstructure/vision_time_adjuster.h +++ b/y2017/control_loops/superstructure/vision_time_adjuster.h
@@ -43,6 +43,10 @@ double right; }; + void ResetTime() { + most_recent_vision_time_ = ::aos::monotonic_clock::min_time; + } + private: // Buffer space to store the most recent drivetrain and turret messages from // the last second.