Skip to content

Commit 17b846a

Browse files
authored
Merge branch 'master' into fix/base-moving-coordinate-systems-doc
2 parents 51b96bf + 4304139 commit 17b846a

File tree

3 files changed

+194
-35
lines changed

3 files changed

+194
-35
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

doc/architecture/trace_file_formats.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ This release no longer contains any support for the legacy `.txt` file format.
3636
The OSI multi channel trace file format is a binary file format that allows for storing multiple serialized OSI message streams of the same or different types in one trace file, along with additional meta-data, and other related data streams.
3737
Due to the nature of the format, it allows for random access to the data streams, and is suitable for more advanced use-cases.
3838

39-
The OSI multi channel trace file format is based on the MCAP file format, which is a generic multi channel trace file format.
39+
The OSI multi channel trace file format is based on the MCAP file format cite:[mcap], which is a generic multi channel trace file format.
4040
The OSI multi channel trace file format is a specialization of the MCAP file format, with additional constraints and requirements specific to OSI.
4141
Hence, any valid OSI multi channel trace file is also a valid MCAP file, but not the other way around.
4242

@@ -46,7 +46,7 @@ Therefore, it can be used with any or an empty profile field in the MCAP header
4646
The following rules apply to OSI multi channel trace files:
4747

4848
- The file extension to be used is `.mcap`.
49-
- The file shall be a valid MCAP file according to the https://mcap.dev/spec[MCAP format specification] version `0x30`.
49+
- The file shall be a valid MCAP file according to the https://mcap.dev/spec[MCAP format specification] version `0x30` (cite:[mcap]).
5050
- The file shall be an indexed MCAP file, including chunk index records in the summary section, with all message records written into chunk records.
5151
- Chunk records shall either be uncompressed or compressed using either the `zstd` or `lz4` compression algorithms.
5252
- The file shall contain a meta-data record with the OSI trace file meta-data defined in section <<sec-osi-trace-file-multi-global-meta-data>>.

osi_object.proto

Lines changed: 186 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -770,23 +770,29 @@ message MovingObject
770770
{
771771
// Definition of vehicle types.
772772
//
773-
// \note OSI provides a richer set of vehicle types than is supported by some
774-
// other OpenX standards (in particular, OpenScenario 1.x and 2.x, and OpenLabel).
775-
// This is primarily for historical reasons. Where a single type from a
776-
// different standard can map to multiple OSI types it is left up to the
777-
// discretion of the OSI implementer how that mapping is achieved. In previous
778-
// versions, for example, a simulator might have used the dimensions of a provided
779-
// 3d model of a vehicle with type "car" in OpenScenario, to determine whether it
780-
// should be a TYPE_SMALL_CAR or TYPE_MEDIUM_CAR in OSI. As part of the harmonization
781-
// effort, it should now map to TYPE_CAR, which is an alias of the old TYPE_MEDIUM_CAR,
782-
// and all other car type enums have been deprecated in favor of TYPE_CAR.
783-
//
784-
// \note Vehicle type classification is a complex area and there are no
785-
// universally recognized standards. As such, the boundaries between some of the
786-
// OSI vehicle types are not well-defined. It is left to the implementer to
787-
// decide how to distinguish between them and agree that with any applications which
788-
// make use of that specific interface instance. For example, how to distinguish
789-
// between a HEAVY_TRUCK and a DELIVERY_VAN, or a TRAILER and a SEMITRAILER.
773+
// \note OSI defines a set of vehicle types derived directly from the
774+
// vehicle main categories specified in the ASAM TrafficParticipants
775+
// Specification [1]. The type names and definitions reflect an effort
776+
// toward compatibility with multiple ASAM OpenX standards, to support
777+
// consistent cross-standard mapping. As part of ongoing and future
778+
// harmonization efforts, OSI will continue to keep its vehicle type
779+
// definitions synchronized with the ASAM TrafficParticipants
780+
// Specification as permitted by technical and practical constraints.
781+
//
782+
// \note Historically, OSI offered a more granular set of vehicle types
783+
// than some other OpenX standards (e.g., OpenSCENARIO XML/DSL and
784+
// OpenLABEL). This was due to legacy design choices. Mapping a single
785+
// type from another standard to multiple OSI types was left to the
786+
// implementer's discretion. For instance, a simulator might have relied
787+
// on the 3D model's dimensions for an OpenSCENARIO "car" to choose
788+
// between TYPE_SMALL_CAR or TYPE_MEDIUM_CAR in OSI. With the ongoing
789+
// harmonization effort, such ambiguities have been resolved. The
790+
// recommended mapping is now TYPE_CAR, which serves as an alias for the
791+
// former TYPE_MEDIUM_CAR. Previous car-specific enums (e.g.,
792+
// TYPE_SMALL_CAR) have been deprecated in favor of TYPE_CAR.
793+
//
794+
// \par References:
795+
// [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
790796
//
791797
enum Type
792798
{
@@ -818,11 +824,18 @@ message MovingObject
818824
//
819825
TYPE_COMPACT_CAR = 3;
820826

821-
// Vehicle is a car.
827+
// A car is a motorized vehicle designed primarily for passenger
828+
// transportation.
829+
// Typically has four wheels.
822830
//
823831
// This is to be used for all car-like vehicles, without any
824832
// further differentiated type available.
825833
//
834+
// \note Corresponds roughly with UNECE [1] categories M1, G and L7.
835+
//
836+
// \par References:
837+
// [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
838+
//
826839
TYPE_CAR = 4;
827840

828841
// Vehicle is a medium car.
@@ -845,67 +858,207 @@ message MovingObject
845858
//
846859
// \image html OSI_TYPE_DELIVERY_VAN.svg
847860
//
861+
// \note Deprecated differentiation, use TYPE_VAN instead
862+
//
848863
TYPE_DELIVERY_VAN = 6;
849864

850-
// Vehicle is a (heavy) truck.
865+
// A van is a motorized vehicle with a larger cargo area than a car,
866+
// used for transporting goods or people.
867+
//
868+
// \note Corresponds roughly with UNECE [1] categories M2 and N1.
869+
//
870+
// \note This category is not intended for mini vans, which shall
871+
// rather be categorized as cars.
872+
//
873+
// \par References:
874+
// [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
875+
//
876+
TYPE_VAN = 6;
877+
878+
// A heavy truck is a large commercial vehicle designed for
879+
// transporting heavy loads.
880+
// The cargo area is rigidly fixed to the vehicle itself.
881+
//
882+
// \note Corresponds roughly with UNECE [1] category "N2".
851883
//
852884
// \image html OSI_TYPE_HEAVY_TRUCK.svg
853885
//
886+
// \par References:
887+
// [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
888+
//
854889
TYPE_HEAVY_TRUCK = 7;
855890

856-
// Vehicle is a tractor capable of pulling a semi-trailer.
891+
// A semi-tractor is a vehicle designed for towing semi-trailers for
892+
// the transportation of heavy loads.
893+
//
894+
// \note Corresponds roughly with UNECE [1] category N3.
857895
//
858896
// \image html OSI_TYPE_SEMITRACTOR.svg
859897
//
898+
// \par References:
899+
// [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
900+
//
860901
TYPE_SEMITRACTOR = 16;
861902

862-
// This vehicle is a semi-trailer that can be pulled by a
903+
// A semi-trailer is a vehicle designed for being towed by a
904+
// semi-tractor.
905+
// Characteristics compared to a regular trailer are the large size,
906+
// the fact that a large portion of the weight is supported at the
907+
// hitch, and a large overlap with the towing vehicle, i.e. the
863908
// semi-tractor.
864909
//
865-
// \note The vehicle can be, but doesn't need to be,
866-
// attached to another vehicle.
910+
// \note Corresponds roughly with UNECE [1] category O4.
911+
//
912+
// \note Main reason for separation from the "Trailer" category is
913+
// the difference in motion behavior (vehicle dynamics) and the
914+
// different sensor perception due to the overlay with the towing
915+
// vehicle.
916+
//
917+
// \note The vehicle can be, but doesn't need to be, attached to
918+
// another vehicle.
867919
//
868920
// \image html OSI_TYPE_SEMITRAILER.svg
869921
//
922+
// \par References:
923+
// [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
924+
//
870925
TYPE_SEMITRAILER = 8;
871926

872-
// Vehicle is a trailer.
927+
// A trailer is a non-motorized vehicle designed for being towed by
928+
// a motorized vehicle to carry goods, animals, or people.
929+
//
930+
// \note Corresponds roughly with UNECE [1] category O1 to O3.
873931
//
874-
// \note The vehicle can be, but doesn't need to be,
875-
// attached to another vehicle.
932+
// \note The vehicle can be, but doesn't need to be, attached to
933+
// another vehicle.
876934
//
877935
// \image html OSI_TYPE_TRAILER.svg
878936
//
937+
// \par References:
938+
// [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
939+
//
879940
TYPE_TRAILER = 9;
880941

881942
// Vehicle is a motorbike or moped.
882943
//
944+
// \note Deprecated name, use TYPE_MOTORCYCLE instead
945+
//
883946
TYPE_MOTORBIKE = 10;
884947

885-
// Vehicle is a bicycle (without motor and specific lights).
948+
// A motorcycle is a motorized vehicle designed primarily for
949+
// passenger transportation.
950+
// Compared to a car, fewer passive safety features, such as a full
951+
// passenger cell, are typically present.
952+
// This category includes both two-wheeled motorcycles and
953+
// three-wheeled vehicles like motorcycles with side-cars or trikes.
954+
//
955+
// \note Corresponds roughly with UNECE [1] categories L1 to L5.
956+
//
957+
// \note Usually considered as a vulnerable road user.
958+
//
959+
// \par References:
960+
// [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
961+
//
962+
TYPE_MOTORCYCLE = 10;
963+
964+
// A bicycle is a human-powered or motor-assisted, pedal-driven
965+
// vehicle.
966+
// This category includes typical two-wheeled bicycles as well as
967+
// cargo-bikes and other pedal-driven vehicles with more than two
968+
// wheels.
969+
//
970+
// \note Usually considered as a vulnerable road user.
886971
//
887972
TYPE_BICYCLE = 11;
888973

889-
// Vehicle is a bus.
974+
// A bus is a motorized vehicle designed to carry multiple
975+
// passengers.
976+
//
977+
// \note Corresponds roughly with UNECE [1] category M3 classes I,
978+
// II, II.
979+
//
980+
// \par References:
981+
// [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
890982
//
891983
TYPE_BUS = 12;
892984

893-
// Vehicle is a tram.
985+
// A tram is a vehicle designed for using rail infrastructure for
986+
// the transport of passengers on rail infrastructure.
987+
// The rail infrastructure may fully or partially overlap with
988+
// public road infrastructure.
989+
// In contrast to trains, trams do not have exclusive right-of-way.
990+
// A tram often acts as a series of connected vehicles.
894991
//
895992
TYPE_TRAM = 13;
896993

897-
// Vehicle is a train.
994+
// A train is a vehicle designed for the transport of passengers and
995+
// freight on rail infrastructure.
996+
// The rail infrastructure for trains is mostly grade-separated from
997+
// the public road infrastructure as trains have exclusive
998+
// right-of-way.
999+
// Therefore, in case crossings with the road infrastructure occur,
1000+
// the exclusive right-of-way is ensured, e.g. by railway barriers.
1001+
// A train often acts as a series of connected vehicles.
8981002
//
8991003
TYPE_TRAIN = 14;
9001004

901-
// Vehicle is a wheelchair.
1005+
// A wheelchair is a manually or electrically powered mobility
1006+
// device with a seat mounted on a wheeled frame.
1007+
// Manual propulsion may be provided by the seated person or a
1008+
// person pushing the wheelchair.
1009+
//
1010+
// \note Usually considered as a vulnerable road user.
9021011
//
9031012
TYPE_WHEELCHAIR = 15;
9041013

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

9111064
// The type of the vehicle.

0 commit comments

Comments
 (0)