Program Listing for File osi_roadmarking.proto¶
↰ Return to documentation for file (osi-documentation/osi-validation/open-simulation-interface/osi_roadmarking.proto)
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;
}
}
}