AC_AttitudeControl: fixed external tail gyro with no flybar

this sets up the tail pass-through for acro mode
This commit is contained in:
Andrew Tridgell 2015-11-21 06:44:29 +11:00 committed by Randy Mackay
parent 06880e8b04
commit d8ee9feaac
3 changed files with 12 additions and 1 deletions

View File

@ -136,7 +136,7 @@ public:
void rate_ef_roll_pitch_yaw(float roll_rate_ef, float pitch_rate_ef, float yaw_rate_ef); void rate_ef_roll_pitch_yaw(float roll_rate_ef, float pitch_rate_ef, float yaw_rate_ef);
// rate_bf_roll_pitch_yaw - attempts to maintain a roll, pitch and yaw rate (all body frame) // rate_bf_roll_pitch_yaw - attempts to maintain a roll, pitch and yaw rate (all body frame)
void rate_bf_roll_pitch_yaw(float roll_rate_bf, float pitch_rate_bf, float yaw_rate_bf); virtual void rate_bf_roll_pitch_yaw(float roll_rate_bf, float pitch_rate_bf, float yaw_rate_bf);
// //
// rate_controller_run - run lowest level body-frame rate controller and send outputs to the motors // rate_controller_run - run lowest level body-frame rate controller and send outputs to the motors

View File

@ -86,6 +86,14 @@ void AC_AttitudeControl_Heli::passthrough_bf_roll_pitch_rate_yaw(float roll_pass
_rate_bf_target.z += _rate_bf_desired.z; _rate_bf_target.z += _rate_bf_desired.z;
} }
// subclass non-passthrough too, for external gyro, no flybar
void AC_AttitudeControl_Heli::rate_bf_roll_pitch_yaw(float roll_rate_bf, float pitch_rate_bf, float yaw_rate_bf)
{
_passthrough_yaw = yaw_rate_bf;
AC_AttitudeControl::rate_bf_roll_pitch_yaw(roll_rate_bf, pitch_rate_bf, yaw_rate_bf);
}
// //
// rate controller (body-frame) methods // rate controller (body-frame) methods
// //

View File

@ -49,6 +49,9 @@ public:
// passthrough_bf_roll_pitch_rate_yaw - roll and pitch are passed through directly, body-frame rate target for yaw // passthrough_bf_roll_pitch_rate_yaw - roll and pitch are passed through directly, body-frame rate target for yaw
void passthrough_bf_roll_pitch_rate_yaw(float roll_passthrough, float pitch_passthrough, float yaw_rate_bf); void passthrough_bf_roll_pitch_rate_yaw(float roll_passthrough, float pitch_passthrough, float yaw_rate_bf);
// subclass non-passthrough too, for external gyro, no flybar
void rate_bf_roll_pitch_yaw(float roll_rate_bf, float pitch_rate_bf, float yaw_rate_bf) override;
// rate_controller_run - run lowest level body-frame rate controller and send outputs to the motors // rate_controller_run - run lowest level body-frame rate controller and send outputs to the motors
// should be called at 100hz or more // should be called at 100hz or more
virtual void rate_controller_run(); virtual void rate_controller_run();