New version of quadcopter software written to OO principles
Dependencies: mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS
StabController.h
00001 #include "mbed.h" 00002 #include "Global.h" 00003 #include "PidWrapper.h" 00004 #include "ConfigFileWrapper.h" 00005 #include "NavigationController.h" 00006 00007 #ifndef StabController_H 00008 #define StabController_H 00009 00010 class StabController 00011 { 00012 public: 00013 StabController(Sensors& sensors, NavigationController& navigationController, ConfigFileWrapper& configFileWrapper); 00014 ~StabController(); 00015 00016 PidWrapper::PidOutput compute(); 00017 PidWrapper::FlightControllerPidParameters getPidParameters(); 00018 void reset(); 00019 void setYawStabPidParameters(PidWrapper::PidParameter pidParameters); 00020 void setPitchStabPidParameters(PidWrapper::PidParameter pidParameters); 00021 void setRollStabPidParameters(PidWrapper::PidParameter pidParameters); 00022 void setYawRatePidParameters(PidWrapper::PidParameter pidParameters); 00023 void setPitchRatePidParameters(PidWrapper::PidParameter pidParameters); 00024 void setRollRatePidParameters(PidWrapper::PidParameter pidParameters); 00025 PidWrapper::StabPidState getStabPidState(); 00026 00027 private: 00028 Sensors& _sensors; 00029 NavigationController& _navigationController; 00030 ConfigFileWrapper& _configFileWrapper; 00031 PidWrapper _yawRatePidController; 00032 PidWrapper _pitchRatePidController; 00033 PidWrapper _rollRatePidController; 00034 PidWrapper _yawStabPidController; 00035 PidWrapper _pitchStabPidController; 00036 PidWrapper _rollStabPidController; 00037 NavigationController::SetPoint _setPoints; 00038 Imu::Rate _rate; 00039 Imu::Angle _angle; 00040 PidWrapper::PidOutput _stabPidOutputs; 00041 PidWrapper::PidOutput _ratePidOutputs; 00042 }; 00043 00044 #endif
Generated on Fri Jul 15 2022 00:21:58 by 1.7.2