diff --git a/doc/architecture/architecture_overview.adoc b/doc/architecture/architecture_overview.adoc index 0bbbe8e05..5e54b6c1e 100644 --- a/doc/architecture/architecture_overview.adoc +++ b/doc/architecture/architecture_overview.adoc @@ -1,11 +1,39 @@ = Overview of OSI architecture -Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. -Et malesuada fames ac turpis egestas. -Mauris pharetra et ultrices neque ornare aenean euismod elementum nisi. -Nulla facilisi morbi tempus iaculis urna id. Justo eget magna fermentum iaculis. -Sed augue lacus viverra vitae congue eu. -Velit ut tortor pretium viverra suspendisse. -Amet commodo nulla facilisi nullam vehicula ipsum a. -Nibh nisl condimentum id venenatis a. -Diam vel quam elementum pulvinar etiam non quam lacus suspendisse. \ No newline at end of file +OSI contains an object-based environment description using the message format of the https://github.com/protocolbuffers/protobuf/wiki[Protocol Buffer] library developed and maintained by Google. +OSI defines top-level messages that are used to exchange data between separate models. +Top-level messages define the ``GroundTruth`` interface, the ``SensorData`` interface and, since OSI version 3.0.0, the ``SensorView``, ``SensorViewConfiguration`` and ``FeatureData`` interfaces. + +The following figure shows the interfaces and models involved in modeling a sensor. + +.Open Simulation Interface overview +image::osi-context.png[1100] + + +OSI also defines interfaces for traffic participant models. +The ``TrafficCommand`` interface allows to send commands to traffic participant models. +The ``TrafficUpdate`` interface allows to receive their updated state. +The following figure shows the interfaces of a generic traffic participant. + +.Interface of a traffic participant +image::osi-traffic-participant-principle.png[1100] + +Traffic participant models may use other OSI interfaces internally, for example, to model autonomous vehicles. +The following figure shows a more advanced use case for traffic participants. + +.Traffic participant with sensor models, AD function, and dynamic model +image::osi-traffic-participant-advanced.png[1100] + +The ``HostVehicleData`` interface describes the measured internal states of a traffic participant +OSI currently provides only limited support for data structures describing measured internal states traffic participants. +Actuator intentions are currently not covered by OSI and must be handled with a different data description format. + +All fields in an interface are set to `optional`. +`required` is not used. +This has been done to allow backward-compatible changes in the field. +Additionally, this is the default behavior in Protocol Buffer version 3 that does no longer have the `required` type and therefore ensures update compatibility. +However, this does not mean that filling the field is optional. +For the purpose of providing a complete interface, all existing fields should be set, unless not setting a field carries a specific meaning as indicated in the accompanying comment. + +All field numbers equal to or greater than 10000 are available for user-specific extensions via custom fields. +Therefore, no future evolution of OSI will use field numbers equal to or greater than 10000. \ No newline at end of file diff --git a/doc/images/osi-context.png b/doc/images/osi-context.png new file mode 100644 index 000000000..0738c3831 Binary files /dev/null and b/doc/images/osi-context.png differ diff --git a/doc/images/osi-traffic-participant-advanced.png b/doc/images/osi-traffic-participant-advanced.png new file mode 100644 index 000000000..451e4b32b Binary files /dev/null and b/doc/images/osi-traffic-participant-advanced.png differ diff --git a/doc/images/osi-traffic-participant-principle.png b/doc/images/osi-traffic-participant-principle.png new file mode 100644 index 000000000..45e886360 Binary files /dev/null and b/doc/images/osi-traffic-participant-principle.png differ