Calibrated camera offset.
Change-Id: I10113c9b80695c0b2407cd1df6fd3fe40d6390ca
diff --git a/y2017/constants.cc b/y2017/constants.cc
index 5ddb464..536a072 100644
--- a/y2017/constants.cc
+++ b/y2017/constants.cc
@@ -104,6 +104,7 @@
r->down_error = 0;
r->vision_name = "test";
+ r->vision_error = 0.0;
break;
case kCompTeamNumber:
@@ -120,6 +121,7 @@
r->down_error = 0;
r->vision_name = "competition";
+ r->vision_error = 0.015;
break;
case kPracticeTeamNumber:
@@ -136,9 +138,9 @@
r->down_error = 0;
r->vision_name = "practice";
+ r->vision_error = 0.0;
break;
-
default:
LOG(FATAL, "unknown team #%" PRIu16 "\n", team);
}
diff --git a/y2017/constants.h b/y2017/constants.h
index 829af88..1d6eede 100644
--- a/y2017/constants.h
+++ b/y2017/constants.h
@@ -123,6 +123,8 @@
double down_error;
const char *vision_name;
+
+ double vision_error;
};
// Creates (once) a Values instance for ::aos::network::GetTeamNumber() and
diff --git a/y2017/control_loops/superstructure/column/column.cc b/y2017/control_loops/superstructure/column/column.cc
index e57a646..e248739 100644
--- a/y2017/control_loops/superstructure/column/column.cc
+++ b/y2017/control_loops/superstructure/column/column.cc
@@ -375,7 +375,8 @@
new ::frc971::control_loops::SimpleCappedStateFeedbackLoop<
6, 2, 2>(MakeIntegralColumnLoop())),
constants::GetValues().column, constants::Values::kTurretRange, 7.0,
- 50.0) {}
+ 50.0),
+ vision_error_(constants::GetValues().vision_error) {}
void Column::Reset() {
state_ = State::UNINITIALIZED;
@@ -531,7 +532,7 @@
if (vision_time_adjuster_.valid()) {
LOG(INFO, "Vision aligning to %f\n", vision_time_adjuster_.goal());
profiled_subsystem_.set_turret_unprofiled_goal(
- vision_time_adjuster_.goal());
+ vision_time_adjuster_.goal() + vision_error_);
}
}
diff --git a/y2017/control_loops/superstructure/column/column.h b/y2017/control_loops/superstructure/column/column.h
index b952a78..092e253 100644
--- a/y2017/control_loops/superstructure/column/column.h
+++ b/y2017/control_loops/superstructure/column/column.h
@@ -222,6 +222,8 @@
::aos::monotonic_clock::min_time;
ColumnProfiledSubsystem profiled_subsystem_;
+
+ const double vision_error_;
};
} // namespace column