Line data Source code
1 : #pragma once 2 : 3 : /// @file AC_AttitudeControl_TVBS.h 4 : /// @brief ArduCopter attitude control library 5 : 6 : #include "AC_AttitudeControl_Multi.h" 7 : 8 : class AC_AttitudeControl_TS : public AC_AttitudeControl_Multi 9 : { 10 : public: 11 : using AC_AttitudeControl_Multi::AC_AttitudeControl_Multi; 12 : 13 : // empty destructor to suppress compiler warning 14 0 : virtual ~AC_AttitudeControl_TS() {} 15 : 16 : // Ensure attitude controllers have zero errors to relax rate controller output 17 : // Relax only the roll and yaw rate controllers if exclude_pitch is true 18 : virtual void relax_attitude_controllers(bool exclude_pitch) override; 19 : 20 : 21 : // Commands a body-frame roll angle (in centidegrees), an euler pitch angle (in centidegrees), and a yaw rate (in centidegrees/s). 22 : // See input_euler_rate_yaw_euler_angle_pitch_bf_roll_rad() for full details. 23 : virtual void input_euler_rate_yaw_euler_angle_pitch_bf_roll_cd(bool plane_controls, float body_roll_cd, float euler_pitch_cd, float euler_yaw_rate_cds) override; 24 : 25 : // Commands a body-frame roll angle (in radians), an euler pitch angle (in radians), and a yaw rate (in radians/s). 26 : // Used by tailsitter quadplanes. Optionally swaps roll and yaw effects as pitch nears 90° if plane_controls is true. 27 : virtual void input_euler_rate_yaw_euler_angle_pitch_bf_roll_rad(bool plane_controls, float body_roll_rad, float euler_pitch_rad, float euler_yaw_rate_rads) override; 28 : };