Program Listing for File osi_groundtruth.proto¶
↰ Return to documentation for file (osi-documentation/osi-validation/open-simulation-interface/osi_groundtruth.proto)
syntax = "proto2";
option optimize_for = SPEED;
import "osi_version.proto";
import "osi_common.proto";
import "osi_environment.proto";
import "osi_trafficsign.proto";
import "osi_trafficlight.proto";
import "osi_roadmarking.proto";
import "osi_lane.proto";
import "osi_object.proto";
import "osi_occupant.proto";
package osi3;
//
// \brief The ground truth information from the simulation environment.
//
// This ground truth information is supposed to describe the whole simulated
// environment around any simulated vehicle. For each simulated host vehicle
// (there may be one or multiple), define an area around the vehicle which
// is greater than the combined field of views (FOV) of all obstructed sensors
// in the vehicle. The ground truth data is supposed to describe the convex
// hull of all such areas w.r.t. a global simulation coordinate system.
//
// The simulation coordinate system may change during the simulation if and
// only if all coordinates w.r.t. this coordinate system are also changed.
//
// The data has to be sent at a rate defined by the receiving partner. When
// sending, values with default values might be left default in order to improve
// performance.
//
// To provide a complete interface, all fields of all contained messages must be
// properly set unless specifically stated in the field's definition that the
// field may remain unset.
//
// In enums (e.g. types) the unknown (first / default) value is not allowed to
// be used in the ground truth interface.
//
// \image html OSI_GroundTruth.svg "Ground Truth"
//
message GroundTruth
{
// The interface version used by the sender (i.e. the simulation
// environment).
//
optional InterfaceVersion version = 1;
// The data timestamp of the simulation environment. The zero time point is
// arbitrary but must be identical for all messages.
// Recommendation: Zero time point for start point of the simulation.
//
// \note Zero time point does not need to coincide with the UNIX epoch.
//
// \note For ground truth data this timestamp coincides both with the
// notional simulation time the data applies to and the time it was sent
// (there is no inherent latency for ground truth data, as opposed to
// sensor data).
//
optional Timestamp timestamp = 2;
// The ID of the host vehicle object referencing to \c MovingObject .
//
// \note This ID has to be filled and is not optional!
//
optional Identifier host_vehicle_id = 3;
// The list of stationary objects (excluding traffic signs and traffic
// lights).
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated StationaryObject stationary_object = 4;
// The list of all other moving objects including all (host) vehicles.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated MovingObject moving_object = 5;
// The list of traffic signs.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated TrafficSign traffic_sign = 6;
// The list of traffic lights.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated TrafficLight traffic_light = 7;
// The list of road surface markings (lane markings are excluded and
// defined as \c LaneBoundary).
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated RoadMarking road_marking = 8;
// The list of lane boundaries.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated LaneBoundary lane_boundary = 9;
// The list of lanes forming a road network.
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated Lane lane = 10;
// The list of passengers in the (host) vehicle(s).
//
// \note OSI uses singular instead of plural for repeated field names.
//
repeated Occupant occupant = 11;
// Conditions of the environment.
//
optional EnvironmentalConditions environmental_conditions = 12;
// The ISO country code in 3 digit numeric format according to:
// ISO Code 3166/1 [1,2].
// E.g. Germany = 276, USA = 840.
//
// Unit: []
//
// \par References:
// - [1] [International Standard ISO 3166-1: Codes for the representation of
// names of countries and their subdivisions - Part 1: Country codes, third
// ed., 2013] (https://www.iso.org/obp/ui/)
// - [2] [Wikipedia ISO 3166/1] (https://en.wikipedia.org/wiki/ISO_3166-1)
//
optional uint32 country_code = 13;
// Projection string that allows to transform all coordinates in GroundTruth
// into a different cartographic projection.
//
// The string follows the PROJ.4 project rules for projections [1].
//
// \par References:
// - [1] [Proj.4 Projections] (https://proj4.org/usage/projections.html)
//
optional string proj_string = 14;
// Opaque reference of a map.
//
// \note Origin and orientation of the map have to coincide with the
// inertial coordinate frame of the ground truth.
//
// \note It is implementation-specific how map_reference is resolved.
//
optional string map_reference = 15;
}