1#ifndef __TEST_CONFIG_HPP
2#define __TEST_CONFIG_HPP
9namespace gimbal_params {
11 constexpr int16_t YAW_ECD_CENTER = 5750;
12 constexpr int16_t PITCH_ECD_CENTER = 4800;
13 constexpr float LOADER_GEAR_RATIO = 36;
16 constexpr float PITCH_MIN_ANGLE = -0.14;
17 constexpr float PITCH_MAX_ANGLE = 0.35;
18 static_assert(PITCH_MAX_ANGLE >= PITCH_MIN_ANGLE);
22 constexpr float IMU_ORIENTATION[3][3] = {
29 constexpr float KP_GIMBAL_YAW_ANGLE = 76;
30 constexpr float KI_GIMBAL_YAW_ANGLE = 0;
31 constexpr float KD_GIMBAL_YAW_ANGLE = 0.3;
32 constexpr float BETA_GIMBAL_YAW_ANGLE = 1;
33 constexpr float YETA_GIMBAL_YAW_ANGLE = 0;
34 constexpr float MIN_OUT_GIMBAL_YAW_ANGLE = -800;
35 constexpr float MAX_OUT_GIMBAL_YAW_ANGLE = 800;
36 static_assert(MAX_OUT_GIMBAL_YAW_ANGLE >= MIN_OUT_GIMBAL_YAW_ANGLE);
38 constexpr float KP_GIMBAL_YAW_SPEED = 240;
39 constexpr float KI_GIMBAL_YAW_SPEED = 10;
40 constexpr float KD_GIMBAL_YAW_SPEED = 0.1;
41 constexpr float BETA_GIMBAL_YAW_SPEED = 1;
42 constexpr float YETA_GIMBAL_YAW_SPEED = 1;
43 constexpr float MIN_OUT_GIMBAL_YAW_SPEED = -20000;
44 constexpr float MAX_OUT_GIMBAL_YAW_SPEED = 20000;
45 static_assert(MAX_OUT_GIMBAL_YAW_SPEED >= MIN_OUT_GIMBAL_YAW_SPEED);
48 constexpr float KP_GIMBAL_PITCH_ANGLE = 220;
49 constexpr float KI_GIMBAL_PITCH_ANGLE = 12;
50 constexpr float KD_GIMBAL_PITCH_ANGLE = 2;
51 constexpr float BETA_GIMBAL_PITCH_ANGLE = 1;
52 constexpr float YETA_GIMBAL_PITCH_ANGLE = 0;
53 constexpr float MIN_OUT_GIMBAL_PITCH_ANGLE = -1000;
54 constexpr float MAX_OUT_GIMBAL_PITCH_ANGLE = 1000;
55 static_assert(MAX_OUT_GIMBAL_PITCH_ANGLE >= MIN_OUT_GIMBAL_PITCH_ANGLE);
57 constexpr float KP_GIMBAL_PITCH_SPEED = 80;
58 constexpr float KI_GIMBAL_PITCH_SPEED = 10;
59 constexpr float KD_GIMBAL_PITCH_SPEED = 0.05;
60 constexpr float BETA_GIMBAL_PITCH_SPEED = 1;
61 constexpr float YETA_GIMBAL_PITCH_SPEED = 0;
62 constexpr float MIN_OUT_GIMBAL_PITCH_SPEED = -20000;
63 constexpr float MAX_OUT_GIMBAL_PITCH_SPEED = 20000;
64 static_assert(MAX_OUT_GIMBAL_PITCH_SPEED >= MIN_OUT_GIMBAL_PITCH_SPEED);
66 constexpr float EXIT_CALIBRATION_YAW_ANGLE_DELTA = 2.0;
67 static_assert(EXIT_CALIBRATION_YAW_ANGLE_DELTA >= 0);
70namespace shoot_params {
72 constexpr float LOADER_ACTIVE_RPM = 75;
73 constexpr float FLYWHEEL_ACTIVE_TARGET_RPM = 7000;
74 constexpr float MAX_FLYWHEEL_ACCEL = 70000;
75 static_assert(MAX_FLYWHEEL_ACCEL >= 0);
78 constexpr float KP_LOADER_SPEED = 12;
79 constexpr float KI_LOADER_SPEED = 0;
80 constexpr float KD_LOADER_SPEED = 0;
81 constexpr float BETA_LOADER_SPEED = 1;
82 constexpr float YETA_LOADER_SPEED = 0;
83 constexpr float MIN_OUT_LOADER_SPEED = -5000;
84 constexpr float MAX_OUT_LOADER_SPEED = 5000;
85 static_assert(MAX_OUT_LOADER_SPEED >= MIN_OUT_LOADER_SPEED);
88 constexpr float KP_FLYWHEEL_SPEED = 27;
89 constexpr float KI_FLYWHEEL_SPEED = 5;
90 constexpr float KD_FLYWHEEL_SPEED = 0;
91 constexpr float BETA_FLYWHEEL_SPEED = 1;
92 constexpr float YETA_FLYWHEEL_SPEED = 0;
93 constexpr float MIN_OUT_FLYWHEEL_SPEED = -5000;
94 constexpr float MAX_OUT_FLYWHEEL_SPEED = 5000;
95 static_assert(MAX_OUT_FLYWHEEL_SPEED >= MIN_OUT_FLYWHEEL_SPEED);
98 constexpr float JAM_STALL_DURATION_THRESHOLD = 0.5;
99 constexpr int16_t JAM_LOADER_RPM_THRESHOLD = 5;
100 constexpr float JAM_LOADER_CURRENT_RELATIVE_DIFF_THRESHOLD = 0.05;
101 constexpr float JAM_NO_STALL_DURATION_THRESHOLD = 0.5;
102 static_assert(JAM_STALL_DURATION_THRESHOLD >= 0);
103 static_assert(JAM_LOADER_RPM_THRESHOLD >= 0);
104 static_assert(JAM_LOADER_CURRENT_RELATIVE_DIFF_THRESHOLD >= 0);
105 static_assert(JAM_NO_STALL_DURATION_THRESHOLD >= 0);
108namespace chassis_params {
110 constexpr float MAX_TRANSLATION = 8;
111 constexpr float MAX_ROTATION = 5;
112 constexpr float GYRO_SPEED = 5;
113 static_assert(MAX_TRANSLATION >= 0);
114 static_assert(MAX_ROTATION >= 0);
115 static_assert(MAX_ROTATION >= GYRO_SPEED);
118 constexpr float KP_DRIVE_WHEEL = 5;
119 constexpr float KI_DRIVE_WHEEL = 0;
120 constexpr float KD_DRIVE_WHEEL = 0;
121 constexpr float BETA_DRIVE_WHEEL = 1;
122 constexpr float YETA_DRIVE_WHEEL = 0;
123 constexpr float MIN_OUT_DRIVE_WHEEL = -5000;
124 constexpr float MAX_OUT_DRIVE_WHEEL = 5000;
125 static_assert(MAX_OUT_DRIVE_WHEEL >= MIN_OUT_DRIVE_WHEEL);
128 constexpr float WHEEL_RAMP_MAX_ACCEL = 400;
129 static_assert(WHEEL_RAMP_MAX_ACCEL >= 0);
132 constexpr float KP_CHASSIS_SPIN = 1;
133 constexpr float KI_CHASSIS_SPIN = 0;
134 constexpr float KD_CHASSIS_SPIN = 0;
135 constexpr float BETA_CHASSIS_SPIN = 1;
136 constexpr float YETA_CHASSIS_SPIN = 0;
137 constexpr float MIN_OUT_CHASSIS_SPIN = -2;
138 constexpr float MAX_OUT_CHASSIS_SPIN = 2;
139 static_assert(MAX_OUT_DRIVE_WHEEL >= MIN_OUT_DRIVE_WHEEL);