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
48
57
59
61
62 void setState(TurretInfo state);
63
64 // void set_desired_turret(float des_yaw_angle, float des_pitch_angle);
65
66 void periodic(float chasssisRpm);
67
68 int getTicks(); // only thing chassis should have is this basically, or a pointer to turret
69
70 DJIMotor yaw; // TODO fix chassissubsystem and put this into private
71private:
72
73 DJIMotor pitch;
74
75 TurretInfo turret_state;
76
77 IMU &imu;
78 IMU::EulerAngles imuAngles;
79
80 bool configured;
81 const int forward_;
82 const float pitch_lowerbound, pitch_upperbound;
83
84 int pitch_offset_ticks;
85
86 unsigned long turret_time;
87
88 float des_yaw, des_pitch, chassis_rpm;
89
90 // get angle zero offsetted
91 float get_pitch_angle_degs_zero_offsetted();
92
93 float get_yaw_angle_degs();
94
95 float get_pitch_vel_rads_per_sec();
96
97 float get_yaw_vel_rads_per_sec();
98};
motorType
Definition DJIMotor.h:38
@ GM6020
Definition DJIMotor.h:41
TurretState
Definition TurretSubsystem.h:12
@ AIM
Definition TurretSubsystem.h:12
@ SLEEP
Definition TurretSubsystem.h:12
CANBus
Definition CANHandler.h:45
Definition DJIMotor.h:47
Definition IMU.h:5
Definition Subsystem.h:5
void setState()
void periodic()
Definition TurretSubsystem.h:15
DJIMotor yaw
Definition TurretSubsystem.h:70
TurretInfo getState()
Definition TurretSubsystem.cpp:38
int getTicks()
Definition TurretSubsystem.cpp:56
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:50
TurretState turret_mode
Definition TurretSubsystem.h:55
float yaw_angle_degs
Definition TurretSubsystem.h:51
float pitch_velo_rad_s
Definition TurretSubsystem.h:54
float pitch_angle_degs
Definition TurretSubsystem.h:53
float yaw_velo_rad_s
Definition TurretSubsystem.h:52
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:46
PID::config pitch_vel_PID
Definition TurretSubsystem.h:36
int forward
Definition TurretSubsystem.h:41
CANHandler::CANBus pitchCanBus
Definition TurretSubsystem.h:40
PID::config yaw_pos_PID
Definition TurretSubsystem.h:34
const float pitch_lower_bound
Definition TurretSubsystem.h:45
PID::config pitch_pos_PID
Definition TurretSubsystem.h:37
IMU & imu
Definition TurretSubsystem.h:43
CANHandler::CANBus yawCanBus
Definition TurretSubsystem.h:39
motorType pitch_type
Definition TurretSubsystem.h:29
short yaw_id
Definition TurretSubsystem.h:26
short pitch_id
Definition TurretSubsystem.h:28
motorType yaw_type
Definition TurretSubsystem.h:27