Add interpolation table to y2017 constants
The next patch will make use of this for determining the actual hood
and turret angles.
Change-Id: I9f956306b5795652148cdfbbe588c598d9c72a43
diff --git a/y2017/BUILD b/y2017/BUILD
index a6a0f0b..11b965e 100644
--- a/y2017/BUILD
+++ b/y2017/BUILD
@@ -15,6 +15,7 @@
'//aos/common:mutex',
'//aos/common:once',
'//frc971:constants',
+ '//frc971/shooter_interpolation:interpolation',
'//y2017/control_loops/drivetrain:polydrivetrain_plants',
'//y2017/control_loops/superstructure/column:column_plants',
'//y2017/control_loops/superstructure/hood:hood_plants',
diff --git a/y2017/constants.cc b/y2017/constants.cc
index 536a072..d0e5c6f 100644
--- a/y2017/constants.cc
+++ b/y2017/constants.cc
@@ -64,6 +64,7 @@
Values::Intake *const intake = &r->intake;
Values::Hood *const hood = &r->hood;
Values::Column *const column = &r->column;
+ auto shot_interpolation_table = &r->shot_interpolation_table;
r->drivetrain_max_speed = 5;
@@ -85,6 +86,15 @@
hood->zeroing.index_difference = Values::kHoodEncoderIndexDifference;
hood->zeroing.known_index_pulse = 0;
+ // TODO(phil): Should these be different per robot?
+ *shot_interpolation_table =
+ ::frc971::shooter_interpolation::InterpolationTable(
+ {// { distance_to_target, { shot_angle, shot_power }},
+ {100.1, {20.0 * M_PI / 180.0, 335.0}},
+ {150.2, {35.0 * M_PI / 180.0, 384.0}},
+ {200.3, {40.0 * M_PI / 180.0, 417.0}},
+ });
+
switch (team) {
// A set of constants for tests.
case 1:
diff --git a/y2017/constants.h b/y2017/constants.h
index 1d6eede..c6aa70c 100644
--- a/y2017/constants.h
+++ b/y2017/constants.h
@@ -5,6 +5,7 @@
#include <math.h>
#include "frc971/constants.h"
+#include "frc971/shooter_interpolation/interpolation.h"
#include "y2017/control_loops/drivetrain/drivetrain_dog_motor_plant.h"
#include "y2017/control_loops/superstructure/column/column_plant.h"
@@ -125,6 +126,8 @@
const char *vision_name;
double vision_error;
+
+ ::frc971::shooter_interpolation::InterpolationTable shot_interpolation_table;
};
// Creates (once) a Values instance for ::aos::network::GetTeamNumber() and