pub struct GIMBAL_DEVICE_ATTITUDE_STATUS_DATA {
pub time_boot_ms: u32,
pub q: [f32; 4],
pub angular_velocity_x: f32,
pub angular_velocity_y: f32,
pub angular_velocity_z: f32,
pub failure_flags: GimbalDeviceErrorFlags,
pub flags: GimbalDeviceFlags,
pub target_system: u8,
pub target_component: u8,
pub delta_yaw: f32,
pub delta_yaw_velocity: f32,
}
asluav
only.Expand description
id: 285 Message reporting the status of a gimbal device. This message should be broadcast by a gimbal device component at a low regular rate (e.g. 5 Hz). For the angles encoded in the quaternion and the angular velocities holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME is set, then they are relative to the vehicle heading (vehicle frame). If the flag GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME is set, then they are relative to absolute North (earth frame). If neither of these flags are set, then (for backwards compatibility) it holds: If the flag GIMBAL_DEVICE_FLAGS_YAW_LOCK is set, then they are relative to absolute North (earth frame), else they are relative to the vehicle heading (vehicle frame). Other conditions of the flags are not allowed. The quaternion and angular velocities in the other frame can be calculated from delta_yaw and delta_yaw_velocity as q_earth = q_delta_yaw * q_vehicle and w_earth = w_delta_yaw_velocity + w_vehicle (if not NaN). If neither the GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME nor the GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME flag is set, then (for backwards compatibility) the data in the delta_yaw and delta_yaw_velocity fields are to be ignored. New implementations should always set either GIMBAL_DEVICE_FLAGS_YAW_IN_VEHICLE_FRAME or GIMBAL_DEVICE_FLAGS_YAW_IN_EARTH_FRAME, and always should set delta_yaw and delta_yaw_velocity either to the proper value or NaN..
Fields§
§time_boot_ms: u32
Timestamp (time since system boot)..
q: [f32; 4]
Quaternion components, w, x, y, z (1 0 0 0 is the null-rotation). The frame is described in the message description..
angular_velocity_x: f32
X component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN if unknown..
angular_velocity_y: f32
Y component of angular velocity (positive: pitching up). The frame is described in the message description. NaN if unknown..
angular_velocity_z: f32
Z component of angular velocity (positive: yawing to the right). The frame is described in the message description. NaN if unknown..
failure_flags: GimbalDeviceErrorFlags
Failure flags (0 for no failure).
flags: GimbalDeviceFlags
Current gimbal flags set..
target_system: u8
System ID.
target_component: u8
Component ID.
delta_yaw: f32
Yaw angle relating the quaternions in earth and body frames (see message description). NaN if unknown..
delta_yaw_velocity: f32
Yaw angular velocity relating the angular velocities in earth and body frames (see message description). NaN if unknown..
Implementations§
source§impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
pub const ENCODED_LEN: usize = 48usize
pub const DEFAULT: Self = _
Trait Implementations§
source§impl Clone for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl Clone for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
source§fn clone(&self) -> GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
fn clone(&self) -> GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'de> Deserialize<'de> for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl<'de> Deserialize<'de> for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
source§impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl MessageData for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
const ID: u32 = 285u32
const NAME: &'static str = "GIMBAL_DEVICE_ATTITUDE_STATUS"
const EXTRA_CRC: u8 = 137u8
const ENCODED_LEN: usize = 48usize
type Message = MavMessage
fn deser(_version: MavlinkVersion, __input: &[u8]) -> Result<Self, ParserError>
fn ser(&self, version: MavlinkVersion, bytes: &mut [u8]) -> usize
source§impl PartialEq for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl PartialEq for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
source§fn eq(&self, other: &GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) -> bool
fn eq(&self, other: &GIMBAL_DEVICE_ATTITUDE_STATUS_DATA) -> bool
self
and other
values to be equal, and is used by ==
.impl StructuralPartialEq for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
Auto Trait Implementations§
impl Freeze for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl RefUnwindSafe for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl Send for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl Sync for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl Unpin for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
impl UnwindSafe for GIMBAL_DEVICE_ATTITUDE_STATUS_DATA
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)