@@ -145,24 +145,25 @@ FixedwingAttitudeControl::vehicle_manual_poll()
145145
146146 // Check if we are in rattitude mode and the pilot is above the threshold on pitch
147147 if (_vcontrol_mode.flag_control_rattitude_enabled ) {
148- if (fabsf (_manual_control_setpoint.y ) > _param_fw_ratt_th.get ()
149- || fabsf (_manual_control_setpoint.x ) > _param_fw_ratt_th.get ()) {
148+ if (fabsf (_manual_control_setpoint.xyzr [ 1 ] ) > _param_fw_ratt_th.get ()
149+ || fabsf (_manual_control_setpoint.xyzr [ 0 ] ) > _param_fw_ratt_th.get ()) {
150150 _vcontrol_mode.flag_control_attitude_enabled = false ;
151151 }
152152 }
153153
154154 if (!_vcontrol_mode.flag_control_climb_rate_enabled &&
155155 !_vcontrol_mode.flag_control_offboard_enabled ) {
156- const float throttle = (_manual_control_setpoint.z + 1 .f ) * .5f ;
156+ const float throttle = (_manual_control_setpoint.xyzr [ 2 ] + 1 .f ) * .5f ;
157157
158158 if (_vcontrol_mode.flag_control_attitude_enabled ) {
159159 // STABILIZED mode generate the attitude setpoint from manual user inputs
160160
161- _att_sp.roll_body = _manual_control_setpoint.y * radians (_param_fw_man_r_max.get ()) + radians (_param_fw_rsp_off.get ());
161+ _att_sp.roll_body = _manual_control_setpoint.xyzr [1 ] * radians (_param_fw_man_r_max.get ())
162+ + radians (_param_fw_rsp_off.get ());
162163 _att_sp.roll_body = constrain (_att_sp.roll_body ,
163164 -radians (_param_fw_man_r_max.get ()), radians (_param_fw_man_r_max.get ()));
164165
165- _att_sp.pitch_body = -_manual_control_setpoint.x * radians (_param_fw_man_p_max.get ())
166+ _att_sp.pitch_body = -_manual_control_setpoint.xyzr [ 0 ] * radians (_param_fw_man_p_max.get ())
166167 + radians (_param_fw_psp_off.get ());
167168 _att_sp.pitch_body = constrain (_att_sp.pitch_body ,
168169 -radians (_param_fw_man_p_max.get ()), radians (_param_fw_man_p_max.get ()));
@@ -182,21 +183,21 @@ FixedwingAttitudeControl::vehicle_manual_poll()
182183
183184 // RATE mode we need to generate the rate setpoint from manual user inputs
184185 _rates_sp.timestamp = hrt_absolute_time ();
185- _rates_sp.roll = _manual_control_setpoint.y * radians (_param_fw_acro_x_max.get ());
186- _rates_sp.pitch = -_manual_control_setpoint.x * radians (_param_fw_acro_y_max.get ());
187- _rates_sp.yaw = _manual_control_setpoint.r * radians (_param_fw_acro_z_max.get ());
186+ _rates_sp.roll = _manual_control_setpoint.xyzr [ 1 ] * radians (_param_fw_acro_x_max.get ());
187+ _rates_sp.pitch = -_manual_control_setpoint.xyzr [ 0 ] * radians (_param_fw_acro_y_max.get ());
188+ _rates_sp.yaw = _manual_control_setpoint.xyzr [ 3 ] * radians (_param_fw_acro_z_max.get ());
188189 _rates_sp.thrust_body [0 ] = throttle;
189190
190191 _rate_sp_pub.publish (_rates_sp);
191192
192193 } else {
193194 /* manual/direct control */
194195 _actuators.control [actuator_controls_s::INDEX_ROLL] =
195- _manual_control_setpoint.y * _param_fw_man_r_sc.get () + _param_trim_roll.get ();
196+ _manual_control_setpoint.xyzr [ 1 ] * _param_fw_man_r_sc.get () + _param_trim_roll.get ();
196197 _actuators.control [actuator_controls_s::INDEX_PITCH] =
197- -_manual_control_setpoint.x * _param_fw_man_p_sc.get () + _param_trim_pitch.get ();
198+ -_manual_control_setpoint.xyzr [ 0 ] * _param_fw_man_p_sc.get () + _param_trim_pitch.get ();
198199 _actuators.control [actuator_controls_s::INDEX_YAW] =
199- _manual_control_setpoint.r * _param_fw_man_y_sc.get () + _param_trim_yaw.get ();
200+ _manual_control_setpoint.xyzr [ 3 ] * _param_fw_man_y_sc.get () + _param_trim_yaw.get ();
200201 _actuators.control [actuator_controls_s::INDEX_THROTTLE] = throttle;
201202 }
202203 }
@@ -552,7 +553,7 @@ void FixedwingAttitudeControl::Run()
552553
553554 /* add in manual rudder control in manual modes */
554555 if (_vcontrol_mode.flag_control_manual_enabled ) {
555- _actuators.control [actuator_controls_s::INDEX_YAW] += _manual_control_setpoint.r ;
556+ _actuators.control [actuator_controls_s::INDEX_YAW] += _manual_control_setpoint.xyzr [ 3 ] ;
556557 }
557558
558559 if (!PX4_ISFINITE (yaw_u)) {
0 commit comments