From 4c4bcc5fdbc17ca1a29877839f8c529cb1be20f8 Mon Sep 17 00:00:00 2001 From: JaeyoungLim Date: Thu, 20 Jun 2019 17:17:32 +0200 Subject: [PATCH] Mavlink: Fill in thrust field correctly for offboard rates setpoints on fixed wing (#12311) * Fill in thrust field for rates sp --- src/modules/mavlink/mavlink_receiver.cpp | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/modules/mavlink/mavlink_receiver.cpp b/src/modules/mavlink/mavlink_receiver.cpp index f58e8c1eb9..1248afb84a 100644 --- a/src/modules/mavlink/mavlink_receiver.cpp +++ b/src/modules/mavlink/mavlink_receiver.cpp @@ -1419,7 +1419,27 @@ MavlinkReceiver::handle_message_set_attitude_target(mavlink_message_t *msg) } if (!_offboard_control_mode.ignore_thrust) { // dont't overwrite thrust if it's invalid - rates_sp.thrust_body[2] = -set_attitude_target.thrust; + switch (_mavlink->get_system_type()) { + case MAV_TYPE_GENERIC: + break; + + case MAV_TYPE_FIXED_WING: + rates_sp.thrust_body[0] = set_attitude_target.thrust; + break; + + case MAV_TYPE_QUADROTOR: + case MAV_TYPE_HEXAROTOR: + case MAV_TYPE_OCTOROTOR: + case MAV_TYPE_TRICOPTER: + case MAV_TYPE_HELICOPTER: + rates_sp.thrust_body[2] = -set_attitude_target.thrust; + break; + + case MAV_TYPE_GROUND_ROVER: + rates_sp.thrust_body[0] = set_attitude_target.thrust; + break; + } + } if (_rates_sp_pub == nullptr) {