Skip to content

Commit 4304139

Browse files
Adapt vehicle types from openx harmonization (#863)
* Adapt vehicle types from openx harmonization * Update deprecation wording * Update micro-mobility dev., notes and references * Revise vehicle type description * Add note on compliance with ASAM TrafficParticipants Specification * Adapt note on OSI's obsolete type mapping issue (switch to past tense, revise wording) * Remove obsolete note on difficult distinction between OSI's vehicle types * Adapt ASAM style of standard names Co-authored-by: jakobkaths <[email protected]> Signed-off-by: Thomas Sedlmayer <[email protected]>
1 parent 9f3c5fc commit 4304139

File tree

2 files changed

+192
-33
lines changed

2 files changed

+192
-33
lines changed

.github/spelling_custom_words_en_US.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,15 @@ dms
8383
doi
8484
doppler
8585
drivable
86+
DSL
8687
dt
8788
Duesseldorf
8889
Durchgangsverkehr
8990
dvr
9091
dürfen
9192
easting
9293
EBIKES
94+
ECE
9395
edn
9496
edu
9597
egm
@@ -161,6 +163,7 @@ Hagen
161163
halten
162164
hier
163165
Hochwasser
166+
hoverboards
164167
href
165168
hsv
166169
htm
@@ -173,6 +176,7 @@ illuminance
173176
ilv
174177
im
175178
Immission
179+
implementer's
176180
incrementing
177181
Industriegebiet
178182
innerhalb
@@ -342,6 +346,8 @@ uk
342346
umich
343347
umtri
344348
und
349+
UNECE
350+
unece
345351
Unfall
346352
UNGATED
347353
Universitaet

osi_object.proto

Lines changed: 186 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -760,23 +760,29 @@ message MovingObject
760760
{
761761
// Definition of vehicle types.
762762
//
763-
// \note OSI provides a richer set of vehicle types than is supported by some
764-
// other OpenX standards (in particular, OpenScenario 1.x and 2.x, and OpenLabel).
765-
// This is primarily for historical reasons. Where a single type from a
766-
// different standard can map to multiple OSI types it is left up to the
767-
// discretion of the OSI implementer how that mapping is achieved. In previous
768-
// versions, for example, a simulator might have used the dimensions of a provided
769-
// 3d model of a vehicle with type "car" in OpenScenario, to determine whether it
770-
// should be a TYPE_SMALL_CAR or TYPE_MEDIUM_CAR in OSI. As part of the harmonization
771-
// effort, it should now map to TYPE_CAR, which is an alias of the old TYPE_MEDIUM_CAR,
772-
// and all other car type enums have been deprecated in favor of TYPE_CAR.
773-
//
774-
// \note Vehicle type classification is a complex area and there are no
775-
// universally recognized standards. As such, the boundaries between some of the
776-
// OSI vehicle types are not well-defined. It is left to the implementer to
777-
// decide how to distinguish between them and agree that with any applications which
778-
// make use of that specific interface instance. For example, how to distinguish
779-
// between a HEAVY_TRUCK and a DELIVERY_VAN, or a TRAILER and a SEMITRAILER.
763+
// \note OSI defines a set of vehicle types derived directly from the
764+
// vehicle main categories specified in the ASAM TrafficParticipants
765+
// Specification [1]. The type names and definitions reflect an effort
766+
// toward compatibility with multiple ASAM OpenX standards, to support
767+
// consistent cross-standard mapping. As part of ongoing and future
768+
// harmonization efforts, OSI will continue to keep its vehicle type
769+
// definitions synchronized with the ASAM TrafficParticipants
770+
// Specification as permitted by technical and practical constraints.
771+
//
772+
// \note Historically, OSI offered a more granular set of vehicle types
773+
// than some other OpenX standards (e.g., OpenSCENARIO XML/DSL and
774+
// OpenLABEL). This was due to legacy design choices. Mapping a single
775+
// type from another standard to multiple OSI types was left to the
776+
// implementer's discretion. For instance, a simulator might have relied
777+
// on the 3D model's dimensions for an OpenSCENARIO "car" to choose
778+
// between TYPE_SMALL_CAR or TYPE_MEDIUM_CAR in OSI. With the ongoing
779+
// harmonization effort, such ambiguities have been resolved. The
780+
// recommended mapping is now TYPE_CAR, which serves as an alias for the
781+
// former TYPE_MEDIUM_CAR. Previous car-specific enums (e.g.,
782+
// TYPE_SMALL_CAR) have been deprecated in favor of TYPE_CAR.
783+
//
784+
// \par References:
785+
// [1] ASAM e.V. (2024). <em>ASAM TrafficParticipants Specification</em>. ASAM OpenX Standards. Retrieved June 12, 2025, from https://publications.pages.asam.net/standards/ASAM_TrafficParticipants_Specification/ASAM_TrafficParticipants_Specification/v1.0.0/specification/index.html
780786
//
781787
enum Type
782788
{
@@ -808,11 +814,18 @@ message MovingObject
808814
//
809815
TYPE_COMPACT_CAR = 3;
810816

811-
// Vehicle is a car.
817+
// A car is a motorized vehicle designed primarily for passenger
818+
// transportation.
819+
// Typically has four wheels.
812820
//
813821
// This is to be used for all car-like vehicles, without any
814822
// further differentiated type available.
815823
//
824+
// \note Corresponds roughly with UNECE [1] categories M1, G and L7.
825+
//
826+
// \par References:
827+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
828+
//
816829
TYPE_CAR = 4;
817830

818831
// Vehicle is a medium car.
@@ -835,67 +848,207 @@ message MovingObject
835848
//
836849
// \image html OSI_TYPE_DELIVERY_VAN.svg
837850
//
851+
// \note Deprecated differentiation, use TYPE_VAN instead
852+
//
838853
TYPE_DELIVERY_VAN = 6;
839854

840-
// Vehicle is a (heavy) truck.
855+
// A van is a motorized vehicle with a larger cargo area than a car,
856+
// used for transporting goods or people.
857+
//
858+
// \note Corresponds roughly with UNECE [1] categories M2 and N1.
859+
//
860+
// \note This category is not intended for mini vans, which shall
861+
// rather be categorized as cars.
862+
//
863+
// \par References:
864+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
865+
//
866+
TYPE_VAN = 6;
867+
868+
// A heavy truck is a large commercial vehicle designed for
869+
// transporting heavy loads.
870+
// The cargo area is rigidly fixed to the vehicle itself.
871+
//
872+
// \note Corresponds roughly with UNECE [1] category "N2".
841873
//
842874
// \image html OSI_TYPE_HEAVY_TRUCK.svg
843875
//
876+
// \par References:
877+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
878+
//
844879
TYPE_HEAVY_TRUCK = 7;
845880

846-
// Vehicle is a tractor capable of pulling a semi-trailer.
881+
// A semi-tractor is a vehicle designed for towing semi-trailers for
882+
// the transportation of heavy loads.
883+
//
884+
// \note Corresponds roughly with UNECE [1] category N3.
847885
//
848886
// \image html OSI_TYPE_SEMITRACTOR.svg
849887
//
888+
// \par References:
889+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
890+
//
850891
TYPE_SEMITRACTOR = 16;
851892

852-
// This vehicle is a semi-trailer that can be pulled by a
893+
// A semi-trailer is a vehicle designed for being towed by a
894+
// semi-tractor.
895+
// Characteristics compared to a regular trailer are the large size,
896+
// the fact that a large portion of the weight is supported at the
897+
// hitch, and a large overlap with the towing vehicle, i.e. the
853898
// semi-tractor.
854899
//
855-
// \note The vehicle can be, but doesn't need to be,
856-
// attached to another vehicle.
900+
// \note Corresponds roughly with UNECE [1] category O4.
901+
//
902+
// \note Main reason for separation from the "Trailer" category is
903+
// the difference in motion behavior (vehicle dynamics) and the
904+
// different sensor perception due to the overlay with the towing
905+
// vehicle.
906+
//
907+
// \note The vehicle can be, but doesn't need to be, attached to
908+
// another vehicle.
857909
//
858910
// \image html OSI_TYPE_SEMITRAILER.svg
859911
//
912+
// \par References:
913+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
914+
//
860915
TYPE_SEMITRAILER = 8;
861916

862-
// Vehicle is a trailer.
917+
// A trailer is a non-motorized vehicle designed for being towed by
918+
// a motorized vehicle to carry goods, animals, or people.
919+
//
920+
// \note Corresponds roughly with UNECE [1] category O1 to O3.
863921
//
864-
// \note The vehicle can be, but doesn't need to be,
865-
// attached to another vehicle.
922+
// \note The vehicle can be, but doesn't need to be, attached to
923+
// another vehicle.
866924
//
867925
// \image html OSI_TYPE_TRAILER.svg
868926
//
927+
// \par References:
928+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
929+
//
869930
TYPE_TRAILER = 9;
870931

871932
// Vehicle is a motorbike or moped.
872933
//
934+
// \note Deprecated name, use TYPE_MOTORCYCLE instead
935+
//
873936
TYPE_MOTORBIKE = 10;
874937

875-
// Vehicle is a bicycle (without motor and specific lights).
938+
// A motorcycle is a motorized vehicle designed primarily for
939+
// passenger transportation.
940+
// Compared to a car, fewer passive safety features, such as a full
941+
// passenger cell, are typically present.
942+
// This category includes both two-wheeled motorcycles and
943+
// three-wheeled vehicles like motorcycles with side-cars or trikes.
944+
//
945+
// \note Corresponds roughly with UNECE [1] categories L1 to L5.
946+
//
947+
// \note Usually considered as a vulnerable road user.
948+
//
949+
// \par References:
950+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
951+
//
952+
TYPE_MOTORCYCLE = 10;
953+
954+
// A bicycle is a human-powered or motor-assisted, pedal-driven
955+
// vehicle.
956+
// This category includes typical two-wheeled bicycles as well as
957+
// cargo-bikes and other pedal-driven vehicles with more than two
958+
// wheels.
959+
//
960+
// \note Usually considered as a vulnerable road user.
876961
//
877962
TYPE_BICYCLE = 11;
878963

879-
// Vehicle is a bus.
964+
// A bus is a motorized vehicle designed to carry multiple
965+
// passengers.
966+
//
967+
// \note Corresponds roughly with UNECE [1] category M3 classes I,
968+
// II, II.
969+
//
970+
// \par References:
971+
// [1] United Nations Economic and Social Council. (2023). <em>Consolidated Resolution on the Construction of Vehicles</em> (ECE/TRANS/WP.29/78/Rev.7) [PDF]. United Nations. Retrieved May 3, 2024, from https://unece.org/sites/default/files/2023-12/ECE_TRANS_WP.29_78_Rev.7e.pdf
880972
//
881973
TYPE_BUS = 12;
882974

883-
// Vehicle is a tram.
975+
// A tram is a vehicle designed for using rail infrastructure for
976+
// the transport of passengers on rail infrastructure.
977+
// The rail infrastructure may fully or partially overlap with
978+
// public road infrastructure.
979+
// In contrast to trains, trams do not have exclusive right-of-way.
980+
// A tram often acts as a series of connected vehicles.
884981
//
885982
TYPE_TRAM = 13;
886983

887-
// Vehicle is a train.
984+
// A train is a vehicle designed for the transport of passengers and
985+
// freight on rail infrastructure.
986+
// The rail infrastructure for trains is mostly grade-separated from
987+
// the public road infrastructure as trains have exclusive
988+
// right-of-way.
989+
// Therefore, in case crossings with the road infrastructure occur,
990+
// the exclusive right-of-way is ensured, e.g. by railway barriers.
991+
// A train often acts as a series of connected vehicles.
888992
//
889993
TYPE_TRAIN = 14;
890994

891-
// Vehicle is a wheelchair.
995+
// A wheelchair is a manually or electrically powered mobility
996+
// device with a seat mounted on a wheeled frame.
997+
// Manual propulsion may be provided by the seated person or a
998+
// person pushing the wheelchair.
999+
//
1000+
// \note Usually considered as a vulnerable road user.
8921001
//
8931002
TYPE_WHEELCHAIR = 15;
8941003

895-
// Vehicle is a stand-up scooter, including
896-
// motorized versions.
1004+
// A stand-up scooter is a compact, typically two-wheeled device.
1005+
// It is operated with the rider standing on a deck between the
1006+
// wheels.
1007+
// It may be propelled by a motor or the rider making a kicking
1008+
// movement.
1009+
//
1010+
// \note Usually considered as a vulnerable road user.
8971011
//
8981012
TYPE_STANDUP_SCOOTER = 17;
1013+
1014+
// A micro-mobility device is a small, lightweight vehicle for
1015+
// short-distance travel, like hoverboards or roller skates.
1016+
// While bicycles, stand-up scooters, and wheelchairs may
1017+
// technically fall into this category, the respective detailed
1018+
// categories shall be used instead.
1019+
//
1020+
// \note Usually considered as a vulnerable road user.
1021+
//
1022+
TYPE_MICROMOBILITY_DEVICE = 18;
1023+
1024+
// A work machine is a vehicle designed for specific tasks (e.g.,
1025+
// construction equipment, agricultural tractors, forklifts).
1026+
//
1027+
TYPE_WORK_MACHINE = 19;
1028+
1029+
// A watercraft is a vehicle designed for travel on water (boats,
1030+
// ships, etc.).
1031+
//
1032+
// \note This category is deliberately generic and may be refined in
1033+
// future versions as needed.
1034+
//
1035+
TYPE_WATERCRAFT = 20;
1036+
1037+
// An aircraft is a vehicle designed for flight through the air
1038+
// (airplanes, helicopters, etc.).
1039+
//
1040+
// \note This category is deliberately generic and may be refined in
1041+
// future versions as needed.
1042+
//
1043+
TYPE_AIRCRAFT = 21;
1044+
1045+
// A land vehicle is a vehicle designed for travel on land.
1046+
//
1047+
// \note This category is deliberately generic to include land
1048+
// vehicles that do not fall into other categories and may be
1049+
// refined in future versions as needed.
1050+
//
1051+
TYPE_LAND_VEHICLE = 22;
8991052
}
9001053

9011054
// The type of the vehicle.

0 commit comments

Comments
 (0)