.. _program_listing_file_osi-documentation_osi-validation_open-simulation-interface_osi_roadmarking.proto: Program Listing for File osi_roadmarking.proto ============================================== |exhale_lsh| :ref:`Return to documentation for file ` (``osi-documentation/osi-validation/open-simulation-interface/osi_roadmarking.proto``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp syntax = "proto2"; option optimize_for = SPEED; import "osi_common.proto"; import "osi_trafficsign.proto"; package osi3; // // \brief A road surface marking. // // \image html OSI_RoadMarking.svg // // The figure shows two STOP road markings. STOP \c // RoadMarking::Classification::type == \c // RoadMarking::Classification::TYPE_TEXTUAL_TRAFFIC_SIGN is marked, STOP \c // RoadMarking::Classification::type == \c // RoadMarking::Classification::TYPE_SYMBOLIC_TRAFFIC_SIGN is not marked. // // All coordinates and orientations are relative to the global ground truth // coordinate system. // // Lane markings are excluded and defined as \c LaneBoundary messages // as part of \c Lane. // message RoadMarking { // The ID of the road marking. // optional Identifier id = 1; // The base parameters of the road marking. // // The orientation of the bounding box \c #base // \c BaseStationary::orientation is defined as follows: // The z-axis of the \c BaseStationary::orientation is the vector from the // 'bottom' to the 'top' of the road marking's (i.e. painted traffic sign) // 2D image area. // (Normally it is in the ground truth xy-plain.) // The x-axis of the \c BaseStationary::orientation is the view normal of // the road marking's 2D image area. // Normally this x-axis points to the sky. // // \note If a valid unidirectional road marking is assigned to the host // vehicle's current lane and the driving direction of the latter roughly // matches the z-axis of the \c #base \c BaseStationary::orientation then // the road marking is of relevance to (i.e. in effect for) the host // vehicle. // optional BaseStationary base = 2; // The classification data for the road marking. // optional Classification classification = 3; // // \brief \c Classification data for a road surface marking. // message Classification { // The type of the road marking. // optional Type type = 1; // Traffic sign as road marking (color image, monochrome image or // character string). // // \note Field is set if ( \c #type == \c #TYPE_PAINTED_TRAFFIC_SIGN or // \c #TYPE_SYMBOLIC_TRAFFIC_SIGN or \c #TYPE_TEXTUAL_TRAFFIC_SIGN ). // // \note Field need not be set (or set to \c #TYPE_OTHER) // if road marking type (\c #type) does not require it. // optional TrafficSign.MainSign.Classification.Type traffic_main_sign_type = 2; // The monochrome color of the road marking. // \note Field need not be set (or set to \c #COLOR_OTHER) // if road marking type does not require it (e.g. for \c #type == // \c #TYPE_PAINTED_TRAFFIC_SIGN). // optional Color monochrome_color = 3; // Additional value associated with the road marking, e.g. value of the // speed limit. // // \note Field need not be set if road marking type does not require it. // // \note OSI 3 uses \c #value_text and not \c TrafficSignValue for // simple chars. // optional TrafficSignValue value = 4; // Additional text value as road marking, e.g. BUS, TAXI etc. // // \note Field need not be set if road marking type does not require it. // optional string value_text = 5; // The ID(s) of the lane(s) that the road marking is assigned to. // May be multiple if the road marking goes across multiple lanes. // // \note OSI uses singular instead of plural for repeated field names. // repeated Identifier assigned_lane_id = 6; // Boolean flag to indicate that the road marking is taken out of service. // This can be achieved by visibly crossing the road marking with stripes, // or completly covering a road marking making it not visible. // // \image html OSI_RoadMaking_is_out_of_service.jpg width=800px // optional bool is_out_of_service = 7; // Definition of road marking types. // enum Type { // Type of road marking is unknown (must not be used in ground // truth). // TYPE_UNKNOWN = 0; // Other (unspecified but known) type of road marking. // TYPE_OTHER = 1; // Paint on the road surface indicating a color image of a traffic // sign. // TYPE_PAINTED_TRAFFIC_SIGN = 2; // Paint on the road surface indicating a monochrome logical symbol // of a traffic sign (e.g. digits 50 as start of speed limit 50 or // stop line for stop sign). // TYPE_SYMBOLIC_TRAFFIC_SIGN = 3; // Paint on the road surface as a character string (e.g. BUS as bus // only lane). // TYPE_TEXTUAL_TRAFFIC_SIGN = 4; // Paint on the road surface indicating a generic symbol. // TYPE_GENERIC_SYMBOL = 5; // Paint on the road surface indicating a generic line. // TYPE_GENERIC_LINE = 6; // Paint on the road surface indicating a generic character string. // TYPE_GENERIC_TEXT = 7; } // Definition of road marking colors // enum Color { // Color of road marking is unknown (must not be used in ground // truth). // COLOR_UNKNOWN = 0; // Marking with another (unspecified but known) color. // COLOR_OTHER = 1; // Marking with white color. // COLOR_WHITE = 2; // Marking with yellow / orange-yellow color. // COLOR_YELLOW = 3; // Marking with blue color. // COLOR_BLUE = 5; // Marking with red color. // COLOR_RED = 6; // Marking with green color. // COLOR_GREEN = 7; // Marking with violet color. // COLOR_VIOLET = 8; } } }