1#ifndef __HERO_CONFIG_HPP
2#define __HERO_CONFIG_HPP
6namespace gimbal_params {
8 constexpr int16_t YAW_ECD_CENTER = 3100;
9 constexpr int16_t PITCH_ECD_CENTER = 6800;
10 constexpr float LOADER_GEAR_RATIO = 3591 / 187;
13 constexpr float PITCH_MIN_ANGLE = -0.20;
14 constexpr float PITCH_MAX_ANGLE = 0.1;
15 static_assert(PITCH_MAX_ANGLE >= PITCH_MIN_ANGLE);
19 constexpr float IMU_ORIENTATION[3][3] = {
26 constexpr float KP_GIMBAL_YAW_ANGLE = 250;
27 constexpr float KI_GIMBAL_YAW_ANGLE = 60;
28 constexpr float KD_GIMBAL_YAW_ANGLE = 0;
29 constexpr float BETA_GIMBAL_YAW_ANGLE = 1;
30 constexpr float YETA_GIMBAL_YAW_ANGLE = 0;
31 constexpr float MIN_OUT_GIMBAL_YAW_ANGLE = -800;
32 constexpr float MAX_OUT_GIMBAL_YAW_ANGLE = 800;
33 static_assert(MAX_OUT_GIMBAL_YAW_ANGLE >= MIN_OUT_GIMBAL_YAW_ANGLE);
35 constexpr float KP_GIMBAL_YAW_SPEED = 200;
36 constexpr float KI_GIMBAL_YAW_SPEED = 60;
37 constexpr float KD_GIMBAL_YAW_SPEED = 0;
38 constexpr float BETA_GIMBAL_YAW_SPEED = 1;
39 constexpr float YETA_GIMBAL_YAW_SPEED = 1;
40 constexpr float MIN_OUT_GIMBAL_YAW_SPEED = -20000;
41 constexpr float MAX_OUT_GIMBAL_YAW_SPEED = 20000;
42 static_assert(MAX_OUT_GIMBAL_YAW_SPEED >= MIN_OUT_GIMBAL_YAW_SPEED);
45 constexpr float KP_GIMBAL_PITCH_ANGLE = 220;
46 constexpr float KI_GIMBAL_PITCH_ANGLE = 70;
47 constexpr float KD_GIMBAL_PITCH_ANGLE = 0;
48 constexpr float BETA_GIMBAL_PITCH_ANGLE = 1;
49 constexpr float YETA_GIMBAL_PITCH_ANGLE = 0;
50 constexpr float MIN_OUT_GIMBAL_PITCH_ANGLE = -1000;
51 constexpr float MAX_OUT_GIMBAL_PITCH_ANGLE = 1000;
52 static_assert(MAX_OUT_GIMBAL_PITCH_ANGLE >= MIN_OUT_GIMBAL_PITCH_ANGLE);
54 constexpr float KP_GIMBAL_PITCH_SPEED = 180;
55 constexpr float KI_GIMBAL_PITCH_SPEED = 60;
56 constexpr float KD_GIMBAL_PITCH_SPEED = 0;
57 constexpr float BETA_GIMBAL_PITCH_SPEED = 1;
58 constexpr float YETA_GIMBAL_PITCH_SPEED = 0;
59 constexpr float MIN_OUT_GIMBAL_PITCH_SPEED = -20000;
60 constexpr float MAX_OUT_GIMBAL_PITCH_SPEED = 20000;
61 static_assert(MAX_OUT_GIMBAL_PITCH_SPEED >= MIN_OUT_GIMBAL_PITCH_SPEED);
64namespace shoot_params {
66 constexpr float LOADER_ACTIVE_RPM = 33;
67 constexpr float FLYWHEEL_ACTIVE_TARGET_RPM = 10000;
68 constexpr float MAX_FLYWHEEL_ACCEL = 70000;
69 static_assert(MAX_FLYWHEEL_ACCEL >= 0);
72 constexpr float KP_LOADER_SPEED = 15;
73 constexpr float KI_LOADER_SPEED = 0;
74 constexpr float KD_LOADER_SPEED = 0;
75 constexpr float BETA_LOADER_SPEED = 1;
76 constexpr float YETA_LOADER_SPEED = 0;
77 constexpr float MIN_OUT_LOADER_SPEED = -5000;
78 constexpr float MAX_OUT_LOADER_SPEED = 5000;
79 static_assert(MAX_OUT_LOADER_SPEED >= MIN_OUT_LOADER_SPEED);
82 constexpr float KP_FLYWHEEL_SPEED = 27;
83 constexpr float KI_FLYWHEEL_SPEED = 5;
84 constexpr float KD_FLYWHEEL_SPEED = 0;
85 constexpr float BETA_FLYWHEEL_SPEED = 1;
86 constexpr float YETA_FLYWHEEL_SPEED = 0;
87 constexpr float MIN_OUT_FLYWHEEL_SPEED = -5000;
88 constexpr float MAX_OUT_FLYWHEEL_SPEED = 5000;
89 static_assert(MAX_OUT_FLYWHEEL_SPEED >= MIN_OUT_FLYWHEEL_SPEED);
92namespace chassis_params {
94 constexpr float MAX_TRANSLATION = 8;
95 constexpr float MAX_ROTATION = 5;
96 constexpr float GYRO_SPEED = 5;
97 static_assert(MAX_TRANSLATION >= 0);
98 static_assert(MAX_ROTATION >= 0);
99 static_assert(MAX_ROTATION >= GYRO_SPEED);
103 constexpr float KP_DRIVE_WHEEL = 5;
104 constexpr float KI_DRIVE_WHEEL = 0;
105 constexpr float KD_DRIVE_WHEEL = 0;
106 constexpr float BETA_DRIVE_WHEEL = 1;
107 constexpr float YETA_DRIVE_WHEEL = 0;
108 constexpr float MIN_OUT_DRIVE_WHEEL = -5000;
109 constexpr float MAX_OUT_DRIVE_WHEEL = 5000;
110 static_assert(MAX_OUT_DRIVE_WHEEL >= MIN_OUT_DRIVE_WHEEL);
113 constexpr float WHEEL_RAMP_MAX_ACCEL = 400;
114 static_assert(WHEEL_RAMP_MAX_ACCEL >= 0);