Skip to content

Commit 52cbd1a

Browse files
committed
Backport #15949
1 parent 1cc2755 commit 52cbd1a

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

src/modules/fw_att_control/FixedwingAttitudeControl.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,15 @@ FixedwingAttitudeControl::vehicle_manual_poll(const float yaw_body)
122122

123123
// STABILIZED mode generate the attitude setpoint from manual user inputs
124124

125-
_att_sp.roll_body = _manual_control_setpoint.y * radians(_param_fw_man_r_max.get());
125+
_att_sp.roll_body = _manual_control_setpoint.roll * radians(_param_fw_man_r_max.get());
126126

127-
_att_sp.pitch_body = -_manual_control_setpoint.x * radians(_param_fw_man_p_max.get())
127+
_att_sp.pitch_body = -_manual_control_setpoint.pitch * radians(_param_fw_man_p_max.get())
128128
+ radians(_param_fw_psp_off.get());
129129
_att_sp.pitch_body = constrain(_att_sp.pitch_body,
130130
-radians(_param_fw_man_p_max.get()), radians(_param_fw_man_p_max.get()));
131131

132132
_att_sp.yaw_body = yaw_body; // yaw is not controlled, so set setpoint to current yaw
133-
_att_sp.thrust_body[0] = math::constrain(_manual_control_setpoint.z, 0.0f, 1.0f);
133+
_att_sp.thrust_body[0] = math::constrain(_manual_control_setpoint.throttle, 0.0f, 1.0f);
134134

135135
Quatf q(Eulerf(_att_sp.roll_body, _att_sp.pitch_body, _att_sp.yaw_body));
136136
q.copyTo(_att_sp.q_d);
@@ -431,7 +431,7 @@ void FixedwingAttitudeControl::Run()
431431

432432
/* add yaw rate setpoint from sticks in all attitude-controlled modes */
433433
if (_vcontrol_mode.flag_control_manual_enabled) {
434-
body_rates_setpoint(2) += math::constrain(_manual_control_setpoint.r * radians(_param_fw_y_rmax.get()),
434+
body_rates_setpoint(2) += math::constrain(_manual_control_setpoint.yaw * radians(_param_fw_y_rmax.get()),
435435
-radians(_param_fw_y_rmax.get()), radians(_param_fw_y_rmax.get()));
436436
}
437437

@@ -451,7 +451,7 @@ void FixedwingAttitudeControl::Run()
451451

452452
if (_vcontrol_mode.flag_control_manual_enabled) {
453453
// always direct control of steering wheel with yaw stick in manual modes
454-
wheel_u = _manual_control_setpoint.r;
454+
wheel_u = _manual_control_setpoint.yaw;
455455

456456
} else {
457457
// XXX: yaw_sp_move_rate here is an abuse -- used to ferry manual yaw inputs from

src/modules/fw_rate_control/FixedwingRateControl.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -126,22 +126,23 @@ FixedwingRateControl::vehicle_manual_poll(const float yaw_body)
126126

127127
// RATE mode we need to generate the rate setpoint from manual user inputs
128128
_rates_sp.timestamp = hrt_absolute_time();
129-
_rates_sp.roll = _manual_control_setpoint.y * radians(_param_fw_acro_x_max.get());
130-
_rates_sp.pitch = -_manual_control_setpoint.x * radians(_param_fw_acro_y_max.get());
131-
_rates_sp.yaw = _manual_control_setpoint.r * radians(_param_fw_acro_z_max.get());
132-
_rates_sp.thrust_body[0] = math::constrain(_manual_control_setpoint.z, 0.0f, 1.0f);
129+
_rates_sp.roll = _manual_control_setpoint.roll * radians(_param_fw_acro_x_max.get());
130+
_rates_sp.pitch = -_manual_control_setpoint.pitch * radians(_param_fw_acro_y_max.get());
131+
_rates_sp.yaw = _manual_control_setpoint.yaw * radians(_param_fw_acro_z_max.get());
132+
_rates_sp.thrust_body[0] = math::constrain(_manual_control_setpoint.throttle, 0.0f, 1.0f);
133133

134134
_rate_sp_pub.publish(_rates_sp);
135135

136136
} else {
137137
/* manual/direct control */
138138
_actuator_controls.control[actuator_controls_s::INDEX_ROLL] =
139-
_manual_control_setpoint.y * _param_fw_man_r_sc.get() + _param_trim_roll.get();
139+
_manual_control_setpoint.roll * _param_fw_man_r_sc.get() + _param_trim_roll.get();
140140
_actuator_controls.control[actuator_controls_s::INDEX_PITCH] =
141-
-_manual_control_setpoint.x * _param_fw_man_p_sc.get() + _param_trim_pitch.get();
141+
-_manual_control_setpoint.pitch * _param_fw_man_p_sc.get() + _param_trim_pitch.get();
142142
_actuator_controls.control[actuator_controls_s::INDEX_YAW] =
143-
_manual_control_setpoint.r * _param_fw_man_y_sc.get() + _param_trim_yaw.get();
144-
_actuator_controls.control[actuator_controls_s::INDEX_THROTTLE] = math::constrain(_manual_control_setpoint.z, 0.0f,
143+
_manual_control_setpoint.yaw * _param_fw_man_y_sc.get() + _param_trim_yaw.get();
144+
_actuator_controls.control[actuator_controls_s::INDEX_THROTTLE] = math::constrain(_manual_control_setpoint.throttle,
145+
0.0f,
145146
1.0f);
146147
}
147148
}

0 commit comments

Comments
 (0)