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 implementer how that mapping is achieved. In previous versions, for example, a simulator might have used 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. As part of the harmonization effort, it should now map to TYPE_CAR, which is an alias of the old TYPE_MEDIUM_CAR, and all other car type enums have been deprecated in favor of TYPE_CAR.
Vehicle type classification is a complex area and there are no universally recognized standards. As such, the boundaries between some of the OSI vehicle types are not well-defined. It is left to the implementer 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
Allow aliases in enum.
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.
Note
Deprecated differentiation, use TYPE_CAR instead
TYPE_COMPACT_CAR
Vehicle is a compact car.
Definition: Hatchback car with length between 4 and 4.5 m.
Note
Deprecated differentiation, use TYPE_CAR instead
TYPE_CAR
Vehicle is a car.
This is to be used for all car-like vehicles, without any further differentiated type available.
TYPE_MEDIUM_CAR
Vehicle is a medium car.
Definition: Hatchback or sedan with length between 4.5 and 5 m.
Note
Deprecated differentiation, use the alias TYPE_CAR instead
TYPE_LUXURY_CAR
Vehicle is a luxury car.
Definition: Sedan or coupe that is longer then 5 m.
Note
Deprecated differentiation, use TYPE_CAR instead
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).
TYPE_BUS
Vehicle is a bus.
TYPE_TRAM
Vehicle is a tram.
TYPE_TRAIN
Vehicle is a train.
TYPE_WHEELCHAIR
Vehicle is a wheelchair.
TYPE_STANDUP_SCOOTER
Vehicle is a stand-up scooter, including motorized versions.
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).