// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoutePoint {
    #[prost(message, optional, tag = "1")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(string, tag = "2")]
    pub id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "3")]
    pub properties: ::prost::alloc::vec::Vec<
        super::super::marti_common_msgs::msg::KeyValue,
    >,
}
impl ::prost::Name for RoutePoint {
    const NAME: &'static str = "RoutePoint";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.RoutePoint".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.RoutePoint".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Route {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub route_points: ::prost::alloc::vec::Vec<RoutePoint>,
    #[prost(message, repeated, tag = "3")]
    pub properties: ::prost::alloc::vec::Vec<
        super::super::marti_common_msgs::msg::KeyValue,
    >,
}
impl ::prost::Name for Route {
    const NAME: &'static str = "Route";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.Route".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.Route".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RoutePosition {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub route_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub id: ::prost::alloc::string::String,
    #[prost(float, tag = "4")]
    pub distance: f32,
}
impl ::prost::Name for RoutePosition {
    const NAME: &'static str = "RoutePosition";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.RoutePosition".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.RoutePosition".into()
    }
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct PathPoint {
    #[prost(double, tag = "1")]
    pub x: f64,
    #[prost(double, tag = "2")]
    pub y: f64,
    #[prost(float, tag = "3")]
    pub yaw: f32,
    #[prost(float, tag = "4")]
    pub speed: f32,
}
impl ::prost::Name for PathPoint {
    const NAME: &'static str = "PathPoint";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.PathPoint".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.PathPoint".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TeleopState {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, repeated, tag = "2")]
    pub teleop_signals: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for TeleopState {
    const NAME: &'static str = "TeleopState";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.TeleopState".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.TeleopState".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct PathPlanning {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "2")]
    pub segment_type: i32,
    #[prost(float, tag = "3")]
    pub length: f32,
    #[prost(float, tag = "4")]
    pub start_speed: f32,
    #[prost(float, tag = "5")]
    pub end_speed: f32,
    #[prost(float, tag = "6")]
    pub startx: f32,
    #[prost(float, tag = "7")]
    pub starty: f32,
    #[prost(float, tag = "8")]
    pub endx: f32,
    #[prost(float, tag = "9")]
    pub endy: f32,
    #[prost(float, tag = "10")]
    pub theta0: f32,
    #[prost(float, tag = "11")]
    pub a1: f32,
    #[prost(float, tag = "12")]
    pub a2: f32,
    #[prost(float, tag = "13")]
    pub k0: f32,
    #[prost(float, tag = "14")]
    pub c1: f32,
    #[prost(float, tag = "15")]
    pub c2: f32,
    #[prost(int32, tag = "16")]
    pub behavior: i32,
    #[prost(int32, tag = "17")]
    pub creep: i32,
    #[prost(int32, tag = "18")]
    pub acc: i32,
    #[prost(int32, tag = "19")]
    pub reverse: i32,
    #[prost(int32, tag = "20")]
    pub vehicle_track: i32,
    #[prost(bool, tag = "21")]
    pub transmitted: bool,
    #[prost(bool, tag = "22")]
    pub aux_transmitted: bool,
    #[prost(float, tag = "23")]
    pub theta_end: f32,
    #[prost(float, tag = "24")]
    pub k_end: f32,
    #[prost(int32, tag = "25")]
    pub seg_len: i32,
    #[prost(float, tag = "26")]
    pub speed_limit: f32,
    #[prost(float, tag = "27")]
    pub max_error: f32,
    #[prost(float, tag = "28")]
    pub max_smooth: f32,
    #[prost(float, tag = "29")]
    pub max_curv: f32,
    #[prost(int32, tag = "30")]
    pub possible_points: i32,
    #[prost(bool, tag = "31")]
    pub exit_segment: bool,
}
impl ::prost::Name for PathPlanning {
    const NAME: &'static str = "PathPlanning";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.PathPlanning".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.PathPlanning".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedObject {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(uint32, tag = "2")]
    pub id: u32,
    #[prost(message, optional, tag = "3")]
    pub pose: ::core::option::Option<
        super::super::geometry_msgs::msg::PoseWithCovariance,
    >,
    #[prost(message, optional, tag = "4")]
    pub velocity: ::core::option::Option<
        super::super::geometry_msgs::msg::TwistWithCovariance,
    >,
    #[prost(message, optional, tag = "5")]
    pub linear_acceleration: ::core::option::Option<
        super::super::geometry_msgs::msg::Vector3,
    >,
    #[prost(double, repeated, tag = "6")]
    pub linear_acceleration_covariance: ::prost::alloc::vec::Vec<f64>,
    #[prost(message, repeated, tag = "7")]
    pub polygon: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Point>,
    #[prost(float, tag = "8")]
    pub length: f32,
    #[prost(float, tag = "9")]
    pub length_quality: f32,
    #[prost(float, tag = "10")]
    pub width: f32,
    #[prost(float, tag = "11")]
    pub width_quality: f32,
    #[prost(uint32, tag = "12")]
    pub classification: u32,
    #[prost(float, tag = "13")]
    pub classification_quality: f32,
    #[prost(float, tag = "14")]
    pub existence_probability: f32,
    #[prost(message, optional, tag = "15")]
    pub age_duration: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
    #[prost(message, optional, tag = "16")]
    pub prediction_duration: ::core::option::Option<
        super::super::builtin_interfaces::msg::Duration,
    >,
    #[prost(bool, tag = "17")]
    pub active: bool,
}
impl ::prost::Name for TrackedObject {
    const NAME: &'static str = "TrackedObject";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.TrackedObject".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.TrackedObject".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteOffset {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub relative_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "3")]
    pub route_position: ::core::option::Option<RoutePosition>,
}
impl ::prost::Name for RouteOffset {
    const NAME: &'static str = "RouteOffset";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteOffset".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteOffset".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Wgs84Sample {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub odom: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(message, optional, tag = "3")]
    pub wgs84: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(double, repeated, tag = "4")]
    pub wgs84_covariance: ::prost::alloc::vec::Vec<f64>,
}
impl ::prost::Name for Wgs84Sample {
    const NAME: &'static str = "Wgs84Sample";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.Wgs84Sample".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.Wgs84Sample".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TrackedObjectArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub objects: ::prost::alloc::vec::Vec<TrackedObject>,
}
impl ::prost::Name for TrackedObjectArray {
    const NAME: &'static str = "TrackedObjectArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.TrackedObjectArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.TrackedObjectArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Obstacle {
    #[prost(string, tag = "1")]
    pub id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, repeated, tag = "3")]
    pub polygon: ::prost::alloc::vec::Vec<super::super::geometry_msgs::msg::Point>,
}
impl ::prost::Name for Obstacle {
    const NAME: &'static str = "Obstacle";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.Obstacle".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.Obstacle".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ObstacleArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub obstacles: ::prost::alloc::vec::Vec<Obstacle>,
}
impl ::prost::Name for ObstacleArray {
    const NAME: &'static str = "ObstacleArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.ObstacleArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.ObstacleArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GridMap {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, optional, tag = "2")]
    pub top_left: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(message, optional, tag = "3")]
    pub top_right: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(message, optional, tag = "4")]
    pub bottom_right: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(message, optional, tag = "5")]
    pub bottom_left: ::core::option::Option<super::super::geometry_msgs::msg::Point>,
    #[prost(string, repeated, tag = "6")]
    pub map_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, repeated, tag = "7")]
    pub map_data: ::prost::alloc::vec::Vec<super::super::sensor_msgs::msg::Image>,
}
impl ::prost::Name for GridMap {
    const NAME: &'static str = "GridMap";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.GridMap".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.GridMap".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Command {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, repeated, tag = "2")]
    pub startstop: ::prost::alloc::vec::Vec<i32>,
}
impl ::prost::Name for Command {
    const NAME: &'static str = "Command";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.Command".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.Command".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteSpeed {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(string, tag = "2")]
    pub id: ::prost::alloc::string::String,
    #[prost(float, tag = "3")]
    pub distance: f32,
    #[prost(float, tag = "4")]
    pub speed: f32,
}
impl ::prost::Name for RouteSpeed {
    const NAME: &'static str = "RouteSpeed";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteSpeed".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteSpeed".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteSpeedArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub speeds: ::prost::alloc::vec::Vec<RouteSpeed>,
}
impl ::prost::Name for RouteSpeedArray {
    const NAME: &'static str = "RouteSpeedArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteSpeedArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteSpeedArray".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LeadVehicle {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(float, tag = "2")]
    pub headway_distance: f32,
    #[prost(float, tag = "3")]
    pub speed: f32,
    #[prost(float, tag = "4")]
    pub heading: f32,
    #[prost(float, tag = "5")]
    pub x_pos: f32,
    #[prost(float, tag = "6")]
    pub y_pos: f32,
    #[prost(int32, tag = "7")]
    pub classification: i32,
    #[prost(int32, tag = "8")]
    pub r#type: i32,
}
impl ::prost::Name for LeadVehicle {
    const NAME: &'static str = "LeadVehicle";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.LeadVehicle".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.LeadVehicle".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Path {
    #[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<PathPoint>,
    #[prost(bool, tag = "3")]
    pub in_reverse: bool,
}
impl ::prost::Name for Path {
    const NAME: &'static str = "Path";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.Path".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.Path".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct VehicleControl {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(int32, tag = "2")]
    pub engine: i32,
    #[prost(int32, tag = "3")]
    pub gear: i32,
    #[prost(double, tag = "4")]
    pub steering: f64,
    #[prost(double, tag = "5")]
    pub throttle: f64,
    #[prost(double, tag = "6")]
    pub brake: f64,
    #[prost(int32, tag = "7")]
    pub steering_position: i32,
    #[prost(int32, tag = "8")]
    pub gb_position: i32,
}
impl ::prost::Name for VehicleControl {
    const NAME: &'static str = "VehicleControl";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.VehicleControl".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.VehicleControl".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RouteArray {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<super::super::std_msgs::msg::Header>,
    #[prost(message, repeated, tag = "2")]
    pub routes: ::prost::alloc::vec::Vec<Route>,
    #[prost(message, repeated, tag = "3")]
    pub properties: ::prost::alloc::vec::Vec<
        super::super::marti_common_msgs::msg::KeyValue,
    >,
}
impl ::prost::Name for RouteArray {
    const NAME: &'static str = "RouteArray";
    const PACKAGE: &'static str = "make87_messages_ros2.rolling.marti_nav_msgs.msg";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteArray".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.rolling.marti_nav_msgs.msg.RouteArray".into()
    }
}
