// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Imu {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub orientation: ::core::option::Option<
        super::super::geometry_msgs::msg::Quaternion,
    >,
    #[prost(double, repeated, tag = "3")]
    pub orientation_covariance: ::prost::alloc::vec::Vec<f64>,
    #[prost(message, optional, tag = "4")]
    pub angular_velocity: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, repeated, tag = "5")]
    pub angular_velocity_covariance: ::prost::alloc::vec::Vec<f64>,
    #[prost(message, optional, tag = "6")]
    pub linear_acceleration: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, repeated, tag = "7")]
    pub linear_acceleration_covariance: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for Imu {
    const NAME: &'static str = "Imu";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.Imu".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.Imu".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MagneticField {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub magnetic_field: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, repeated, tag = "3")]
    pub magnetic_field_covariance: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for MagneticField {
    const NAME: &'static str = "MagneticField";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.MagneticField".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.MagneticField".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PointField {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(uint32, tag = "2")]
    pub offset: u32,
    #[prost(uint32, tag = "3")]
    pub datatype: u32,
    #[prost(uint32, tag = "4")]
    pub count: u32,
}
impl ::prost::Name for PointField {
    const NAME: &'static str = "PointField";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.PointField".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.PointField".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PointCloud2 {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub height: u32,
    #[prost(uint32, tag = "3")]
    pub width: u32,
    #[prost(message, repeated, tag = "4")]
    pub fields: ::prost::alloc::vec::Vec<PointField>,
    #[prost(bool, tag = "5")]
    pub is_bigendian: bool,
    #[prost(uint32, tag = "6")]
    pub point_step: u32,
    #[prost(uint32, tag = "7")]
    pub row_step: u32,
    #[prost(uint32, repeated, tag = "8")]
    pub data: ::prost::alloc::vec::Vec<u32>,
    #[prost(bool, tag = "9")]
    pub is_dense: bool,
}
impl ::prost::Name for PointCloud2 {
    const NAME: &'static str = "PointCloud2";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.PointCloud2".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.PointCloud2".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Image {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub height: u32,
    #[prost(uint32, tag = "3")]
    pub width: u32,
    #[prost(string, tag = "4")]
    pub encoding: ::prost::alloc::string::String,
    #[prost(uint32, tag = "5")]
    pub is_bigendian: u32,
    #[prost(uint32, tag = "6")]
    pub step: u32,
    #[prost(uint32, repeated, tag = "7")]
    pub data: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for Image {
    const NAME: &'static str = "Image";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.Image".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.Image".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct RegionOfInterest {
    #[prost(uint32, tag = "1")]
    pub x_offset: u32,
    #[prost(uint32, tag = "2")]
    pub y_offset: u32,
    #[prost(uint32, tag = "3")]
    pub height: u32,
    #[prost(uint32, tag = "4")]
    pub width: u32,
    #[prost(bool, tag = "5")]
    pub do_rectify: bool,
}
impl ::prost::Name for RegionOfInterest {
    const NAME: &'static str = "RegionOfInterest";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.RegionOfInterest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.RegionOfInterest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CameraInfo {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub height: u32,
    #[prost(uint32, tag = "3")]
    pub width: u32,
    #[prost(string, tag = "4")]
    pub distortion_model: ::prost::alloc::string::String,
    #[prost(double, repeated, tag = "5")]
    pub d: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "6")]
    pub k: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "7")]
    pub r: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "8")]
    pub p: ::prost::alloc::vec::Vec<f64>,
    #[prost(uint32, tag = "9")]
    pub binning_x: u32,
    #[prost(uint32, tag = "10")]
    pub binning_y: u32,
    #[prost(message, optional, tag = "11")]
    pub roi: ::core::option::Option<RegionOfInterest>,
}
impl ::prost::Name for CameraInfo {
    const NAME: &'static str = "CameraInfo";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.CameraInfo".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.CameraInfo".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CompressedImage {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub format: ::prost::alloc::string::String,
    #[prost(uint32, repeated, tag = "3")]
    pub data: ::prost::alloc::vec::Vec<u32>,
}
impl ::prost::Name for CompressedImage {
    const NAME: &'static str = "CompressedImage";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.CompressedImage".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.CompressedImage".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LaserScan {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub angle_min: f32,
    #[prost(float, tag = "3")]
    pub angle_max: f32,
    #[prost(float, tag = "4")]
    pub angle_increment: f32,
    #[prost(float, tag = "5")]
    pub time_increment: f32,
    #[prost(float, tag = "6")]
    pub scan_time: f32,
    #[prost(float, tag = "7")]
    pub range_min: f32,
    #[prost(float, tag = "8")]
    pub range_max: f32,
    #[prost(float, repeated, tag = "9")]
    pub ranges: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "10")]
    pub intensities: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for LaserScan {
    const NAME: &'static str = "LaserScan";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.LaserScan".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.LaserScan".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatteryState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub voltage: f32,
    #[prost(float, tag = "3")]
    pub temperature: f32,
    #[prost(float, tag = "4")]
    pub current: f32,
    #[prost(float, tag = "5")]
    pub charge: f32,
    #[prost(float, tag = "6")]
    pub capacity: f32,
    #[prost(float, tag = "7")]
    pub design_capacity: f32,
    #[prost(float, tag = "8")]
    pub percentage: f32,
    #[prost(uint32, tag = "9")]
    pub power_supply_status: u32,
    #[prost(uint32, tag = "10")]
    pub power_supply_health: u32,
    #[prost(uint32, tag = "11")]
    pub power_supply_technology: u32,
    #[prost(bool, tag = "12")]
    pub present: bool,
    #[prost(float, repeated, tag = "13")]
    pub cell_voltage: ::prost::alloc::vec::Vec<f32>,
    #[prost(float, repeated, tag = "14")]
    pub cell_temperature: ::prost::alloc::vec::Vec<f32>,
    #[prost(string, tag = "15")]
    pub location: ::prost::alloc::string::String,
    #[prost(string, tag = "16")]
    pub serial_number: ::prost::alloc::string::String,
}
impl ::prost::Name for BatteryState {
    const NAME: &'static str = "BatteryState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.BatteryState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.BatteryState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ChannelFloat32 {
    #[prost(string, tag = "1")]
    pub name: ::prost::alloc::string::String,
    #[prost(float, repeated, tag = "2")]
    pub values: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for ChannelFloat32 {
    const NAME: &'static str = "ChannelFloat32";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.ChannelFloat32".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.ChannelFloat32".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PointCloud {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub points: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Point32>,
    #[prost(message, repeated, tag = "3")]
    pub channels: ::prost::alloc::vec::Vec<ChannelFloat32>,
}
impl ::prost::Name for PointCloud {
    const NAME: &'static str = "PointCloud";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.PointCloud".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.PointCloud".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RelativeHumidity {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub relative_humidity: f64,
    #[prost(double, tag = "3")]
    pub variance: f64,
}
impl ::prost::Name for RelativeHumidity {
    const NAME: &'static str = "RelativeHumidity";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.RelativeHumidity".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.RelativeHumidity".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiDofJointState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, repeated, tag = "2")]
    pub joint_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "3")]
    pub transforms: ::prost::alloc::vec::Vec<
        super::super::geometry_msgs::msg::Transform,
    >,
    #[prost(message, repeated, tag = "4")]
    pub twist: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Twist>,
    #[prost(message, repeated, tag = "5")]
    pub wrench: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Wrench>,
}
impl ::prost::Name for MultiDofJointState {
    const NAME: &'static str = "MultiDOFJointState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.MultiDOFJointState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.MultiDOFJointState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimeReference {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub time_ref: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(string, tag = "3")]
    pub source: ::prost::alloc::string::String,
}
impl ::prost::Name for TimeReference {
    const NAME: &'static str = "TimeReference";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.TimeReference".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.TimeReference".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LaserEcho {
    #[prost(float, repeated, tag = "1")]
    pub echoes: ::prost::alloc::vec::Vec<f32>,
}
impl ::prost::Name for LaserEcho {
    const NAME: &'static str = "LaserEcho";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.LaserEcho".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.LaserEcho".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MultiEchoLaserScan {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub angle_min: f32,
    #[prost(float, tag = "3")]
    pub angle_max: f32,
    #[prost(float, tag = "4")]
    pub angle_increment: f32,
    #[prost(float, tag = "5")]
    pub time_increment: f32,
    #[prost(float, tag = "6")]
    pub scan_time: f32,
    #[prost(float, tag = "7")]
    pub range_min: f32,
    #[prost(float, tag = "8")]
    pub range_max: f32,
    #[prost(message, repeated, tag = "9")]
    pub ranges: ::prost::alloc::vec::Vec<LaserEcho>,
    #[prost(message, repeated, tag = "10")]
    pub intensities: ::prost::alloc::vec::Vec<LaserEcho>,
}
impl ::prost::Name for MultiEchoLaserScan {
    const NAME: &'static str = "MultiEchoLaserScan";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.MultiEchoLaserScan".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.MultiEchoLaserScan".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FluidPressure {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub fluid_pressure: f64,
    #[prost(double, tag = "3")]
    pub variance: f64,
}
impl ::prost::Name for FluidPressure {
    const NAME: &'static str = "FluidPressure";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.FluidPressure".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.FluidPressure".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Temperature {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub temperature: f64,
    #[prost(double, tag = "3")]
    pub variance: f64,
}
impl ::prost::Name for Temperature {
    const NAME: &'static str = "Temperature";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.Temperature".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.Temperature".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Illuminance {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(double, tag = "2")]
    pub illuminance: f64,
    #[prost(double, tag = "3")]
    pub variance: f64,
}
impl ::prost::Name for Illuminance {
    const NAME: &'static str = "Illuminance";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.Illuminance".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.Illuminance".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Range {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub radiation_type: u32,
    #[prost(float, tag = "3")]
    pub field_of_view: f32,
    #[prost(float, tag = "4")]
    pub min_range: f32,
    #[prost(float, tag = "5")]
    pub max_range: f32,
    #[prost(float, tag = "6")]
    pub range: f32,
    #[prost(float, tag = "7")]
    pub variance: f32,
}
impl ::prost::Name for Range {
    const NAME: &'static str = "Range";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.Range".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.Range".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Joy {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, repeated, tag = "2")]
    pub axes: ::prost::alloc::vec::Vec<f32>,
    #[prost(int32, repeated, tag = "3")]
    pub buttons: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for Joy {
    const NAME: &'static str = "Joy";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.Joy".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.Joy".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct NavSatStatus {
    #[prost(int32, tag = "1")]
    pub status: i32,
    #[prost(uint32, tag = "2")]
    pub service: u32,
}
impl ::prost::Name for NavSatStatus {
    const NAME: &'static str = "NavSatStatus";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.NavSatStatus".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.NavSatStatus".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NavSatFix {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub status: ::core::option::Option<NavSatStatus>,
    #[prost(double, tag = "3")]
    pub latitude: f64,
    #[prost(double, tag = "4")]
    pub longitude: f64,
    #[prost(double, tag = "5")]
    pub altitude: f64,
    #[prost(double, repeated, tag = "6")]
    pub position_covariance: ::prost::alloc::vec::Vec<f64>,
    #[prost(uint32, tag = "7")]
    pub position_covariance_type: u32,
}
impl ::prost::Name for NavSatFix {
    const NAME: &'static str = "NavSatFix";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.NavSatFix".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.NavSatFix".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct JoyFeedback {
    #[prost(uint32, tag = "1")]
    pub r#type: u32,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(float, tag = "3")]
    pub intensity: f32,
}
impl ::prost::Name for JoyFeedback {
    const NAME: &'static str = "JoyFeedback";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.JoyFeedback".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.JoyFeedback".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JointState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, repeated, tag = "2")]
    pub name: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(double, repeated, tag = "3")]
    pub position: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "4")]
    pub velocity: ::prost::alloc::vec::Vec<f64>,
    #[prost(double, repeated, tag = "5")]
    pub effort: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for JointState {
    const NAME: &'static str = "JointState";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.JointState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.JointState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct JoyFeedbackArray {
    #[prost(message, repeated, tag = "1")]
    pub array: ::prost::alloc::vec::Vec<JoyFeedback>,
}
impl ::prost::Name for JoyFeedbackArray {
    const NAME: &'static str = "JoyFeedbackArray";
    const PACKAGE: &'static str = "make87_messages_ros2.jazzy.sensor_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.jazzy.sensor_msgs.msg.JoyFeedbackArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.jazzy.sensor_msgs.msg.JoyFeedbackArray".into()
    }
}
