pub struct GimbalDeviceAttitudeStatus {
pub target_system: u8,
pub target_component: u8,
pub time_boot_ms: u32,
pub flags: GimbalDeviceFlags,
pub q: [f32; 4],
pub angular_velocity_x: f32,
pub angular_velocity_y: f32,
pub angular_velocity_z: f32,
pub failure_flags: GimbalDeviceErrorFlags,
pub delta_yaw: f32,
pub delta_yaw_velocity: f32,
pub gimbal_device_id: u8,
}Expand description
MAVLink GIMBAL_DEVICE_ATTITUDE_STATUS message.
The minimum supported MAVLink version is MAVLink 2.
§Description
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.
§Encoding/Decoding
Message encoding/decoding are provided by implementing core::convert::TryFrom<Payload> for
GimbalDeviceAttitudeStatus (encoding) and [IntoPayload] (decoding) traits.
These traits are implemented by Message proc macro.
Fields§
§target_system: u8MAVLink field target_system.
System ID
target_component: u8MAVLink field target_component.
Component ID
time_boot_ms: u32MAVLink field time_boot_ms.
Timestamp (time since system boot).
flags: GimbalDeviceFlagsMAVLink field flags.
Current gimbal flags set.
q: [f32; 4]MAVLink field q.
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: f32MAVLink field angular_velocity_x.
X component of angular velocity (positive: rolling to the right). The frame is described in the message description. NaN if unknown.
angular_velocity_y: f32MAVLink field angular_velocity_y.
Y component of angular velocity (positive: pitching up). The frame is described in the message description. NaN if unknown.
angular_velocity_z: f32MAVLink field angular_velocity_z.
Z component of angular velocity (positive: yawing to the right). The frame is described in the message description. NaN if unknown.
failure_flags: GimbalDeviceErrorFlagsMAVLink field failure_flags.
Failure flags (0 for no failure)
delta_yaw: f32MAVLink field delta_yaw.
Yaw angle relating the quaternions in earth and body frames (see message description). NaN if unknown.
delta_yaw_velocity: f32MAVLink field delta_yaw_velocity.
Yaw angular velocity relating the angular velocities in earth and body frames (see message description). NaN if unknown.
gimbal_device_id: u8MAVLink field gimbal_device_id.
This field is to be used if the gimbal manager and the gimbal device are the same component and hence have the same component ID. This field is then set a number between 1-6. If the component ID is separate, this field is not required and must be set to 0.
Implementations§
Source§impl GimbalDeviceAttitudeStatus
impl GimbalDeviceAttitudeStatus
Sourcepub const fn spec() -> MessageInfo
pub const fn spec() -> MessageInfo
Returns specification for this message.
Sourcepub const fn message_id() -> u32
pub const fn message_id() -> u32
Message ID.
Sourcepub const fn min_supported_mavlink_version() -> MavLinkVersion
pub const fn min_supported_mavlink_version() -> MavLinkVersion
Minimum supported MAVLink version for this message.
Trait Implementations§
Source§impl Clone for GimbalDeviceAttitudeStatus
impl Clone for GimbalDeviceAttitudeStatus
Source§fn clone(&self) -> GimbalDeviceAttitudeStatus
fn clone(&self) -> GimbalDeviceAttitudeStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for GimbalDeviceAttitudeStatus
impl Debug for GimbalDeviceAttitudeStatus
Source§impl Default for GimbalDeviceAttitudeStatus
impl Default for GimbalDeviceAttitudeStatus
Source§fn default() -> GimbalDeviceAttitudeStatus
fn default() -> GimbalDeviceAttitudeStatus
Source§impl<'de> Deserialize<'de> for GimbalDeviceAttitudeStatus
impl<'de> Deserialize<'de> for GimbalDeviceAttitudeStatus
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<GimbalDeviceAttitudeStatus, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<GimbalDeviceAttitudeStatus, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<GimbalDeviceAttitudeStatus> for Common
impl From<GimbalDeviceAttitudeStatus> for Common
Source§fn from(value: GimbalDeviceAttitudeStatus) -> Common
fn from(value: GimbalDeviceAttitudeStatus) -> Common
Source§impl MessageSpecStatic for GimbalDeviceAttitudeStatus
impl MessageSpecStatic for GimbalDeviceAttitudeStatus
Source§fn spec() -> MessageInfo
fn spec() -> MessageInfo
Source§fn message_id() -> u32
fn message_id() -> u32
ID.Source§fn min_supported_mavlink_version() -> MavLinkVersion
fn min_supported_mavlink_version() -> MavLinkVersion
Source§impl NamedType for GimbalDeviceAttitudeStatus
impl NamedType for GimbalDeviceAttitudeStatus
fn sid() -> SpectaID
Source§fn named_data_type(
type_map: &mut TypeCollection,
generics: &[DataType],
) -> NamedDataType
fn named_data_type( type_map: &mut TypeCollection, generics: &[DataType], ) -> NamedDataType
Source§fn definition_named_data_type(type_map: &mut TypeCollection) -> NamedDataType
fn definition_named_data_type(type_map: &mut TypeCollection) -> NamedDataType
Source§impl Serialize for GimbalDeviceAttitudeStatus
impl Serialize for GimbalDeviceAttitudeStatus
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Source§impl TryFrom<&Payload> for GimbalDeviceAttitudeStatus
impl TryFrom<&Payload> for GimbalDeviceAttitudeStatus
Source§impl Type for GimbalDeviceAttitudeStatus
impl Type for GimbalDeviceAttitudeStatus
Source§fn inline(type_map: &mut TypeCollection, generics: Generics<'_>) -> DataType
fn inline(type_map: &mut TypeCollection, generics: Generics<'_>) -> DataType
Source§fn reference(type_map: &mut TypeCollection, generics: &[DataType]) -> Reference
fn reference(type_map: &mut TypeCollection, generics: &[DataType]) -> Reference
definition will be put into the type map.