mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-26 07:33:37 +08:00
Tiltrotor: option to enable differential thrust in forwards flight
This commit is contained in:
committed by
Andreas Daniel Antener
parent
b19cd19411
commit
e04fe593e0
@@ -70,6 +70,8 @@ Tiltrotor::Tiltrotor(VtolAttitudeControl *attc) :
|
||||
_params_handles_tiltrotor.front_trans_dur_p2 = param_find("VT_TRANS_P2_DUR");
|
||||
_params_handles_tiltrotor.fw_motors_off = param_find("VT_FW_MOT_OFFID");
|
||||
_params_handles_tiltrotor.airspeed_mode = param_find("FW_ARSP_MODE");
|
||||
_params_handles_tiltrotor.diff_thrust = param_find("VT_FW_DIFTHR_EN");
|
||||
_params_handles_tiltrotor.diff_thrust_scale = param_find("VT_FW_DIFTHR_SC");
|
||||
}
|
||||
|
||||
Tiltrotor::~Tiltrotor()
|
||||
@@ -134,6 +136,11 @@ Tiltrotor::parameters_update()
|
||||
/* airspeed mode */
|
||||
param_get(_params_handles_tiltrotor.airspeed_mode, &l);
|
||||
_params_tiltrotor.airspeed_mode = math::constrain(l, 0, 2);
|
||||
|
||||
param_get(_params_handles_tiltrotor.diff_thrust, &_params_tiltrotor.diff_thrust);
|
||||
|
||||
param_get(_params_handles_tiltrotor.diff_thrust_scale, &v);
|
||||
_params_tiltrotor.diff_thrust_scale = math::constrain(v, -1.0f, 1.0f);
|
||||
}
|
||||
|
||||
int Tiltrotor::get_motor_off_channels(int channels)
|
||||
@@ -425,6 +432,12 @@ void Tiltrotor::fill_actuator_outputs()
|
||||
_actuators_out_0->control[actuator_controls_s::INDEX_THROTTLE] =
|
||||
_actuators_fw_in->control[actuator_controls_s::INDEX_THROTTLE];
|
||||
|
||||
/* allow differential thrust if enabled */
|
||||
if (_params_tiltrotor.diff_thrust == 1) {
|
||||
_actuators_out_0->control[actuator_controls_s::INDEX_ROLL] =
|
||||
_actuators_fw_in->control[actuator_controls_s::INDEX_YAW] * _params_tiltrotor.diff_thrust_scale;
|
||||
}
|
||||
|
||||
} else {
|
||||
_actuators_out_0->control[actuator_controls_s::INDEX_THROTTLE] =
|
||||
_actuators_mc_in->control[actuator_controls_s::INDEX_THROTTLE];;
|
||||
|
||||
Reference in New Issue
Block a user