Browse Source

wip, minor bugfixes in fw att control

sbg
Thomas Gubler 11 years ago
parent
commit
a0ea0901b5
  1. 2
      src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp
  2. 8
      src/modules/fw_att_control/fw_att_control_main.cpp
  3. 4
      src/modules/fw_att_control/fw_att_control_params.c

2
src/lib/ecl/attitude_fw/ecl_pitch_controller.cpp

@ -90,7 +90,7 @@ float ECL_PitchController::control_attitude(float pitch_setpoint, float roll, fl @@ -90,7 +90,7 @@ float ECL_PitchController::control_attitude(float pitch_setpoint, float roll, fl
float pitch_error = pitch_setpoint - pitch;
/* Apply P controller: rate setpoint from current error and time constant */
float _rate_setpoint = pitch_error / _tc;
_rate_setpoint = pitch_error / _tc;
/* add turn offset */
_rate_setpoint += turn_offset;

8
src/modules/fw_att_control/fw_att_control_main.cpp

@ -673,7 +673,7 @@ FixedwingAttitudeControl::task_main() @@ -673,7 +673,7 @@ FixedwingAttitudeControl::task_main()
/* Run attitude controllers */
_roll_ctrl.control_attitude(roll_sp, _att.roll);
_pitch_ctrl.control_attitude(roll_sp, _att.roll, _att.pitch, airspeed);
_pitch_ctrl.control_attitude(pitch_sp, _att.roll, _att.pitch, airspeed);
_yaw_ctrl.control_attitude(_att.roll, _att.pitch,
speed_body_u,speed_body_w,
_roll_ctrl.get_desired_rate(), _pitch_ctrl.get_desired_rate()); //runs last, because is depending on output of roll and pitch attitude
@ -709,9 +709,9 @@ FixedwingAttitudeControl::task_main() @@ -709,9 +709,9 @@ FixedwingAttitudeControl::task_main()
* only once available
*/
vehicle_rates_setpoint_s rates_sp;
rates_sp.roll = _roll_ctrl.get_desired_rate();
rates_sp.pitch = _pitch_ctrl.get_desired_rate();
rates_sp.yaw = _yaw_ctrl.get_desired_rate();
rates_sp.roll = _roll_ctrl.get_desired_bodyrate();
rates_sp.pitch = _pitch_ctrl.get_desired_bodyrate();
rates_sp.yaw = _yaw_ctrl.get_desired_bodyrate();
rates_sp.timestamp = hrt_absolute_time();

4
src/modules/fw_att_control/fw_att_control_params.c

@ -44,6 +44,8 @@ @@ -44,6 +44,8 @@
#include <systemlib/param/param.h>
//XXX resolve unclear naming of paramters: FW_P_D --> FW_PR_P
/*
* Controller parameters, accessible via MAVLink
*
@ -130,7 +132,7 @@ PARAM_DEFINE_FLOAT(FW_Y_P, 0); @@ -130,7 +132,7 @@ PARAM_DEFINE_FLOAT(FW_Y_P, 0);
PARAM_DEFINE_FLOAT(FW_Y_I, 0);
PARAM_DEFINE_FLOAT(FW_Y_IMAX, 15.0f);
PARAM_DEFINE_FLOAT(FW_Y_D, 0);
PARAM_DEFINE_FLOAT(FW_Y_ROLLFF, 1);
PARAM_DEFINE_FLOAT(FW_Y_ROLLFF, 0);
PARAM_DEFINE_FLOAT(FW_AIRSPD_MIN, 9.0f);
PARAM_DEFINE_FLOAT(FW_AIRSPD_TRIM, 12.0f);
PARAM_DEFINE_FLOAT(FW_AIRSPD_MAX, 18.0f);

Loading…
Cancel
Save