OSI provides a richer set of vehicle types than is supported by some other OpenX standards (in particular, OpenScenario 1.x and 2.x, and OpenLabel). This is primarily for historical reasons. Where a single type from a different standard can map to multiple OSI types it is left up to the discretion of the OSI implementor how that mapping is achieved. For example, a simulator may use the dimensions of a provided 3d model of a vehicle with type "car" in OpenScenario, to determine whether it should be a TYPE_SMALL_CAR or TYPE_MEDIUM_CAR in OSI.
Vehicle type classification is a complex area and there are no universally recognised standards. As such, the boundaries between some of the OSI vehicle types are not well-defined. It is left to the implementor to decide how to distinguish between them and agree that with any applications which make use of that specific interface instance. For example, how to distinguish between a HEAVY_TRUCK and a DELIVERY_VAN, or a TRAILER and a SEMITRAILER.
Enumerator
TYPE_UNKNOWN
Type of vehicle is unknown (must not be used in ground truth).
TYPE_OTHER
Other (unspecified but known) type of vehicle.
TYPE_SMALL_CAR
Vehicle is a small car.
Definition: Hatchback car with maximum length 4 m.
TYPE_COMPACT_CAR
Vehicle is a compact car.
Definition: Hatchback car with length between 4 and 4.5 m.
TYPE_MEDIUM_CAR
Vehicle is a medium car.
Definition: Hatchback or sedan with lenght between 4.5 and 5 m.
TYPE_LUXURY_CAR
Vehicle is a luxury car.
Definition: Sedan or coupe that is longer then 5 m.
TYPE_DELIVERY_VAN
Vehicle is a delivery van.
TYPE_HEAVY_TRUCK
Vehicle is a (heavy) truck.
TYPE_SEMITRACTOR
Vehicle is a tractor capable of pulling a semi-trailer.
TYPE_SEMITRAILER
This vehicle is a semi-trailer that can be pulled by a semi-tractor.
Note
The vehicle can be, but doesn't need to be, attached to another vehicle.
TYPE_TRAILER
Vehicle is a trailer.
Note
The vehicle can be, but doesn't need to be, attached to another vehicle.
TYPE_MOTORBIKE
Vehicle is a motorbike or moped.
TYPE_BICYCLE
Vehicle is a bicycle (without motor and specific lights).
The role specifies the perceived role of a vehicle. Therefore, a civil police car is set to ROLE_CIVIL as long as it cannot be perceived as a ROLE_POLICE. The normal use case will consist of 99% ROLE_CIVIL, as this role is used for normal vehicles. These roles may influence the behavior in traffic of the surrounding vehicles. To check whether a role is "active" (e.g. blue flashing light of an ambulance or an amber flashing light of a sweeper) can be looked up in message LightState.
Enumerator
ROLE_UNKNOWN
Role of vehicle is unknown (must not be used in ground truth).