branch for tests with T265
Dependencies: Lib_Cntrl AHRS Lib_Misc
Sources/Controller_Loops.h
- Committer:
- altb2
- Date:
- 2019-10-09
- Revision:
- 1:d8c9f6b16279
- Parent:
- 0:a479dc61e931
File content as of revision 1:d8c9f6b16279:
#ifndef CONTROLLER_LOOPS_H_ #define CONTROLLER_LOOPS_H_ #include "mbed.h" #include "AHRS.h" #include "Signal.h" #include "UAV.h" #include "RCin.h" #include "PID_Cntrl.h" // need a few external stuff extern DATA_Xchange data; extern UAV copter; extern PwmOut motor_pwms[4]; extern Serial pc; extern RCin myRC; class Controller_Loops{ public: Controller_Loops(float ,uint8_t ,uint8_t ); Controller_Loops(float ,uint8_t ,uint8_t, bool ); // use this, if ahrs has no extra thread virtual ~Controller_Loops(); void init_loop(void); void start_loop(void); void reset_all(void); void reset_des_z(void); void reset_des_z(float); PID_Cntrl rate_cntrl[3]; PID_Cntrl vel_cntrl[3]; PID_Cntrl pos_cntrl[3]; void enable_stabilized(void); void enable_acro(void); void enable_alt_hold(void); void enable_vel_of_z_pos(void); void disable_all(void); void set_controller_limits(UAV); private: float Ts; float Kv[3]; float scale_PM1_to_vel, scale_PM1_to_rate, scale_PM1_to_angle; void loop(void); bool Rate_Controller_Running; bool Attitude_Controller_Running; bool Yaw_Controller_Running; bool Vel_Controller_Running; bool Pos_Controller_Running; bool Althold_Controller_Running; AHRS cntrl_ahrs; Signal signal; Thread thread; Ticker ticker; Mutex mutex; void sendSignal(); uint8_t downsamp_1; uint8_t downsamp_2; uint8_t downsamp_counter_1; uint8_t downsamp_counter_2; float calc_des_pos(float); float PM1_2_F_Thrust(float); float des_z; float max_delta; // max tracking error in z float max_climb_rate; bool with_ahrs; DigitalOut dout1; }; #endif