Fold y2019 localizer into drivetrain
Change-Id: Icc192ae9f910741b54f114ec9a27559cc289b29b
diff --git a/y2019/constants.cc b/y2019/constants.cc
index d77d2c7..7baac55 100644
--- a/y2019/constants.cc
+++ b/y2019/constants.cc
@@ -23,6 +23,7 @@
using ::frc971::zeroing::PotAndAbsoluteEncoderZeroingEstimator;
const int Values::kZeroingSampleSize;
+constexpr size_t Values::kNumCameras;
namespace {
@@ -122,6 +123,12 @@
stilts_params->zeroing_constants.moving_buffer_size = 20;
stilts_params->zeroing_constants.allowable_encoder_error = 0.9;
+ r->camera_noise_parameters = {.max_viewable_distance = 10.0,
+ .heading_noise = 0.02,
+ .nominal_distance_noise = 0.06,
+ .nominal_skew_noise = 0.1,
+ .nominal_height_noise = 0.01};
+
switch (team) {
// A set of constants for tests.
case 1:
@@ -135,6 +142,17 @@
stilts_params->zeroing_constants.measured_absolute_position = 0.0;
stilts->potentiometer_offset = 0.0;
+
+ // Deliberately make FOV a bit large so that we are overly conservative in
+ // our EKF.
+ for (auto &camera : r->cameras) {
+ camera.fov = M_PI_2 * 1.1;
+ }
+ r->cameras[0].pose.set_theta(M_PI);
+ r->cameras[1].pose.set_theta(0.26);
+ r->cameras[2].pose.set_theta(-0.26);
+ r->cameras[3].pose.set_theta(M_PI_2);
+ r->cameras[4].pose.set_theta(-M_PI_2);
break;
case kCompTeamNumber: