From eceec6c8612ce39839946c43ec31ff8ae4d6c88f Mon Sep 17 00:00:00 2001 From: pfilimonov Date: Tue, 28 Apr 2026 19:16:39 -0300 Subject: [PATCH] fix(gimbal): add YAW_IN_VEHICLE/EARTH_FRAME flags to GIMBAL_DEVICE_SET_ATTITUDE (#27198) --- msg/GimbalDeviceSetAttitude.msg | 2 ++ src/modules/gimbal/output_mavlink.cpp | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/msg/GimbalDeviceSetAttitude.msg b/msg/GimbalDeviceSetAttitude.msg index f224a23441..ad8622bc01 100644 --- a/msg/GimbalDeviceSetAttitude.msg +++ b/msg/GimbalDeviceSetAttitude.msg @@ -9,6 +9,8 @@ uint32 GIMBAL_DEVICE_FLAGS_NEUTRAL = 2 uint32 GIMBAL_DEVICE_FLAGS_ROLL_LOCK = 4 uint32 GIMBAL_DEVICE_FLAGS_PITCH_LOCK = 8 uint32 GIMBAL_DEVICE_FLAGS_YAW_LOCK = 16 +uint32 GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME = 32 +uint32 GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME = 64 float32[4] q diff --git a/src/modules/gimbal/output_mavlink.cpp b/src/modules/gimbal/output_mavlink.cpp index c3ceaab678..f51632da96 100644 --- a/src/modules/gimbal/output_mavlink.cpp +++ b/src/modules/gimbal/output_mavlink.cpp @@ -245,6 +245,10 @@ void OutputMavlinkV2::_publish_gimbal_device_set_attitude() if (_absolute_angle[2]) { set_attitude.flags |= gimbal_device_set_attitude_s::GIMBAL_DEVICE_FLAGS_YAW_LOCK; + set_attitude.flags |= gimbal_device_set_attitude_s::GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME; + + } else { + set_attitude.flags |= gimbal_device_set_attitude_s::GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME; } _gimbal_device_set_attitude_pub.publish(set_attitude);