From 9fe4d883d01bea23ca9b1a4ac8465d538ed1133f Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Sat, 18 Jan 2014 11:54:23 +0900 Subject: [PATCH] AC_AttControl: accessor for lean angle max --- libraries/AC_AttitudeControl/AC_AttitudeControl.cpp | 4 ++-- libraries/AC_AttitudeControl/AC_AttitudeControl.h | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp b/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp index 4f3e903a9a..b33c8e8405 100644 --- a/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp +++ b/libraries/AC_AttitudeControl/AC_AttitudeControl.cpp @@ -148,7 +148,7 @@ void AC_AttitudeControl::rate_stab_ef_to_rate_ef_roll() // ensure targets are within the lean angle limits // To-Do: make angle_max part of the AP_Vehicle class - _angle_ef_target.x = constrain_float(_angle_ef_target.x, -aparm.angle_max, aparm.angle_max); + _angle_ef_target.x = constrain_float(_angle_ef_target.x, -_aparm.angle_max, _aparm.angle_max); // calculate angle error with maximum of +- max_angle_overshoot angle_error = wrap_180_cd(_angle_ef_target.x - _ahrs.roll_sensor); @@ -174,7 +174,7 @@ void AC_AttitudeControl::rate_stab_ef_to_rate_ef_pitch() // ensure targets are within the lean angle limits // To-Do: make angle_max part of the AP_Vehicle class - _angle_ef_target.y = constrain_float(_angle_ef_target.y, -aparm.angle_max, aparm.angle_max); + _angle_ef_target.y = constrain_float(_angle_ef_target.y, -_aparm.angle_max, _aparm.angle_max); // calculate angle error with maximum of +- max_angle_overshoot // To-Do: should we do something better as we cross 90 degrees? diff --git a/libraries/AC_AttitudeControl/AC_AttitudeControl.h b/libraries/AC_AttitudeControl/AC_AttitudeControl.h index 924cfef551..95d7fc2bd4 100644 --- a/libraries/AC_AttitudeControl/AC_AttitudeControl.h +++ b/libraries/AC_AttitudeControl/AC_AttitudeControl.h @@ -35,7 +35,7 @@ class AC_AttitudeControl { public: AC_AttitudeControl( AP_AHRS &ahrs, AP_InertialSensor& ins, - const AP_Vehicle::MultiCopter &parms, + const AP_Vehicle::MultiCopter &aparm, AP_Motors& motors, APM_PI& pi_angle_roll, APM_PI& pi_angle_pitch, APM_PI& pi_angle_yaw, AC_PID& pid_rate_roll, AC_PID& pid_rate_pitch, AC_PID& pid_rate_yaw, @@ -43,7 +43,7 @@ public: ) : _ahrs(ahrs), _ins(ins), - aparm(parms), + _aparm(aparm), _motors(motors), _pi_angle_roll(pi_angle_roll), _pi_angle_pitch(pi_angle_pitch), @@ -180,6 +180,9 @@ public: _sin_pitch = sin_pitch; } + // lean_angle_max - maximum lean angle of the copter in centi-degrees + int16_t lean_angle_max() { return _aparm.angle_max; } + // user settable parameters static const struct AP_Param::GroupInfo var_info[]; @@ -222,7 +225,7 @@ private: // references to external libraries AP_AHRS& _ahrs; AP_InertialSensor& _ins; - const AP_Vehicle::MultiCopter &aparm; + const AP_Vehicle::MultiCopter &_aparm; AP_Motors& _motors; APM_PI& _pi_angle_roll; APM_PI& _pi_angle_pitch;