diff options
author | Thomas Gubler <thomasgubler@gmail.com> | 2015-01-07 16:00:59 +0100 |
---|---|---|
committer | Thomas Gubler <thomasgubler@gmail.com> | 2015-01-07 16:00:59 +0100 |
commit | fe279d340dccdd40ebfade4c53893e8f7a77b45e (patch) | |
tree | 6ca7e8517507e097097a45cca384c51d343b5fc7 /src/lib/ecl/attitude_fw/ecl_roll_controller.h | |
parent | 417a82c699c2512ca3b8998c91c9d77f5d826edb (diff) | |
parent | 6ed2f77ca5c713e537c8fd4a9aacd7adc7887f53 (diff) | |
download | px4-firmware-fe279d340dccdd40ebfade4c53893e8f7a77b45e.tar.gz px4-firmware-fe279d340dccdd40ebfade4c53893e8f7a77b45e.tar.bz2 px4-firmware-fe279d340dccdd40ebfade4c53893e8f7a77b45e.zip |
Merge remote-tracking branch 'upstream/master' into dev_ros
Conflicts:
Makefile
Diffstat (limited to 'src/lib/ecl/attitude_fw/ecl_roll_controller.h')
-rw-r--r-- | src/lib/ecl/attitude_fw/ecl_roll_controller.h | 69 |
1 files changed, 6 insertions, 63 deletions
diff --git a/src/lib/ecl/attitude_fw/ecl_roll_controller.h b/src/lib/ecl/attitude_fw/ecl_roll_controller.h index 0799dbe03..6d07bab8a 100644 --- a/src/lib/ecl/attitude_fw/ecl_roll_controller.h +++ b/src/lib/ecl/attitude_fw/ecl_roll_controller.h @@ -51,76 +51,19 @@ #include <stdbool.h> #include <stdint.h> -#include <systemlib/perf_counter.h> -class __EXPORT ECL_RollController //XXX: create controller superclass +#include "ecl_controller.h" + +class __EXPORT ECL_RollController : + public ECL_Controller { public: ECL_RollController(); ~ECL_RollController(); - float control_attitude(float roll_setpoint, float roll); - - float control_bodyrate(float pitch, - float roll_rate, float yaw_rate, - float yaw_rate_setpoint, - float airspeed_min = 0.0f, float airspeed_max = 0.0f, float airspeed = (0.0f / 0.0f), float scaler = 1.0f, bool lock_integrator = false); - - void reset_integrator(); - - void set_time_constant(float time_constant) { - if (time_constant > 0.1f && time_constant < 3.0f) { - _tc = time_constant; - } - } - - void set_k_p(float k_p) { - _k_p = k_p; - } - - void set_k_i(float k_i) { - _k_i = k_i; - } - - void set_k_ff(float k_ff) { - _k_ff = k_ff; - } - - void set_integrator_max(float max) { - _integrator_max = max; - } - - void set_max_rate(float max_rate) { - _max_rate = max_rate; - } - - float get_rate_error() { - return _rate_error; - } - - float get_desired_rate() { - return _rate_setpoint; - } - - float get_desired_bodyrate() { - return _bodyrate_setpoint; - } - -private: - uint64_t _last_run; - float _tc; - float _k_p; - float _k_i; - float _k_ff; - float _integrator_max; - float _max_rate; - float _last_output; - float _integrator; - float _rate_error; - float _rate_setpoint; - float _bodyrate_setpoint; - perf_counter_t _nonfinite_input_perf; + float control_attitude(const struct ECL_ControlData &ctl_data); + float control_bodyrate(const struct ECL_ControlData &ctl_data); }; #endif // ECL_ROLL_CONTROLLER_H |