TR-mbed 1.0
Loading...
Searching...
No Matches
TurretSubsystem.h
Go to the documentation of this file.
1#pragma once
2
7#include "Subsystem.h"
8#include <cmath>
9
10
11// enums for state
13
15{
16public:
17 struct PID_config
18 {
19 float kp;
20 float ki;
21 float kd;
22 };
23
24 struct config
25 {
26 short yaw_id;
28 short pitch_id;
30
31 int pitch_offset_ticks; // TODO: Change this (to deg) when IMU on pitch! (also post 25' inf)
32
35
38
39 const float yaw_static_friction = 1221; // We multiply it by dir
40 const float yaw_kinetic_friction = 97.4; // We multiply this by yawvelo
41
42 const float pitch_gravity_feedforward = -2600; // We multiply this by cos(angle)
43 const float pitch_static_friction = 1221; // We multiply it by dir
44 const float pitch_kinetic_friction = 97.4; // We multiply this by pitchvelo
45
49
50 float gear_ratio = 1;
51
52 const float pitch_lower_bound;
53 const float pitch_upper_bound;
54 };
55
64
66
68
69 void setState(TurretInfo state);
70
71 // void set_desired_turret(float des_yaw_angle, float des_pitch_angle);
72
73 void periodic(float chasssisRpm);
74
75 int getTicks(); // only thing chassis should have is this basically, or a pointer to turret
76
77 DJIMotor yaw; // TODO fix chassissubsystem and put this into private
78private:
79
80 DJIMotor pitch;
81
82 TurretInfo turret_state;
83
84 IMU &imu_;
85 IMU::EulerAngles imuAngles;
86
87 bool configured;
88 const int forward_;
89 const float pitch_lowerbound, pitch_upperbound;
90 const float gear_ratio;
91
92 const float yaw_static_friction;
93 const float yaw_kinetic_friction;
94 const float pitch_static_friction;
95 const float pitch_kinetic_friction;
96 const float pitch_gravity_feedforward;
97
98 int pitch_offset_ticks;
99
100 unsigned long turret_time;
101
102 float des_yaw, des_pitch, chassis_rpm;
103
104 // get angle zero offsetted
105 float get_pitch_angle_degs_zero_offsetted();
106
107 float get_yaw_angle_degs();
108
109 float get_pitch_angle_degs();
110
111 float get_pitch_vel_rads_per_sec();
112
113 float get_yaw_vel_rads_per_sec();
114};
motorType
Definition DJIMotor.h:39
@ GM6020
Definition DJIMotor.h:42
TurretState
Definition TurretSubsystem.h:12
@ AIM
Definition TurretSubsystem.h:12
@ SLEEP
Definition TurretSubsystem.h:12
CANBus
Definition CANHandler.h:45
Definition DJIMotor.h:48
Definition IMU.h:5
Definition Subsystem.h:5
void setState()
void periodic()
Definition TurretSubsystem.h:15
DJIMotor yaw
Definition TurretSubsystem.h:77
TurretInfo getState()
Definition TurretSubsystem.cpp:45
int getTicks()
Definition TurretSubsystem.cpp:63
BNO055 imu(i2c, PA_8, MODE_NDOF)
Definition IMU.h:8
Definition PID.h:154
Definition TurretSubsystem.h:18
float ki
Definition TurretSubsystem.h:20
float kp
Definition TurretSubsystem.h:19
float kd
Definition TurretSubsystem.h:21
Definition TurretSubsystem.h:57
TurretState turret_mode
Definition TurretSubsystem.h:62
float yaw_angle_degs
Definition TurretSubsystem.h:58
float pitch_velo_rad_s
Definition TurretSubsystem.h:61
float pitch_angle_degs
Definition TurretSubsystem.h:60
float yaw_velo_rad_s
Definition TurretSubsystem.h:59
Definition TurretSubsystem.h:25
PID::config yaw_vel_PID
Definition TurretSubsystem.h:33
int pitch_offset_ticks
Definition TurretSubsystem.h:31
const float pitch_upper_bound
Definition TurretSubsystem.h:53
const float pitch_static_friction
Definition TurretSubsystem.h:43
PID::config pitch_vel_PID
Definition TurretSubsystem.h:36
int forward
Definition TurretSubsystem.h:48
CANHandler::CANBus pitchCanBus
Definition TurretSubsystem.h:47
PID::config yaw_pos_PID
Definition TurretSubsystem.h:34
const float pitch_lower_bound
Definition TurretSubsystem.h:52
float gear_ratio
Definition TurretSubsystem.h:50
const float pitch_gravity_feedforward
Definition TurretSubsystem.h:42
PID::config pitch_pos_PID
Definition TurretSubsystem.h:37
const float yaw_static_friction
Definition TurretSubsystem.h:39
const float pitch_kinetic_friction
Definition TurretSubsystem.h:44
CANHandler::CANBus yawCanBus
Definition TurretSubsystem.h:46
motorType pitch_type
Definition TurretSubsystem.h:29
short yaw_id
Definition TurretSubsystem.h:26
const float yaw_kinetic_friction
Definition TurretSubsystem.h:40
short pitch_id
Definition TurretSubsystem.h:28
motorType yaw_type
Definition TurretSubsystem.h:27