Added superstructure and intake classes.
Created the superstucture, intake, and intake controller class,
had to alter some of the intake python and superstructure queue to fit.
Change-Id: Ieabcf288f6dd50c282a3bcb61ec13062f735872b
diff --git a/y2018/constants.cc b/y2018/constants.cc
index 42872b9..5326d68 100644
--- a/y2018/constants.cc
+++ b/y2018/constants.cc
@@ -31,40 +31,91 @@
const Values *DoGetValuesForTeam(uint16_t team) {
Values *const r = new Values();
- Values::Intake *const intake = &r->intake;
+ Values::IntakeSide *const left_intake = &r->left_intake;
+ Values::IntakeSide *const right_intake = &r->right_intake;
Values::Proximal *const proximal = &r->proximal;
Values::Distal *const distal = &r->distal;
+ left_intake->zeroing.average_filter_size = Values::kZeroingSampleSize();
+ left_intake->zeroing.one_revolution_distance =
+ M_PI * 2.0 * constants::Values::kIntakeMotorEncoderRatio();
+ left_intake->zeroing.zeroing_threshold = 0.0005;
+ left_intake->zeroing.moving_buffer_size = 20;
+ left_intake->zeroing.allowable_encoder_error = 1.9;
+
+ *right_intake = *left_intake;
+
+ proximal->zeroing.average_filter_size = Values::kZeroingSampleSize();
+ proximal->zeroing.one_revolution_distance =
+ M_PI * 2.0 * constants::Values::kProximalEncoderRatio();
+ proximal->zeroing.zeroing_threshold = 0.0005;
+ proximal->zeroing.moving_buffer_size = 20;
+ proximal->zeroing.allowable_encoder_error = 0.9;
+
+ distal->zeroing.average_filter_size = Values::kZeroingSampleSize();
+ distal->zeroing.one_revolution_distance =
+ M_PI * 2.0 * constants::Values::kDistalEncoderRatio();
+ distal->zeroing.zeroing_threshold = 0.0005;
+ distal->zeroing.moving_buffer_size = 20;
+ distal->zeroing.allowable_encoder_error = 0.9;
+
switch (team) {
// A set of constants for tests.
case 1:
- r->down_error = 0;
r->vision_name = "test";
r->vision_error = -0.030;
- intake->left_pot_offset = 0;
- intake->right_pot_offset = 0;
- proximal->pot_offset = 0;
- distal->pot_offset = 0;
+
+ left_intake->zeroing.measured_absolute_position = 0.0;
+ left_intake->potentiometer_offset = 0.0;
+ left_intake->spring_offset = 0.0;
+
+ right_intake->zeroing.measured_absolute_position = 0.0;
+ right_intake->potentiometer_offset = 0.0;
+ right_intake->spring_offset = 0.0;
+
+ proximal->zeroing.measured_absolute_position = 0.0;
+ proximal->potentiometer_offset = 0.0;
+
+ distal->zeroing.measured_absolute_position = 0.0;
+ distal->potentiometer_offset = 0.0;
break;
case kCompTeamNumber:
- r->down_error = 0;
r->vision_name = "competition";
r->vision_error = 0.0;
- intake->left_pot_offset = 0;
- intake->right_pot_offset = 0;
- proximal->pot_offset = 0;
- distal->pot_offset = 0;
+
+ left_intake->zeroing.measured_absolute_position = 0.0;
+ left_intake->potentiometer_offset = 0.0;
+ left_intake->spring_offset = 0.0;
+
+ right_intake->zeroing.measured_absolute_position = 0.0;
+ right_intake->potentiometer_offset = 0.0;
+ right_intake->spring_offset = 0.0;
+
+ proximal->zeroing.measured_absolute_position = 0.0;
+ proximal->potentiometer_offset = 0.0;
+
+ distal->zeroing.measured_absolute_position = 0.0;
+ distal->potentiometer_offset = 0.0;
break;
case kPracticeTeamNumber:
- r->down_error = 0;
r->vision_name = "practice";
r->vision_error = 0.0;
- intake->left_pot_offset = 0;
- intake->right_pot_offset = 0;
- proximal->pot_offset = 0;
- distal->pot_offset = 0;
+
+ left_intake->zeroing.measured_absolute_position = 0.0;
+ left_intake->potentiometer_offset = 0.0;
+ left_intake->spring_offset = 0.0;
+
+ right_intake->zeroing.measured_absolute_position = 0.0;
+ right_intake->potentiometer_offset = 0.0;
+ right_intake->spring_offset = 0.0;
+
+ proximal->zeroing.measured_absolute_position = 0.0;
+ proximal->potentiometer_offset = 0.0;
+
+ distal->zeroing.measured_absolute_position = 0.0;
+ distal->potentiometer_offset = 0.0;
break;
default: