// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandEyeCalibrationTriggerRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
}
impl ::prost::Name for HandEyeCalibrationTriggerRequest {
    const NAME: &'static str = "HandEyeCalibrationTriggerRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationTriggerRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationTriggerRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandEyeCalibrationTriggerResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub success: bool,
    #[prost(int32, tag = "3")]
    pub status: i32,
    #[prost(string, tag = "4")]
    pub message: ::prost::alloc::string::String,
}
impl ::prost::Name for HandEyeCalibrationTriggerResponse {
    const NAME: &'static str = "HandEyeCalibrationTriggerResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationTriggerResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationTriggerResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetHandEyeCalibrationRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(bool, tag = "3")]
    pub robot_mounted: bool,
}
impl ::prost::Name for SetHandEyeCalibrationRequest {
    const NAME: &'static str = "SetHandEyeCalibrationRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetHandEyeCalibrationResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub success: bool,
    #[prost(int32, tag = "3")]
    pub status: i32,
    #[prost(string, tag = "4")]
    pub message: ::prost::alloc::string::String,
}
impl ::prost::Name for SetHandEyeCalibrationResponse {
    const NAME: &'static str = "SetHandEyeCalibrationResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectLoadCarriersRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub region_of_interest_id: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub region_of_interest_2d_id: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "5")]
    pub load_carrier_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "6")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for DetectLoadCarriersRequest {
    const NAME: &'static str = "DetectLoadCarriersRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectLoadCarriersRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectLoadCarriersRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectLoadCarriersResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrier>,
    #[prost(message, optional, tag = "4")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DetectLoadCarriersResponse {
    const NAME: &'static str = "DetectLoadCarriersResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectLoadCarriersResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectLoadCarriersResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SilhouetteMatchDetectObjectRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub object_to_detect: ::core::option::Option<super::msg::SilhouetteMatchObject>,
    #[prost(double, tag = "3")]
    pub offset: f64,
    #[prost(string, tag = "4")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(string, tag = "6")]
    pub load_carrier_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "7")]
    pub collision_detection: ::core::option::Option<super::msg::CollisionDetection>,
    #[prost(bool, tag = "8")]
    pub object_plane_detection: bool,
}
impl ::prost::Name for SilhouetteMatchDetectObjectRequest {
    const NAME: &'static str = "SilhouetteMatchDetectObjectRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SilhouetteMatchDetectObjectRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SilhouetteMatchDetectObjectRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SilhouetteMatchDetectObjectResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(string, tag = "3")]
    pub object_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag = "4")]
    pub matches: ::prost::alloc::vec::Vec<super::msg::Match>,
    #[prost(message, repeated, tag = "5")]
    pub grasps: ::prost::alloc::vec::Vec<super::msg::Grasp>,
    #[prost(message, repeated, tag = "6")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrier>,
    #[prost(message, optional, tag = "7")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for SilhouetteMatchDetectObjectResponse {
    const NAME: &'static str = "SilhouetteMatchDetectObjectResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SilhouetteMatchDetectObjectResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SilhouetteMatchDetectObjectResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLoadCarrierRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub load_carrier: ::core::option::Option<super::msg::LoadCarrierModel>,
}
impl ::prost::Name for SetLoadCarrierRequest {
    const NAME: &'static str = "SetLoadCarrierRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetLoadCarrierRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetLoadCarrierRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetLoadCarrierResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for SetLoadCarrierResponse {
    const NAME: &'static str = "SetLoadCarrierResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetLoadCarrierResponse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetLoadCarrierResponse".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectItemsRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub region_of_interest_id: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub load_carrier_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub load_carrier_compartment: ::core::option::Option<super::msg::Compartment>,
    #[prost(message, repeated, tag = "6")]
    pub item_models: ::prost::alloc::vec::Vec<super::msg::ItemModel>,
    #[prost(message, optional, tag = "7")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for DetectItemsRequest {
    const NAME: &'static str = "DetectItemsRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectItemsRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectItemsRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectItemsResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub items: ::prost::alloc::vec::Vec<super::msg::Item>,
    #[prost(message, repeated, tag = "4")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrier>,
    #[prost(message, optional, tag = "5")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DetectItemsResponse {
    const NAME: &'static str = "DetectItemsResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectItemsResponse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectItemsResponse".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CadMatchDetectObjectRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub template_id: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub region_of_interest_id: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub load_carrier_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "6")]
    pub load_carrier_compartment: ::core::option::Option<super::msg::Compartment>,
    #[prost(message, optional, tag = "7")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "8")]
    pub collision_detection: ::core::option::Option<super::msg::CollisionDetection>,
    #[prost(string, repeated, tag = "9")]
    pub pose_prior_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, tag = "10")]
    pub data_acquisition_mode: ::prost::alloc::string::String,
}
impl ::prost::Name for CadMatchDetectObjectRequest {
    const NAME: &'static str = "CadMatchDetectObjectRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.CadMatchDetectObjectRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.CadMatchDetectObjectRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CadMatchDetectObjectResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub matches: ::prost::alloc::vec::Vec<super::msg::Match>,
    #[prost(message, repeated, tag = "4")]
    pub grasps: ::prost::alloc::vec::Vec<super::msg::Grasp>,
    #[prost(message, repeated, tag = "5")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrier>,
    #[prost(message, optional, tag = "6")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for CadMatchDetectObjectResponse {
    const NAME: &'static str = "CadMatchDetectObjectResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.CadMatchDetectObjectResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.CadMatchDetectObjectResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteLoadCarriersRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, repeated, tag = "2")]
    pub load_carrier_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for DeleteLoadCarriersRequest {
    const NAME: &'static str = "DeleteLoadCarriersRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteLoadCarriersRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteLoadCarriersRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteLoadCarriersResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DeleteLoadCarriersResponse {
    const NAME: &'static str = "DeleteLoadCarriersResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteLoadCarriersResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteLoadCarriersResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetHandEyeCalibrationPoseRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(int32, tag = "2")]
    pub slot: i32,
    #[prost(message, optional, tag = "3")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for SetHandEyeCalibrationPoseRequest {
    const NAME: &'static str = "SetHandEyeCalibrationPoseRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationPoseRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationPoseRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetHandEyeCalibrationPoseResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub success: bool,
    #[prost(int32, tag = "3")]
    pub status: i32,
    #[prost(string, tag = "4")]
    pub message: ::prost::alloc::string::String,
}
impl ::prost::Name for SetHandEyeCalibrationPoseResponse {
    const NAME: &'static str = "SetHandEyeCalibrationPoseResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationPoseResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetHandEyeCalibrationPoseResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetRegionOfInterest2DRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub region_of_interest_2d: ::core::option::Option<super::msg::RegionOfInterest2D>,
}
impl ::prost::Name for SetRegionOfInterest2DRequest {
    const NAME: &'static str = "SetRegionOfInterest2DRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest2DRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest2DRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetRegionOfInterest2DResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for SetRegionOfInterest2DResponse {
    const NAME: &'static str = "SetRegionOfInterest2DResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest2DResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest2DResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ComputeGraspsRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub region_of_interest_id: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub load_carrier_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub load_carrier_compartment: ::core::option::Option<super::msg::Compartment>,
    #[prost(message, repeated, tag = "6")]
    pub item_models: ::prost::alloc::vec::Vec<super::msg::ItemModel>,
    #[prost(double, tag = "7")]
    pub suction_surface_length: f64,
    #[prost(double, tag = "8")]
    pub suction_surface_width: f64,
    #[prost(message, optional, tag = "9")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "10")]
    pub collision_detection: ::core::option::Option<super::msg::CollisionDetection>,
}
impl ::prost::Name for ComputeGraspsRequest {
    const NAME: &'static str = "ComputeGraspsRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.ComputeGraspsRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.ComputeGraspsRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ComputeGraspsResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub items: ::prost::alloc::vec::Vec<super::msg::Item>,
    #[prost(message, repeated, tag = "4")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrier>,
    #[prost(message, repeated, tag = "5")]
    pub grasps: ::prost::alloc::vec::Vec<super::msg::SuctionGrasp>,
    #[prost(message, optional, tag = "6")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for ComputeGraspsResponse {
    const NAME: &'static str = "ComputeGraspsResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.ComputeGraspsResponse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.ComputeGraspsResponse".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandEyeCalibrationRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
}
impl ::prost::Name for HandEyeCalibrationRequest {
    const NAME: &'static str = "HandEyeCalibrationRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct HandEyeCalibrationResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(bool, tag = "2")]
    pub success: bool,
    #[prost(int32, tag = "3")]
    pub status: i32,
    #[prost(string, tag = "4")]
    pub message: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "5")]
    pub pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(double, tag = "6")]
    pub error: f64,
    #[prost(double, tag = "7")]
    pub translation_error_meter: f64,
    #[prost(double, tag = "8")]
    pub rotation_error_degree: f64,
    #[prost(bool, tag = "9")]
    pub robot_mounted: bool,
}
impl ::prost::Name for HandEyeCalibrationResponse {
    const NAME: &'static str = "HandEyeCalibrationResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.HandEyeCalibrationResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetRegionOfInterest3DRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub region_of_interest: ::core::option::Option<super::msg::RegionOfInterest3D>,
}
impl ::prost::Name for SetRegionOfInterest3DRequest {
    const NAME: &'static str = "SetRegionOfInterest3DRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest3DRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest3DRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct SetRegionOfInterest3DResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for SetRegionOfInterest3DResponse {
    const NAME: &'static str = "SetRegionOfInterest3DResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest3DResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.SetRegionOfInterest3DResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteBasePlaneCalibrationRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
}
impl ::prost::Name for DeleteBasePlaneCalibrationRequest {
    const NAME: &'static str = "DeleteBasePlaneCalibrationRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteBasePlaneCalibrationRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteBasePlaneCalibrationRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteBasePlaneCalibrationResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DeleteBasePlaneCalibrationResponse {
    const NAME: &'static str = "DeleteBasePlaneCalibrationResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteBasePlaneCalibrationResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteBasePlaneCalibrationResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBasePlaneCalibrationRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for GetBasePlaneCalibrationRequest {
    const NAME: &'static str = "GetBasePlaneCalibrationRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetBasePlaneCalibrationRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetBasePlaneCalibrationRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetBasePlaneCalibrationResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub plane: ::core::option::Option<super::super::shape_msgs::msg::Plane>,
    #[prost(message, optional, tag = "4")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for GetBasePlaneCalibrationResponse {
    const NAME: &'static str = "GetBasePlaneCalibrationResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetBasePlaneCalibrationResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetBasePlaneCalibrationResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRegionsOfInterest2DRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, repeated, tag = "2")]
    pub region_of_interest_2d_ids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
impl ::prost::Name for DeleteRegionsOfInterest2DRequest {
    const NAME: &'static str = "DeleteRegionsOfInterest2DRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest2DRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest2DRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRegionsOfInterest2DResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DeleteRegionsOfInterest2DResponse {
    const NAME: &'static str = "DeleteRegionsOfInterest2DResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest2DResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest2DResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarmupTemplateRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub template_id: ::prost::alloc::string::String,
}
impl ::prost::Name for WarmupTemplateRequest {
    const NAME: &'static str = "WarmupTemplateRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.WarmupTemplateRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.WarmupTemplateRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct WarmupTemplateResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for WarmupTemplateResponse {
    const NAME: &'static str = "WarmupTemplateResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.WarmupTemplateResponse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.WarmupTemplateResponse".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRegionsOfInterest3DRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, repeated, tag = "2")]
    pub region_of_interest_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for GetRegionsOfInterest3DRequest {
    const NAME: &'static str = "GetRegionsOfInterest3DRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest3DRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest3DRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRegionsOfInterest3DResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub regions_of_interest: ::prost::alloc::vec::Vec<super::msg::RegionOfInterest3D>,
    #[prost(message, optional, tag = "3")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for GetRegionsOfInterest3DResponse {
    const NAME: &'static str = "GetRegionsOfInterest3DResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest3DResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest3DResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRegionsOfInterest2DRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, repeated, tag = "2")]
    pub region_of_interest_2d_ids: ::prost::alloc::vec::Vec<
        ::prost::alloc::string::String,
    >,
}
impl ::prost::Name for GetRegionsOfInterest2DRequest {
    const NAME: &'static str = "GetRegionsOfInterest2DRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest2DRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest2DRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetRegionsOfInterest2DResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub regions_of_interest: ::prost::alloc::vec::Vec<super::msg::RegionOfInterest2D>,
    #[prost(message, optional, tag = "3")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for GetRegionsOfInterest2DResponse {
    const NAME: &'static str = "GetRegionsOfInterest2DResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest2DResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetRegionsOfInterest2DResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetLoadCarriersRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, repeated, tag = "2")]
    pub load_carrier_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for GetLoadCarriersRequest {
    const NAME: &'static str = "GetLoadCarriersRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetLoadCarriersRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetLoadCarriersRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetLoadCarriersResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrierModel>,
    #[prost(message, optional, tag = "3")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for GetLoadCarriersResponse {
    const NAME: &'static str = "GetLoadCarriersResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.GetLoadCarriersResponse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.GetLoadCarriersResponse".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectFillingLevelRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub region_of_interest_id: ::prost::alloc::string::String,
    #[prost(string, tag = "4")]
    pub region_of_interest_2d_id: ::prost::alloc::string::String,
    #[prost(string, repeated, tag = "5")]
    pub load_carrier_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(message, optional, tag = "6")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(message, optional, tag = "7")]
    pub filling_level_cell_count: ::core::option::Option<super::msg::GridSize>,
}
impl ::prost::Name for DetectFillingLevelRequest {
    const NAME: &'static str = "DetectFillingLevelRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectFillingLevelRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectFillingLevelRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectFillingLevelResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, repeated, tag = "3")]
    pub load_carriers: ::prost::alloc::vec::Vec<super::msg::LoadCarrierWithFillingLevel>,
    #[prost(message, optional, tag = "4")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DetectFillingLevelResponse {
    const NAME: &'static str = "DetectFillingLevelResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectFillingLevelResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectFillingLevelResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalibrateBasePlaneRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, tag = "2")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
    #[prost(string, tag = "4")]
    pub plane_estimation_method: ::prost::alloc::string::String,
    #[prost(string, tag = "5")]
    pub stereo_plane_preference: ::prost::alloc::string::String,
    #[prost(string, tag = "6")]
    pub region_of_interest_2d_id: ::prost::alloc::string::String,
    #[prost(double, tag = "7")]
    pub offset: f64,
    #[prost(message, optional, tag = "8")]
    pub plane: ::core::option::Option<super::super::shape_msgs::msg::Plane>,
}
impl ::prost::Name for CalibrateBasePlaneRequest {
    const NAME: &'static str = "CalibrateBasePlaneRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.CalibrateBasePlaneRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.CalibrateBasePlaneRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalibrateBasePlaneResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(string, tag = "3")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "4")]
    pub plane: ::core::option::Option<super::super::shape_msgs::msg::Plane>,
    #[prost(message, optional, tag = "5")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for CalibrateBasePlaneResponse {
    const NAME: &'static str = "CalibrateBasePlaneResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.CalibrateBasePlaneResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.CalibrateBasePlaneResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRegionsOfInterest3DRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(string, repeated, tag = "2")]
    pub region_of_interest_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
impl ::prost::Name for DeleteRegionsOfInterest3DRequest {
    const NAME: &'static str = "DeleteRegionsOfInterest3DRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest3DRequest"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest3DRequest"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DeleteRegionsOfInterest3DResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, optional, tag = "2")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DeleteRegionsOfInterest3DResponse {
    const NAME: &'static str = "DeleteRegionsOfInterest3DResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest3DResponse"
            .into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DeleteRegionsOfInterest3DResponse"
            .into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectTagsRequest {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub tags: ::prost::alloc::vec::Vec<super::msg::Tag>,
    #[prost(string, tag = "3")]
    pub pose_frame: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "4")]
    pub robot_pose: ::core::option::Option<super::super::geometry_msgs::msg::Pose>,
}
impl ::prost::Name for DetectTagsRequest {
    const NAME: &'static str = "DetectTagsRequest";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectTagsRequest".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectTagsRequest".into()
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DetectTagsResponse {
    #[prost(message, optional, tag = "1")]
    pub header: ::core::option::Option<
        super::super::super::super::make87_messages::core::Header,
    >,
    #[prost(message, repeated, tag = "2")]
    pub tags: ::prost::alloc::vec::Vec<super::msg::DetectedTag>,
    #[prost(message, optional, tag = "3")]
    pub timestamp: ::core::option::Option<super::super::builtin_interfaces::msg::Time>,
    #[prost(message, optional, tag = "4")]
    pub return_code: ::core::option::Option<
        super::super::rc_common_msgs::msg::ReturnCode,
    >,
}
impl ::prost::Name for DetectTagsResponse {
    const NAME: &'static str = "DetectTagsResponse";
    const PACKAGE: &'static str = "make87_messages_ros2.humble.rc_reason_msgs.srv";
    fn full_name() -> ::prost::alloc::string::String {
        "make87_messages_ros2.humble.rc_reason_msgs.srv.DetectTagsResponse".into()
    }
    fn type_url() -> ::prost::alloc::string::String {
        "/make87_messages_ros2.humble.rc_reason_msgs.srv.DetectTagsResponse".into()
    }
}
