diff --git a/doc/architecture/coordinate_systems.adoc b/doc/architecture/coordinate_systems.adoc deleted file mode 100644 index 2034e3cd7..000000000 --- a/doc/architecture/coordinate_systems.adoc +++ /dev/null @@ -1,11 +0,0 @@ -= Coordinate systems - -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 diff --git a/doc/architecture/feature_data.adoc b/doc/architecture/feature_data.adoc index c1bd3ec51..f739be7d8 100644 --- a/doc/architecture/feature_data.adoc +++ b/doc/architecture/feature_data.adoc @@ -1,10 +1,5 @@ = Feature data -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 +Feature data contains detected features in the reference frame of a sensor. +Feature data is generated from ground-truth data. +It serves, for example, as input for sensor models simulating object detection or feature fusion models. diff --git a/doc/architecture/ground_truth.adoc b/doc/architecture/ground_truth.adoc index b15de8ab6..7ae617f47 100644 --- a/doc/architecture/ground_truth.adoc +++ b/doc/architecture/ground_truth.adoc @@ -1,10 +1,5 @@ = Ground truth -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 +Ground truth describes the simulated environment around all simulated objects in the global coordinate system. +It is based on data available to the simulation environment and published to external subscribers. +Depending on the external subscriber, ground-truth data may be individually restricted to reduce the data to be exchanged. diff --git a/doc/architecture/reference_points.adoc b/doc/architecture/reference_points.adoc deleted file mode 100644 index 39ebf5240..000000000 --- a/doc/architecture/reference_points.adoc +++ /dev/null @@ -1,10 +0,0 @@ -= Reference points - -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 diff --git a/doc/architecture/reference_points_coordinate_systems.adoc b/doc/architecture/reference_points_coordinate_systems.adoc new file mode 100644 index 000000000..bea9a1314 --- /dev/null +++ b/doc/architecture/reference_points_coordinate_systems.adoc @@ -0,0 +1,17 @@ += Coordinate systems and reference points + +OSI uses DIN ISO 8855:2013-11 for coordinate systems and transformations between coordinate systems. +OSI uses three coordinate systems: + +World coordinate system:: +Coordinate system for all quantities which are part of ground truth. +The world coordinate system is an inertial x/y/z-coordinate system. + +Sensor coordinate system:: +Coordinate system for all quantities which are part of sensor data. +The origin is the mounting position of the physical sensor or a virtual mounting position, depending on the technology. + +Object coordinate system:: +Coordinate system for local object coordinates. +The origin of the corresponding coordinate systems is not necessarily identical to the center of the object's bounding box. +For example with vehicles, the origin is the middle of the rear axle projected onto the ground. diff --git a/doc/architecture/sensor_data.adoc b/doc/architecture/sensor_data.adoc index ef5164e41..1db02ddc1 100644 --- a/doc/architecture/sensor_data.adoc +++ b/doc/architecture/sensor_data.adoc @@ -1,9 +1,7 @@ = Sensor data -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 +Sensor data imitates the output of real sensors. +It can be generated from ground-truth data, sensor-view data, feature data or from sensor data. +Except feature data, all information regarding the environment is given with respect to the virtual sensor coordinate system. +Feature data is given with respect to the physical sensor coordinate system. +Sensor data can be used as input for an automated driving function, a sensor model simulating limited perception, or a sensor fusion model. diff --git a/doc/architecture/sensor_view.adoc b/doc/architecture/sensor_view.adoc index 1bdec6fc7..54f8fdd85 100644 --- a/doc/architecture/sensor_view.adoc +++ b/doc/architecture/sensor_view.adoc @@ -1,9 +1,8 @@ = Sensor view -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 +Sensor view imitates the input of sensors. +Sensor-view data is derived from ground-truth data. +All information regarding the environment is given with respect to the virtual sensor coordinate system, with two exceptions: + +* Physical technology-specific data, given with respect to the physical sensor coordinate system specified in the corresponding physical sensor’s mounting position. +* Ground-truth data, given in the global coordinate system. \ No newline at end of file diff --git a/doc/architecture/sensor_view_configuration.adoc b/doc/architecture/sensor_view_configuration.adoc index c7e9f3f02..a7ceca4ef 100644 --- a/doc/architecture/sensor_view_configuration.adoc +++ b/doc/architecture/sensor_view_configuration.adoc @@ -1,9 +1,15 @@ = Sensor view configuration -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 +The sensor view configuration configures the sensor view. +There are two sources for sensor-view-configuration data. + +Sensor-view-configuration data can be provided by the environment simulation. +In this case, the data is intended for the automatic configuration of an environment simulation in order to supply the necessary input to a sensor model. +Sensor-view-configuration data is not intended to provide parameters to a generic sensor model. + +Sensor-view-configuration data can also be provided by the sensor model to the environment simulation. +In this case, the data describes the input configuration that is desired by the sensor model. +In response, the environment simulation will configure the input and provide a new message which describes the actual configuration. +The configuration requested by the sensor model may differ from the actual configuration. +This happens when the environment simulation does not support a given requested configuration or when the requested configuration allowed is ambiguous. +The message describing the requested configuration differs from the message describing the actual configuration. diff --git a/doc/architecture/traffic_command.adoc b/doc/architecture/traffic_command.adoc new file mode 100644 index 000000000..6e70b6bd4 --- /dev/null +++ b/doc/architecture/traffic_command.adoc @@ -0,0 +1,3 @@ += Traffic command + +Traffic commands contain control commands from the scenario engine to traffic participant models. \ No newline at end of file diff --git a/doc/architecture/traffic_update.adoc b/doc/architecture/traffic_update.adoc new file mode 100644 index 000000000..b8795e645 --- /dev/null +++ b/doc/architecture/traffic_update.adoc @@ -0,0 +1,4 @@ += Traffic update + +Traffic updates are provided by traffic participants. +They provide updates of the position, state and future trajectory of a traffic participant back to the simulation environment. \ No newline at end of file diff --git a/doc/images/osi_example_coordinate_systems.png b/doc/images/osi_example_coordinate_systems.png new file mode 100644 index 000000000..902cfb21c Binary files /dev/null and b/doc/images/osi_example_coordinate_systems.png differ diff --git a/doc/images/osi_example_coordinate_systems.svg b/doc/images/osi_example_coordinate_systems.svg new file mode 100644 index 000000000..169a7df33 --- /dev/null +++ b/doc/images/osi_example_coordinate_systems.svg @@ -0,0 +1,6754 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/open-simulation-interface_user_guide.adoc b/doc/open-simulation-interface_user_guide.adoc index 287f8cbdf..62aae3ccf 100644 --- a/doc/open-simulation-interface_user_guide.adoc +++ b/doc/open-simulation-interface_user_guide.adoc @@ -1,12 +1,13 @@ = Open simulation interface -:revnumber: v.v.v +:revnumber: v.v.v :revdate: dd.mm.yyyy -:toc: left +:toc: left :toclevels: 2 :sectnums: :topicdir: topics :reusedir: reuse +:imagedir: images // header & footer for html // html themes @@ -14,11 +15,11 @@ // source highlighting :source-highlighter: rouge :rouge-style: base16.solarized.light -// +// // :nofooter: :last-update-label!: //embed images into html -:data-uri: +:data-uri: :mathematical-format: svg :imagesoutdir: ../images/generated_images @@ -40,6 +41,10 @@ include::./architecture/sensor_view_configuration.adoc[leveloffset=+3] include::./architecture/sensor_data.adoc[leveloffset=+3] +include::./architecture/traffic_command.adoc[leveloffset=+3] + +include::./architecture/traffic_update.adoc[leveloffset=+3] + === Model types include::./architecture/environmental_effect_model.adoc[leveloffset=+3] @@ -54,15 +59,15 @@ include::./architecture/vehicle_dynamics.adoc[leveloffset=+3] === Coordinate systems and reference points -include::./architecture/coordinate_systems.adoc[leveloffset=+3] +include::./architecture/reference_points_coordinate_systems.adoc[leveloffset=+3] -include::./architecture/reference_points.adoc[leveloffset=+3] +include::./usecases/transforming_coordinate_systems.adoc[leveloffset=+3] -=== Layering +//=== Layering -include::./architecture/data_layer.adoc[leveloffset=+3] +//include::./architecture/data_layer.adoc[leveloffset=+3] -include::./architecture/packaging_layer.adoc[leveloffset=+3] +//include::./architecture/packaging_layer.adoc[leveloffset=+3] === OSI trace files @@ -70,45 +75,49 @@ include::./architecture/trace_file_formats.adoc[leveloffset=+3] include::./architecture/trace_file_naming.adoc[leveloffset=+3] -=== Files and scripts +// === Files and scripts -include::./architecture/proto-files.adoc[leveloffset=+3] +// include::./architecture/proto-files.adoc[leveloffset=+3] -include::./architecture/test_scripts.adoc[leveloffset=+3] +// include::./architecture/test_scripts.adoc[leveloffset=+3] include::./architecture/formatting_scripts.adoc[leveloffset=+3] == Setting up OSI -include::./setup/installing_linux.adoc[leveloffset=+2] +include::./setup/installing_linux_cpp.adoc[leveloffset=+2] -include::./setup/installing_macos.adoc[leveloffset=+2] +include::./setup/installing_linux_python.adoc[leveloffset=+2] -include::./setup/installing_windows.adoc[leveloffset=+2] +include::./setup/installing_windows_cpp.adoc[leveloffset=+2] + +include::./setup/installing_windows_python.adoc[leveloffset=+2] + +include::./setup/installing_macos.adoc[leveloffset=+2] -include::./setup/using_osi_support_tools.adoc[leveloffset=+2] +//include::./setup/using_osi_support_tools.adoc[leveloffset=+2] -include::./setup/including_osi_dev_projects.adoc[leveloffset=+2] +//include::./setup/including_osi_dev_projects.adoc[leveloffset=+2] -== Example use cases for OSI +//== Example use cases for OSI -include::./usecases/modeling_lidar_sensor.adoc[leveloffset=+2] +//include::./usecases/modeling_lidar_sensor.adoc[leveloffset=+2] -include::./usecases/modeling_camera_electronics.adoc[leveloffset=+2] +//include::./usecases/modeling_camera_electronics.adoc[leveloffset=+2] -include::./usecases/injecting_faults.adoc[leveloffset=+2] +//include::./usecases/injecting_faults.adoc[leveloffset=+2] -include::./usecases/fusing_sensor_outputs.adoc[leveloffset=+2] +//include::./usecases/fusing_sensor_outputs.adoc[leveloffset=+2] -include::./usecases/modeling_traffic_participant.adoc[leveloffset=+2] +//include::./usecases/modeling_traffic_participant.adoc[leveloffset=+2] -include::./usecases/benchmark_integration_gpu_radar.adoc[leveloffset=+2] +//include::./usecases/benchmark_integration_gpu_radar.adoc[leveloffset=+2] -include::./usecases/generating_osi_traces.adoc[leveloffset=+2] +//include::./usecases/generating_osi_traces.adoc[leveloffset=+2] -== Improving performance +//== Improving performance -TODO: Define topics and issues regarding performance. +//TODO: Define topics and issues regarding performance. include::./misc/osi_reference.adoc[leveloffset=+1] diff --git a/doc/setup/installing_linux.adoc b/doc/setup/installing_linux.adoc deleted file mode 100644 index dafb8c50a..000000000 --- a/doc/setup/installing_linux.adoc +++ /dev/null @@ -1,11 +0,0 @@ -= Installing OSI on Linux - -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 diff --git a/doc/setup/installing_linux_cpp.adoc b/doc/setup/installing_linux_cpp.adoc new file mode 100644 index 000000000..590d1667d --- /dev/null +++ b/doc/setup/installing_linux_cpp.adoc @@ -0,0 +1,61 @@ += Installing OSI for C++ on Linux + +**Prerequisites** + +* You have _cmake_ installed. +* You have installed _protobuf_. +* You must have super user privileges. + +**Steps** + +. Open a terminal. +. Clone the Open Simulation repository. ++ +[source] +---- +git clone https://github.com/OpenSimulationInterface/open-simulation-interface.git +---- ++ +. Change into the repository directory. ++ +[source] +---- +cd open-simulation-interface +---- ++ +. Create a new directory for the build. ++ +[source] +---- +mkdir build +---- ++ +. Change into the new directory. ++ +[source] +---- +cd build +---- ++ +. Run cmake. + To build a 32-bit target under 64-bit linux, add `-DCMAKE_CXX_FLAGS="-m32"` to the cmake command. + In this case, protobuf must be in 32-bit mode too. ++ +[source] +---- +cmake .. +---- ++ +. Run make. ++ +[source] +---- +make +---- ++ +. Install Open Simulation Interface. ++ +[source] +---- +sudo make install +---- diff --git a/doc/setup/installing_linux_python.adoc b/doc/setup/installing_linux_python.adoc new file mode 100644 index 000000000..8b753aba8 --- /dev/null +++ b/doc/setup/installing_linux_python.adoc @@ -0,0 +1,43 @@ += Installing OSI for Python on Linux + +**Prerequisites** + +* You have installed _pip3_. +* You have installed _python-setuptools_. +* You have installed _protobuf_. +* For local installation, you have installed _virtualenv_. + +**Steps** + +. Open a terminal. +. Clone the Open Simulation repository. ++ +[source] +---- +git clone https://github.com/OpenSimulationInterface/open-simulation-interface.git +---- ++ +. Change into the repository directory. ++ +[source] +---- +cd open-simulation-interface +---- ++ +. Create a new virtual environment. ++ +[source] +---- +virtualenv -p python3 venv +---- ++ +. Activate the virtual environment. ++ +[source] +---- +source venv/bin/activate +---- ++ +. Install Open Simulation Interface. +Local installation:: `pip3 install .` +Global installation:: `sudo pip3 install .` diff --git a/doc/setup/installing_windows.adoc b/doc/setup/installing_windows.adoc deleted file mode 100644 index 156c4984c..000000000 --- a/doc/setup/installing_windows.adoc +++ /dev/null @@ -1,10 +0,0 @@ -= Installing OSI on Windows - -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 diff --git a/doc/setup/installing_windows_cpp.adoc b/doc/setup/installing_windows_cpp.adoc new file mode 100644 index 000000000..93ad4c9d3 --- /dev/null +++ b/doc/setup/installing_windows_cpp.adoc @@ -0,0 +1,54 @@ += Installing OSI for C++ on Windows + +**Prerequisites** + +* You have installed _cmake_ as administrator. +* You have installed _protobuf_ as administrator. + +**Steps** + +. Open a terminal as administrator. +. Clone the Open Simulation repository. ++ +[source] +---- +git clone https://github.com/OpenSimulationInterface/open-simulation-interface.git +---- ++ +. Change into the repository directory. ++ +[source] +---- +cd open-simulation-interface +---- ++ +. Create a new directory for the build. ++ +[source] +---- +mkdir build +---- ++ +. Change into the new directory. ++ +[source] +---- +cd build +---- ++ +. Run cmake. + To build a 64-bit target, add `Win64` to the generator name. + In this case, protobuf and protoc.exe must be in 64-bit mode too. ++ +[source] +---- +cmake .. [-G ] [-DCMAKE_INSTALL_PREFIX=] +---- ++ +. Build and install OSI. ++ +[source] +---- +cmake --build . [--config Release] +cmake --build . --target install +---- diff --git a/doc/setup/installing_windows_python.adoc b/doc/setup/installing_windows_python.adoc new file mode 100644 index 000000000..f1b0640e3 --- /dev/null +++ b/doc/setup/installing_windows_python.adoc @@ -0,0 +1,30 @@ += Installing OSI for Python on Windows + +**Prerequisites** + +* You have installed _Python_ with administrator rights. +* Make sure _Python_ is added to `PATH`. + +**Steps** + +. Open a terminal. +. Clone the Open Simulation repository. ++ +[source] +---- +git clone https://github.com/OpenSimulationInterface/open-simulation-interface.git +---- ++ +. Change into the repository directory. ++ +[source] +---- +cd open-simulation-interface +---- ++ +. Run the setup script. ++ +[source] +---- +python setup.py install +---- diff --git a/doc/usecases/transforming_coordinate_systems.adoc b/doc/usecases/transforming_coordinate_systems.adoc new file mode 100644 index 000000000..c3be8b3d7 --- /dev/null +++ b/doc/usecases/transforming_coordinate_systems.adoc @@ -0,0 +1,31 @@ += Transforming coordinate systems + +Transforming coordinates for a specific vehicle or sensor is a common task when running simulations. +OSI uses DIN ISO 8855:2013-11 for coordinate systems and transformations between coordinate systems. + +//TODO: Should we add one or more sentences about the mathematical operations involved? + +**Corresponding messages** + +``GroundTruth::moving_object::base::position``:: +Defines the position of the vehicle’s reference point in world coordinates. +In Open Simulation Interface, the position of an object is defined by the coordinates of the center of the object's bounding box. + +``GroundTruth::moving_object::base::orientation``:: +Defines the orientation of the vehicle’s reference point in world coordinates. + +``GroundTruth::moving_object::vehicle_attributes::bbcenter_to_rear``:: +The vector pointing from the vehicle’s reference point to the middle of the rear axle under neutral load conditions in vehicle coordinates. + +``SensorData::mounting_position``:: +Defines the sensor’s position and orientation and thereby the origin of the sensor coordinate system. +The mounting position is given in the vehicle coordinate system. + +**Example** + +The following image shows the relationship between the coordinate systems. +The reference point of the vehicle is given by a vector in the world coordinate system. +A vector pointing from the reference position of the vehicle to the center of the rear axle then yields the origin of the vehicle coordinate system. +The mounting positions of the sensors and therefore the origins of the corresponding sensor coordinate systems are then given with respect to the vehicle coordinate system. + +image::{imagedir}/osi_example_coordinate_systems.png[] \ No newline at end of file